Extracting a DPLL Algorithm

We formalize a completeness proof for the DPLL proof system and extract a DPLL SAT solver from it. When applied to a propositional formula in conjunctive normal form the program produces either a satisfying assignment or a DPLL derivation which shows that it is unsatisfiable. We use non-computational quantifiers to remove redundant computational content from the extracted program and improve its performance. The formalization is carried out in the Minlog system.

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

[2]  Ulrich Berger,et al.  The Warshall Algorithm and Dickson's Lemma: Two Examples of Realistic Program Extraction , 2004, Journal of Automated Reasoning.

[3]  Helmut Schwichtenberg,et al.  Decorating proofs , 2009 .

[4]  Ulrich Berger,et al.  Program Extraction from Normalization Proofs , 1993, Stud Logica.

[5]  J. Roger Hindley,et al.  To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus, and Formalism , 1980 .

[6]  Conor McBride,et al.  Epigram: Practical Programming with Dependent Types , 2004, Advanced Functional Programming.

[7]  Stephen A. Cook,et al.  The Relative Efficiency of Propositional Proof Systems , 1979, Journal of Symbolic Logic.

[8]  Lawrence C. Paulson,et al.  Source-Level Proof Reconstruction for Interactive Theorem Proving , 2007, TPHOLs.

[9]  Alexander K. Petrenko,et al.  Electronic Notes in Theoretical Computer Science , 2009 .

[10]  Cesare Tinelli,et al.  Handbook of Satisfiability , 2021, Handbook of Satisfiability.

[11]  D. Dalen Review: Georg Kreisel, Godel's Intepretation of Heyting's Arithmetic; G. Kreisel, Relations Between Classes of Constructive Functionals; Georg Kreisel, A. Heyting, Interpretation of Analysis by Means of Constructive Functionals of Finite Types , 1971 .

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

[13]  Ulf Norell,et al.  A Brief Overview of Agda - A Functional Language with Dependent Types , 2009, TPHOLs.

[14]  Zuber,et al.  Proof Theory at Work: Program Development in the Minlog System , 1998 .

[15]  Martin Hofmann,et al.  An arithmetic for non-size-increasing polynomial-time computation , 2004, Theor. Comput. Sci..

[16]  Tobias Nipkow,et al.  Sledgehammer: Judgement Day , 2010, IJCAR.

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

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

[19]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

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

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

[22]  Lawrence Charles Paulson,et al.  Isabelle: A Generic Theorem Prover , 1994 .

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

[24]  William A. Howard,et al.  The formulae-as-types notion of construction , 1969 .

[25]  Helmut Schwichtenberg,et al.  Proofs and Computations , 2012, Perspectives in logic.

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

[27]  Kenji Miyamoto,et al.  Minlog - A Tool for Program Extraction Supporting Algebras and Coalgebras , 2011, CALCO.