Towards mechanical metamathematics
Journal of Automated Reasoning
GRASP: A Search Algorithm for Propositional Satisfiability
IEEE Transactions on Computers
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
SATO: An Efficient Propositional Prover
CADE-14 Proceedings of the 14th International Conference on Automated Deduction
The complexity of theorem-proving procedures
STOC '71 Proceedings of the third annual ACM symposium on Theory of computing
BerkMin: A Fast and Robust Sat-Solver
Proceedings of the conference on Design, automation and test in Europe
DATE '03 Proceedings of the conference on Design, Automation and Test in Europe - Volume 1
Architecting Solvers for SAT Modulo Theories: Nelson-Oppen with DPLL
FroCoS '07 Proceedings of the 6th international symposium on Frontiers of Combining Systems
Imperative Functional Programming with Isabelle/HOL
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Formalization and Implementation of Modern SAT Solvers
Journal of Automated Reasoning
Verifying propositional unsatisfiability: pitfalls to avoid
SAT'07 Proceedings of the 10th international conference on Theory and applications of satisfiability testing
Formal Correctness Proof for DPLL Procedure
Informatica
Animating the formalised semantics of a Java-like language
ITP'11 Proceedings of the Second international conference on Interactive theorem proving
versat: a verified modern SAT solver
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
SMT proof checking using a logical framework
Formal Methods in System Design
Light-Weight containers for isabelle: efficient, extensible, nestable
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Mechanical verification of SAT refutations with extended resolution
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Hi-index | 5.23 |
We present a formalization and a formal total correctness proof of a MiniSAT-like SAT solver within the system Isabelle/HOL. The solver is based on the DPLL procedure and employs most state-of-the-art SAT solving techniques, including the conflict-guided backjumping, clause learning, and the two-watched unit propagation scheme. A shallow embedding into Isabelle/HOL is used and the solver is expressed as a set of recursive HOL functions. Based on this specification, the Isabelle's built-in code generator can be used to generate executable code in several supported functional languages (Haskell, SML, and OCaml). The SAT solver implemented in this way is, to our knowledge, the first fully formally and mechanically verified modern SAT solver.