Cargando…

A Verified SAT Solver Framework with Learn, Forget, Restart, and Incrementality

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 finall...

Descripción completa

Detalles Bibliográficos
Autores principales: Blanchette, Jasmin Christian, Fleury, Mathias, Lammich, Peter, Weidenbach, Christoph
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Springer Netherlands 2018
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6044257/
https://www.ncbi.nlm.nih.gov/pubmed/30069073
http://dx.doi.org/10.1007/s10817-018-9455-7
Descripción
Sumario: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.