Extracting verified decision procedures: DPLL and Resolution

This article is concerned with the application of the program extraction technique to a new class of problems: the synthesis of decision procedures for the classical satisfiability problem that are correct by construction. To this end, we formalize a completeness proof for the DPLL proof system and extract a 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 showing its unsatisfiability. We use non-computational quantifiers to remove redundant computational content from the extracted program and translate it into Haskell to improve performance. We also prove the equivalence between the resolution proof system and the DPLL proof system with a bound on the size of the resulting resolution proof. This demonstrates that it is possible to capture quantitative information about the extracted program on the proof level. The formalization is carried out in the interactive proof assistant Minlog.

[1]  Stefan Berghofer,et al.  Proofs, programs and executable specifications in higher order logic , 2003 .

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

[3]  William C. Frederick,et al.  A Combinatory Logic , 1995 .

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

[5]  Faron Moller,et al.  Automated Verification of Signalling Principles in Railway Interlocking Systems , 2009, Electron. Notes Theor. Comput. Sci..

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

[7]  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 .

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

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

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

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

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

[13]  Tobias Nipkow,et al.  Executing Higher Order Logic , 2000, TYPES.

[14]  Roberto Bruttomesso,et al.  The 2012 SMT Competition , 2013, SMT@IJCAR.

[15]  Toby Walsh,et al.  Handbook of Satisfiability: Volume 185 Frontiers in Artificial Intelligence and Applications , 2009 .

[16]  J. A. Robinson,et al.  The Generalized Resolution Principle , 1983 .

[17]  Ulrich Berger,et al.  Proofs, Programs, Processes , 2011, Theory of Computing Systems.

[18]  Helmut Schwichtenberg,et al.  Realizability interpretation of proofs in constructive analysis , 2008, Theory of Computing Systems.

[19]  Faron Moller,et al.  Automated Verification of Signalling Principles in Railway Interlockings , 2008 .

[20]  F. Mari Formal verification of a modern SAT solver by shallow embedding into Isabelle/HOL , 2010 .

[21]  Ulrich Berger,et al.  Program Extraction from Normalization Proofs , 2006, Stud Logica.

[22]  Klaus Weich,et al.  Decision Procedures for Intuitionistic Propositional Logic by Program Extraction , 1998, TABLEAUX.

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

[24]  Ulrich Berger,et al.  From coinductive proofs to exact real arithmetic: theory and applications , 2011, Log. Methods Comput. Sci..

[25]  Chantal Keller Extended Resolution as Certificates for Propositional Logic , 2013, PxTP@CADE.

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

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

[28]  Peter Dybjer,et al.  Intuitionistic Type Theory , 2016 .

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

[30]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

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

[32]  Ulrich Berger,et al.  Extracting a DPLL Algorithm , 2012, MFPS.

[33]  Filip Maric,et al.  Formal verification of a modern SAT solver by shallow embedding into Isabelle/HOL , 2010, Theor. Comput. Sci..

[34]  Marijn Heule,et al.  Mechanical Verification of SAT Refutations with Extended Resolution , 2013, ITP.

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

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

[37]  Kenji Miyamoto,et al.  Program Extraction from Nested Definitions , 2013, ITP.

[38]  Cesare Tinelli,et al.  Abstract DPLL and Abstract DPLL Modulo Theories , 2005, LPAR.

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

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

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

[42]  Edwin Brady,et al.  Idris, a general-purpose dependently typed programming language: Design and implementation , 2013, Journal of Functional Programming.

[43]  Mary Sheeran,et al.  Checking Safety Properties Using Induction and a SAT-Solver , 2000, FMCAD.

[44]  John Harrison,et al.  Handbook of Practical Logic and Automated Reasoning , 2009 .

[45]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[46]  Timothy W. Simpson,et al.  Verified programming in Guru , 2009, PLPV '09.

[47]  Jan Maluszy¿ski Verification, Model Checking, and Abstract Interpretation , 2009, Lecture Notes in Computer Science.

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

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

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

[51]  Armin Biere,et al.  Extended Resolution Proofs for Conjoining BDDs , 2006, CSR.

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

[53]  Parosh Aziz Abdulla,et al.  Designing Safe, Reliable Systems Using Scade , 2004, ISoLA.