Abstract
We developed a formal framework for conflict-driven clause learning (CDCL) using the Isabelle/HOL proof assistant. Through a chain of refinements, an abstract CDCL calculus is connected first to a more concrete calculus, then to a SAT solver expressed in a functional programming language, and finally to a SAT solver in an imperative language, with total correctness guarantees. The framework offers a convenient way to prove metatheorems and experiment with variants, including the Davis–Putnam–Logemann–Loveland (DPLL) calculus. The imperative program relies on the two-watched-literal data structure and other optimizations found in modern solvers. We used Isabelle’s Refinement Framework to automate the most tedious refinement steps. The most noteworthy aspects of our work are the inclusion of rules for forget, restart, and incremental solving and the application of stepwise refinement.
Highlights
Researchers in automated reasoning spend a substantial portion of their work time developing logical calculi and proving metatheorems about them
We started an effort, called IsaFoL (Isabelle Formalization of Logic) [4], that aims at developing libraries and a methodology for formalizing modern research in the field, using the Isabelle/higher-order logic (HOL) proof assistant [45,46]
We found a major mistake in an extension of conflict-driven clause learning (CDCL) using the branch-and-bound principle: Given a weight function, the calculus aims at finding a model of minimal weight
Summary
Researchers in automated reasoning spend a substantial portion of their work time developing logical calculi and proving metatheorems about them These proofs are typically carried out with pen and paper, which is error-prone and can be tedious. This article presents our formalization of CDCL (conflict-driven clause learning) based on Automated Reasoning, derived as a refinement of Nieuwenhuis, Oliveras, and Tinelli’s abstract presentation of CDCL [43] It is the algorithm implemented in modern propositional satisfiability (SAT) solvers. – The Refinement Framework [30] can be used to express refinements from abstract data structures and algorithms to concrete, optimized implementations This allows us to reason about simple algebraic objects and yet obtain efficient programs. Isabelle/HOL is the instantiation of Isabelle with HOL, an object logic for classical HOL extended with rank-1 (top-level) polymorphism and Haskell-style type classes. Our formalization almost exclusively employs the more readable declarative style
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.