A Reflexive Formalization of a SAT Solver in Coq

We present a Coq formalization of an algorithm deciding the satisfiability of propositional formulas (SAT). This SAT solver is described as a set of inference rules in a manner that is independent of the actual representation of propositional variables and formulas. We prove soundness and completeness for this system, and instantiate our solver directly on the propositional fragment of Coq’s logic in order to obtain a fully reflexive tactic. Such a tactic represents a first and important step towards our ultimate goal of embedding an automated theorem prover inside the Coq system. We also extract a certified Ocaml implementation of the algorithm.

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

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

[3]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[4]  John Harrison,et al.  Binary Decision Diagrams as a HOL Derived Rule , 1994, Comput. J..

[5]  Hantao Zhang,et al.  An Efficient Algorithm for Unit Propagation , 1996 .

[6]  John Harrison,et al.  Stålmarck's Algorithm as a HOL Derived Rule , 1996, TPHOLs.

[7]  Judicaël Courant,et al.  A Module Calculus for Pure Type Systems , 1997, TLCA.

[8]  Pierre Letouzey,et al.  Formalizing Stålmarck's Algorithm in Coq , 2000, TPHOLs.

[9]  Jean Goubault-Larrecq,et al.  Reflecting BDDs in Coq , 2000, ASIAN.

[10]  Thomas Stützle,et al.  SATLIB: An Online Resource for Research on SAT , 2000 .

[11]  David Delahaye,et al.  A Tactic Language for the System Coq , 2000, LPAR.

[12]  David Delahaye,et al.  Field, une procédure de décision pour les nombres réels en Coq , 2001, JFLA.

[13]  Jacek Chrząszcz Implementation of Modules in the Coq System , 2003 .

[14]  Pierre Castéran,et al.  Interactive Theorem Proving and Program Development , 2004, Texts in Theoretical Computer Science An EATCS Series.

[15]  Benjamin Grégoire,et al.  Proving Equalities in a Commutative Ring Done Right in Coq , 2005, TPHOLs.

[16]  Yves Bertot,et al.  Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions , 2010 .