the dpll algorithmerodri/webpage/cps/theory/... · dpll - a bit of history 4/11 original dpll was...
TRANSCRIPT
![Page 1: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/1.jpg)
The DPLL algorithm
Combinatorial Problem Solving (CPS)
Albert Oliveras Enric Rodrıguez-Carbonell
May 22, 2020
![Page 2: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/2.jpg)
Overview of the session
2 / 11
■ Designing an efficient SAT solver
■ DPLL: A Bit of History
■ Abstract DPLL:
◆ Rules
◆ Examples
◆ Theoretical Results
![Page 3: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/3.jpg)
Designing an efficient SAT solver
3 / 11
INPUT: formula F in CNF
OUTPUT:
■ If F is SAT: YES + model
■ If F is UNSAT: NO + refutation (proof of unsatisfiability)
Two possible methods:
■ resolution-based:
- not direct to obtain model
+ straightforward to give refutation
■ DPLL-based:
+ straightforward to obtain model
- not direct to give refutation
Due to their efficiency, DPLL-based solvers are the method of choice
![Page 4: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/4.jpg)
Overview of the session
3 / 11
■ Designing an efficient SAT solver
■ DPLL: A Bit of History
■ Abstract DPLL:
◆ Rules
◆ Examples
◆ Theoretical Results
![Page 5: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/5.jpg)
DPLL - A Bit of History
4 / 11
■ Original DPLL was incomplete method for FOL satisfiability
■ First paper (Davis and Putnam) in 1960: memory problems
■ Second paper (Davis, Logemann and Loveland) in 1962:Depth-first-search with backtracking
■ Late 90’s and early 00’s improvements make DPLL efficient:
◆ Break-through systems: GRASP, SATO, Chaff, MiniSAT
Stalmarck:1k var1996
SATO:1k var1996
GRASP:1k var1996
DLL:10 var1962
Chaff:10k var2001
BDD:100 var1986
DP:10 var1960
MiniSAT:100k var2003
![Page 6: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/6.jpg)
Overview of the session
4 / 11
■ Designing an efficient SAT solver
■ DPLL: A Bit of History
■ Abstract DPLL:
◆ Rules
◆ Examples
◆ Theoretical Results
![Page 7: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/7.jpg)
Our Abstraction of DPLL
5 / 11
■ Given F in CNF, DPLL tries to build assignment M s.t. M |= F
■ Assignments M are represented as sequences of literals (those to be true):
EXAMPLE: sequence pqr is M(p) = 1, M(q) = 0, M(r) = 1
(overlining bar ¯ may be used to represent negation, like ¬)
◆ Order in M matters
◆ No literal appears twice in M
◆ No contradictory literals in M
■ Sequences may have decision literals, denoted ld.
■ We will introduce a transition system modelling DPLL
■ States in the transition system are pairs M || F ,where M is a (partial) assignment and F is a CNF
■ The algorithm starts with an empty assignment
■ The rules in the transition system indicate which steps
M || F =⇒ M ′ || F ′
are allowed.
![Page 8: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/8.jpg)
Abstract DPLL - Rules
6 / 11
Extending the model:
Decide
M || F =⇒ M ld || F if
{
l or l occurs in F
l is undefined in M
UnitProp M || F, C ∨ l =⇒ M l || F, C ∨ l if
{
M |= ¬C
l is undefined in M
![Page 9: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/9.jpg)
Abstract DPLL - Rules (2)
7 / 11
Repairing the model:
Fail
M || F, C =⇒ fail if
{
M |= ¬CM contains no decision literals
Backtrack
M ld N || F, C =⇒ M l || F, C if
{
M ld N |= ¬CN contains no decision lits
![Page 10: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/10.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒
![Page 11: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/11.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)
![Page 12: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/12.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒
![Page 13: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/13.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
![Page 14: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/14.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒
![Page 15: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/15.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)
![Page 16: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/16.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒
![Page 17: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/17.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
![Page 18: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/18.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒
![Page 19: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/19.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)
![Page 20: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/20.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d 4 5d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒
![Page 21: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/21.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d 4 5d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
![Page 22: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/22.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d 4 5d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 5d 6 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒
![Page 23: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/23.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d 4 5d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 5d 6 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Backtrack)
![Page 24: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/24.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d 4 5d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 5d 6 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Backtrack)1d 2 3d 4 5 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒
![Page 25: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/25.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d 4 5d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 5d 6 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Backtrack)1d 2 3d 4 5 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)
![Page 26: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/26.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d 4 5d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 5d 6 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Backtrack)1d 2 3d 4 5 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)
1d 2 3d 4 5 6d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2
![Page 27: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/27.jpg)
Abstract DPLL - Example 1
8 / 11
∅ || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)1d 2 3d 4 5d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (UnitProp)
1d 2 3d 4 5d 6 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Backtrack)1d 2 3d 4 5 || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 =⇒ (Decide)
1d 2 3d 4 5 6d || 1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2 Final state found!
![Page 28: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/28.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒
![Page 29: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/29.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)
![Page 30: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/30.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒
![Page 31: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/31.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Decide)
![Page 32: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/32.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Decide)
1 2d || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒
![Page 33: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/33.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Decide)
1 2d || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)
![Page 34: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/34.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Decide)
1 2d || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 2d 3 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒
![Page 35: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/35.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Decide)
1 2d || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 2d 3 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Backtrack)
![Page 36: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/36.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Decide)
1 2d || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 2d 3 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Backtrack)
1 2 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒
![Page 37: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/37.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Decide)
1 2d || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 2d 3 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Backtrack)
1 2 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)
![Page 38: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/38.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Decide)
1 2d || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 2d 3 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Backtrack)
1 2 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 2 3 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒
![Page 39: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/39.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Decide)
1 2d || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 2d 3 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Backtrack)
1 2 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 2 3 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Fail)
![Page 40: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/40.jpg)
Abstract DPLL - Example 2
9 / 11
∅ || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Decide)
1 2d || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 2d 3 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Backtrack)
1 2 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (UnitProp)1 2 3 || 1 ∨ 2 ∨ 3, 1, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3, 2 ∨ 3 =⇒ (Fail)
fail
![Page 41: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/41.jpg)
Abstract DPLL
10 / 11
■ There are no infinite sequences of the form ∅ || F =⇒ . . .
■ If ∅ || F =⇒∗ M || F with state M || F final, then
◆ F is satisfiable
◆ M is a model of F
■ If ∅ || F =⇒∗ fail then F is unsatisfiable
Hence the transition system gives a decision procedure for SAT
![Page 42: The DPLL algorithmerodri/webpage/cps/theory/... · DPLL - A Bit of History 4/11 Original DPLL was incomplete method for FOL satisfiability First paper (Davis and Putnam) in 1960:](https://reader033.vdocument.in/reader033/viewer/2022050303/5f6c6a1722c90868041d6540/html5/thumbnails/42.jpg)
Bibliography - Some further
reading
11 / 11
■ Martin Davis, Hilary Putnam. A Computing Procedure for Quantification Theory. J. ACM 7(3):201-215 (1960)
■ Martin Davis, George Logemann, Donald W. Loveland. A machine program for theorem-proving.Commun. ACM 5(7): 394-397 (1962)
■ Robert Nieuwenhuis, Albert Oliveras, Cesare Tinelli. Solving SAT and SAT Modulo Theories:From an abstract Davis–Putnam–Logemann–Loveland procedure to DPLL(T).J. ACM 53(6): 937-977 (2006)