the dpll algorithmerodri/webpage/cps/theory/... · dpll - a bit of history 4/11 original dpll was...

42
The DPLL algorithm Combinatorial Problem Solving (CPS) Albert Oliveras Enric Rodr´ ıguez-Carbonell May 22, 2020

Upload: others

Post on 24-Jul-2020

8 views

Category:

Documents


0 download

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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)