Computability, complexity, and languages (2nd ed.): fundamentals of theoretical computer science
Computability, complexity, and languages (2nd ed.): fundamentals of theoretical computer science
A Computing Procedure for Quantification Theory
Journal of the ACM (JACM)
A machine program for theorem-proving
Communications of the ACM
Chaff: engineering an efficient SAT solver
Proceedings of the 38th annual Design Automation Conference
A DPLL-Based Calculus for Ground Satisfiability Modulo Theories
JELIA '02 Proceedings of the European Conference on Logics in Artificial Intelligence
The Quest for Efficient Boolean Satisfiability Solvers
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
The complexity of theorem-proving procedures
STOC '71 Proceedings of the third annual ACM symposium on Theory of computing
A machine-checked model for a Java-like language, virtual machine, and compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Verification of clock synchronization algorithms: experiments on a combination of deductive tools
Formal Aspects of Computing
Formal Verification for C Program
Informatica
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Verifying and reflecting quantifier elimination for presburger arithmetic
LPAR'05 Proceedings of the 12th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Verifying a hotel key card system
ICTAC'06 Proceedings of the Third international conference on Theoretical Aspects of Computing
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Formal verification of a modern SAT solver by shallow embedding into Isabelle/HOL
Theoretical Computer Science
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
The DPLL procedure for the SAT problem is one of the fundamental algorithms in computer science, with many applications in a range of domains, including software and hardware verification. Most of the modern SAT solvers are based on this procedure, extending it with different heuristics. In this paper we present a formal proof that the DPLL procedure is correct. As far as we know, this is the first such proof. The proof was formalized within the Isabelle/Isar proof assistant system. This proof adds to the growing body of formalized mathematical knowledge and it also provides a number of lemmas relevant for proving correctness of modern SAT and SMT solvers.