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...
Autores principales: | , , , |
---|---|
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 |
_version_ | 1783339450240073728 |
---|---|
author | Blanchette, Jasmin Christian Fleury, Mathias Lammich, Peter Weidenbach, Christoph |
author_facet | Blanchette, Jasmin Christian Fleury, Mathias Lammich, Peter Weidenbach, Christoph |
author_sort | Blanchette, Jasmin Christian |
collection | PubMed |
description | 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. |
format | Online Article Text |
id | pubmed-6044257 |
institution | National Center for Biotechnology Information |
language | English |
publishDate | 2018 |
publisher | Springer Netherlands |
record_format | MEDLINE/PubMed |
spelling | pubmed-60442572018-07-30 A Verified SAT Solver Framework with Learn, Forget, Restart, and Incrementality Blanchette, Jasmin Christian Fleury, Mathias Lammich, Peter Weidenbach, Christoph J Autom Reason Article 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. Springer Netherlands 2018-03-12 2018 /pmc/articles/PMC6044257/ /pubmed/30069073 http://dx.doi.org/10.1007/s10817-018-9455-7 Text en © The Author(s) 2018 Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made. |
spellingShingle | Article Blanchette, Jasmin Christian Fleury, Mathias Lammich, Peter Weidenbach, Christoph A Verified SAT Solver Framework with Learn, Forget, Restart, and Incrementality |
title | A Verified SAT Solver Framework with Learn, Forget, Restart, and Incrementality |
title_full | A Verified SAT Solver Framework with Learn, Forget, Restart, and Incrementality |
title_fullStr | A Verified SAT Solver Framework with Learn, Forget, Restart, and Incrementality |
title_full_unstemmed | A Verified SAT Solver Framework with Learn, Forget, Restart, and Incrementality |
title_short | A Verified SAT Solver Framework with Learn, Forget, Restart, and Incrementality |
title_sort | verified sat solver framework with learn, forget, restart, and incrementality |
topic | Article |
url | 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 |
work_keys_str_mv | AT blanchettejasminchristian averifiedsatsolverframeworkwithlearnforgetrestartandincrementality AT fleurymathias averifiedsatsolverframeworkwithlearnforgetrestartandincrementality AT lammichpeter averifiedsatsolverframeworkwithlearnforgetrestartandincrementality AT weidenbachchristoph averifiedsatsolverframeworkwithlearnforgetrestartandincrementality AT blanchettejasminchristian verifiedsatsolverframeworkwithlearnforgetrestartandincrementality AT fleurymathias verifiedsatsolverframeworkwithlearnforgetrestartandincrementality AT lammichpeter verifiedsatsolverframeworkwithlearnforgetrestartandincrementality AT weidenbachchristoph verifiedsatsolverframeworkwithlearnforgetrestartandincrementality |