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 scoring have changed several times; originally called the Scholastic Aptitude Test, it was later called the Schol ...
-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 solvi ...
with the ability to reason about an arbitrary
theory
A theory is a rational type of abstract thinking about a phenomenon, or the results of such thinking. The process of contemplative and rational thinking is often associated with such processes as observational study or research. Theories may ...
''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, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
's
Z3 Theorem Prover
Z3, also known as the Z3 Theorem Prover, is a cross-platform satisfiability modulo theories (SMT) solver by Microsoft.
Overview
Z3 was developed in the ''Research in Software Engineering'' (RiSE) group at Microsoft Research and is targeted at solv ...
, use DPLL(T) to power their core solving capabilities.
References
Automated theorem proving
SAT solvers
Constraint programming
{{comp-sci-theory-stub