In computer science, DPLL(T) is a framework for determining the satisfiability of
SMT problems. The algorithm extends the original
SAT
The SAT ( ) is a standardized test widely used for college admissions in the United States. Since its debut in 1926, its name and Test score, scoring have changed several times. For much of its history, it was called the Scholastic Aptitude Test ...
-solving
DPLL algorithm
In logic and computer science, the Davis–Putnam–Logemann–Loveland (DPLL) algorithm is a complete, backtracking-based search algorithm for deciding the satisfiability of propositional logic formulae in conjunctive normal form, i.e. for sol ...
with the ability to reason about an arbitrary
theory
A theory is a systematic and rational form of abstract thinking about a phenomenon, or the conclusions derived from such thinking. It involves contemplative and logical reasoning, often supported by processes such as observation, experimentation, ...
''T''. At a high level, the algorithm works by transforming an SMT problem into a SAT formula where atoms are replaced with Boolean variables. The algorithm repeatedly finds a satisfying valuation for the SAT problem, consults a
theory solver to check consistency under the domain-specific theory, and then (if a contradiction is found) refines the SAT formula with this information.
Many modern SMT solvers, such as
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
's
Z3 Theorem Prover
Z3, also known as the Z3 Theorem Prover, is a satisfiability modulo theories (SMT) solver developed by Microsoft.
Overview
Z3 was developed in the ''Research in Software Engineering'' (RiSE) group at Microsoft Research Redmond and is targeted at ...
and
CVC4
In computer science and mathematical logic, Cooperating Validity Checker (CVC) is a family of satisfiability modulo theories (SMT) solvers. The latest major versions of CVC are CVC4 and CVC5 (stylized cvc5); earlier versions include CVC, CVC Li ...
, use DPLL(T) to power their core solving capabilities.
References
Automated theorem proving
SAT solvers
Constraint programming
{{comp-sci-theory-stub