Formal verification of a modern SAT solver by shallow embedding into Isabelle/HOL

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.

[1]  Cesare Tinelli,et al.  Solving SAT and SAT Modulo Theories: From an abstract Davis--Putnam--Logemann--Loveland procedure to DPLL(T) , 2006, JACM.

[2]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[3]  Natarajan Shankar,et al.  The Mechanical Verification of a DPLL-Based Satisfiability Solver , 2011, LSFA.

[4]  Allen Van Gelder Verifying Propositional Unsatisfiability: Pitfalls to Avoid , 2007, SAT.

[5]  Predrag Janicic,et al.  Formal Correctness Proof for DPLL Procedure , 2010, Informatica.

[6]  Hilary Putnam,et al.  A Computing Procedure for Quantification Theory , 1960, JACM.

[7]  Stéphane Lescuyer,et al.  A Reflexive Formalization of a SAT Solver in Coq , 2008 .

[8]  Bart Selman,et al.  Satisfiability Solvers , 2008, Handbook of Knowledge Representation.

[9]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[10]  Hantao Zhang,et al.  SATO: An Efficient Propositional Prover , 1997, CADE.

[11]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[12]  Eugene Goldberg,et al.  BerkMin: A Fast and Robust Sat-Solver , 2002, Discret. Appl. Math..

[13]  Stephen A. Cook,et al.  The complexity of theorem-proving procedures , 1971, STOC.

[14]  Filip Maric Formal Verification of Modern SAT Solvers , 2008, Arch. Formal Proofs.

[15]  Joao Marques-Silva,et al.  GRASP: A Search Algorithm for Propositional Satisfiability , 1999, IEEE Trans. Computers.

[16]  Natarajan Shankar,et al.  Towards mechanical metamathematics , 1985, Journal of Automated Reasoning.

[17]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[18]  Amit Goel,et al.  Architecting Solvers for SAT Modulo Theories: Nelson-Oppen with DPLL , 2007, FroCoS.