### Abstract

This document contains formal correctness proofs of modern SAT solvers. Following (Krstic et al, 2007) and (Nieuwenhuis et al., 2006), solvers are described using state-transition systems. Several different SAT solver descriptions are given and their partial correctness and termination is proved. These include:

- a solver based on classical DPLL procedure (using only a backtrack-search with unit propagation),
- a very general solver with backjumping and learning (similar to the description given in (Nieuwenhuis et al., 2006)), and
- a solver with a specific conflict analysis algorithm (similar to the description given in (Krstic et al., 2007)).

Within the SAT solver correctness proofs, a large number of lemmas about propositional logic and CNF formulae are proved. This theory is self-contained and could be used for further exploring of properties of CNF based SAT algorithms.

### License

BSD License

### Topics

- Computer science/Algorithms

### Session SATSolverVerification

- MoreList
- CNF
- Trail
- SatSolverVerification
- BasicDPLL
- NieuwenhuisOliverasTinelli
- KrsticGoel
- SatSolverCode
- AssertLiteral
- UnitPropagate
- Initialization
- ConflictAnalysis
- Decide
- SolveLoop
- FunctionalImplementation

## Cite

×

SATSolverVerification-AFP

    @article{SATSolverVerification-AFP,
      author  = {Filip Marić},
      title   = {Formal Verification of Modern SAT Solvers},
      journal = {Archive of Formal Proofs},
      month   = {July},
      year    = {2008},
      note    = {\url{https://isa-afp.org/entries/SATSolverVerification.html},
                 Formal proof development},
      ISSN    = {2150-914x},
    }

Download

## Download

× Download latest

Older releases:

- Sep 13, 2023 : Isabelle2023
- Oct 27, 2022 : Isabelle2022
- Dec 14, 2021 : Isabelle2021-1
- Feb 23, 2021 : Isabelle2021
- Apr 20, 2020 : Isabelle2020
- Jun 11, 2019 : Isabelle2019
- Aug 16, 2018 : Isabelle2018
- Oct 10, 2017 : Isabelle2017
- Dec 17, 2016 : Isabelle2016-1
- Feb 22, 2016 : Isabelle2016
- May 27, 2015 : Isabelle2015
- Aug 28, 2014 : Isabelle2014
- Dec 11, 2013 : Isabelle2013-2
- Nov 17, 2013 : Isabelle2013-1
- Mar 2, 2013 : Isabelle2013
- Feb 16, 2013 : Isabelle2013
- May 24, 2012 : Isabelle2012
- Oct 11, 2011 : Isabelle2011-1
- Feb 11, 2011 : Isabelle2011
- Jul 1, 2010 : Isabelle2009-2
- Dec 12, 2009 : Isabelle2009-1
- Apr 29, 2009 : Isabelle2009
- Jul 27, 2008 : Isabelle2008