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

Read more

Summary

Introduction

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

Sledgehammer
Locales
Refinement Framework
Propositional Logic
DPLL with Backjumping
Classical DPLL
The CDCL Calculus
Restarts
A Refined CDCL Towards an Implementation
The New DPLL Calculus
The New CDCL Calculus
A Reasonable Strategy
Connection with Abstract CDCL
A Strategy with Restart and Forget
Incremental Solving
A Naive Functional Implementation of CDCL
An Imperative Implementation of CDCL
The Two-Watched-Literal Scheme
The CDCL Calculus with Watched Literals
Derivation of an Executable List-Based Program
Generation of Imperative Code
Fast Polarity Checking
Discussion and Related
Conclusion
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

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.