246
1/37 Boolean Solving Sophie Tourret & Pascal Fontaine & Christophe Ringeissen Univ. of Lorraine, CNRS, Inria, LORIA Proc´ edures de d´ ecision et v´ erification de programmes: Lecture 5

Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

1/37

Boolean Solving

Sophie Tourret & Pascal Fontaine & Christophe Ringeissen

Univ. of Lorraine, CNRS, Inria, LORIA

Procedures de decision et verification de programmes: Lecture 5

Page 2: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

2/37

Introduction (1/2)

I SAT: NP-complete (NPC) problem

I No efficient solution for all cases on sequential computers(or P = NP)

I Truth tables: how many lines for n variables?

I Many problems require many variables

I Nowadays: 106 Boolean variables, 107 clauses (2(106) = 10301029)

I SAT4J, MiniSAT, Glucose, Crypto-MiniSAT, PicoSAT,. . .

Today’s lecture

I history: truth tables, DPLL (Davis, Putnam, Logemann,Loveland)

I now: CDCL (Conflict Driven Clause Learning)

I Boolean propagationI Clause representationI Conflict analysis and non-chronological backtracking

Page 3: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

2/37

Introduction (1/2)

I SAT: NP-complete (NPC) problem

I No efficient solution for all cases on sequential computers(or P = NP)

I Truth tables: how many lines for n variables?

I Many problems require many variables

I Nowadays: 106 Boolean variables, 107 clauses (2(106) = 10301029)

I SAT4J, MiniSAT, Glucose, Crypto-MiniSAT, PicoSAT,. . .

Today’s lecture

I history: truth tables, DPLL (Davis, Putnam, Logemann,Loveland)

I now: CDCL (Conflict Driven Clause Learning)

I Boolean propagationI Clause representationI Conflict analysis and non-chronological backtracking

Page 4: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

2/37

Introduction (1/2)

I SAT: NP-complete (NPC) problem

I No efficient solution for all cases on sequential computers(or P = NP)

I Truth tables: how many lines for n variables?

I Many problems require many variables

I Nowadays: 106 Boolean variables, 107 clauses (2(106) = 10301029)

I SAT4J, MiniSAT, Glucose, Crypto-MiniSAT, PicoSAT,. . .

Today’s lecture

I history: truth tables, DPLL (Davis, Putnam, Logemann,Loveland)

I now: CDCL (Conflict Driven Clause Learning)

I Boolean propagationI Clause representationI Conflict analysis and non-chronological backtracking

Page 5: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

2/37

Introduction (1/2)

I SAT: NP-complete (NPC) problem

I No efficient solution for all cases on sequential computers(or P = NP)

I Truth tables: how many lines for n variables?

I Many problems require many variables

I Nowadays: 106 Boolean variables, 107 clauses (2(106) = 10301029)

I SAT4J, MiniSAT, Glucose, Crypto-MiniSAT, PicoSAT,. . .

Today’s lecture

I history: truth tables, DPLL (Davis, Putnam, Logemann,Loveland)

I now: CDCL (Conflict Driven Clause Learning)

I Boolean propagationI Clause representationI Conflict analysis and non-chronological backtracking

Page 6: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

2/37

Introduction (1/2)

I SAT: NP-complete (NPC) problem

I No efficient solution for all cases on sequential computers(or P = NP)

I Truth tables: how many lines for n variables?

I Many problems require many variables

I Nowadays: 106 Boolean variables, 107 clauses (2(106) = 10301029)

I SAT4J, MiniSAT, Glucose, Crypto-MiniSAT, PicoSAT,. . .

Today’s lecture

I history: truth tables, DPLL (Davis, Putnam, Logemann,Loveland)

I now: CDCL (Conflict Driven Clause Learning)

I Boolean propagationI Clause representationI Conflict analysis and non-chronological backtracking

Page 7: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

2/37

Introduction (1/2)

I SAT: NP-complete (NPC) problem

I No efficient solution for all cases on sequential computers(or P = NP)

I Truth tables: how many lines for n variables?

I Many problems require many variables

I Nowadays: 106 Boolean variables, 107 clauses (2(106) = 10301029)

I SAT4J, MiniSAT, Glucose, Crypto-MiniSAT, PicoSAT,. . .

Today’s lecture

I history: truth tables, DPLL (Davis, Putnam, Logemann,Loveland)

I now: CDCL (Conflict Driven Clause Learning)

I Boolean propagationI Clause representationI Conflict analysis and non-chronological backtracking

Page 8: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

2/37

Introduction (1/2)

I SAT: NP-complete (NPC) problem

I No efficient solution for all cases on sequential computers(or P = NP)

I Truth tables: how many lines for n variables?

I Many problems require many variables

I Nowadays: 106 Boolean variables, 107 clauses (2(106) = 10301029)

I SAT4J, MiniSAT, Glucose, Crypto-MiniSAT, PicoSAT,. . .

Today’s lecture

I history: truth tables, DPLL (Davis, Putnam, Logemann,Loveland)

I now: CDCL (Conflict Driven Clause Learning)

I Boolean propagationI Clause representationI Conflict analysis and non-chronological backtracking

Page 9: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

2/37

Introduction (1/2)

I SAT: NP-complete (NPC) problem

I No efficient solution for all cases on sequential computers(or P = NP)

I Truth tables: how many lines for n variables?

I Many problems require many variables

I Nowadays: 106 Boolean variables, 107 clauses (2(106) = 10301029)

I SAT4J, MiniSAT, Glucose, Crypto-MiniSAT, PicoSAT,. . .

Today’s lecture

I history: truth tables, DPLL (Davis, Putnam, Logemann,Loveland)

I now: CDCL (Conflict Driven Clause Learning)

I Boolean propagationI Clause representationI Conflict analysis and non-chronological backtracking

Page 10: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

2/37

Introduction (1/2)

I SAT: NP-complete (NPC) problem

I No efficient solution for all cases on sequential computers(or P = NP)

I Truth tables: how many lines for n variables?

I Many problems require many variables

I Nowadays: 106 Boolean variables, 107 clauses (2(106) = 10301029)

I SAT4J, MiniSAT, Glucose, Crypto-MiniSAT, PicoSAT,. . .

Today’s lecture

I history: truth tables, DPLL (Davis, Putnam, Logemann,Loveland)

I now: CDCL (Conflict Driven Clause Learning)

I Boolean propagationI Clause representationI Conflict analysis and non-chronological backtracking

Page 11: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

2/37

Introduction (1/2)

I SAT: NP-complete (NPC) problem

I No efficient solution for all cases on sequential computers(or P = NP)

I Truth tables: how many lines for n variables?

I Many problems require many variables

I Nowadays: 106 Boolean variables, 107 clauses (2(106) = 10301029)

I SAT4J, MiniSAT, Glucose, Crypto-MiniSAT, PicoSAT,. . .

Today’s lecture

I history: truth tables, DPLL (Davis, Putnam, Logemann,Loveland)

I now: CDCL (Conflict Driven Clause Learning)I Boolean propagation

I Clause representationI Conflict analysis and non-chronological backtracking

Page 12: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

2/37

Introduction (1/2)

I SAT: NP-complete (NPC) problem

I No efficient solution for all cases on sequential computers(or P = NP)

I Truth tables: how many lines for n variables?

I Many problems require many variables

I Nowadays: 106 Boolean variables, 107 clauses (2(106) = 10301029)

I SAT4J, MiniSAT, Glucose, Crypto-MiniSAT, PicoSAT,. . .

Today’s lecture

I history: truth tables, DPLL (Davis, Putnam, Logemann,Loveland)

I now: CDCL (Conflict Driven Clause Learning)I Boolean propagationI Clause representation

I Conflict analysis and non-chronological backtracking

Page 13: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

2/37

Introduction (1/2)

I SAT: NP-complete (NPC) problem

I No efficient solution for all cases on sequential computers(or P = NP)

I Truth tables: how many lines for n variables?

I Many problems require many variables

I Nowadays: 106 Boolean variables, 107 clauses (2(106) = 10301029)

I SAT4J, MiniSAT, Glucose, Crypto-MiniSAT, PicoSAT,. . .

Today’s lecture

I history: truth tables, DPLL (Davis, Putnam, Logemann,Loveland)

I now: CDCL (Conflict Driven Clause Learning)I Boolean propagationI Clause representationI Conflict analysis and non-chronological backtracking

Page 14: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

3/37

Introduction (2/2)

Satisfiability checking for profit:

I Verification (model checking, formal proofs,. . . )

I Maths (e.g. Erdos discrepancy problem)

I Planning problems

I Dependency checking (e.g. Eclipse)

I Configuration selection

I Circuit placement on silicon die

I . . .

Propositional satisfiability checking problem (SAT) is NPC.Any NPC problem can be translated polynomially into SAT

Page 15: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

3/37

Introduction (2/2)

Satisfiability checking for profit:

I Verification (model checking, formal proofs,. . . )

I Maths (e.g. Erdos discrepancy problem)

I Planning problems

I Dependency checking (e.g. Eclipse)

I Configuration selection

I Circuit placement on silicon die

I . . .

Propositional satisfiability checking problem (SAT) is NPC.Any NPC problem can be translated polynomially into SAT

Page 16: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

3/37

Introduction (2/2)

Satisfiability checking for profit:

I Verification (model checking, formal proofs,. . . )

I Maths (e.g. Erdos discrepancy problem)

I Planning problems

I Dependency checking (e.g. Eclipse)

I Configuration selection

I Circuit placement on silicon die

I . . .

Propositional satisfiability checking problem (SAT) is NPC.Any NPC problem can be translated polynomially into SAT

Page 17: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

3/37

Introduction (2/2)

Satisfiability checking for profit:

I Verification (model checking, formal proofs,. . . )

I Maths (e.g. Erdos discrepancy problem)

I Planning problems

I Dependency checking (e.g. Eclipse)

I Configuration selection

I Circuit placement on silicon die

I . . .

Propositional satisfiability checking problem (SAT) is NPC.Any NPC problem can be translated polynomially into SAT

Page 18: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

3/37

Introduction (2/2)

Satisfiability checking for profit:

I Verification (model checking, formal proofs,. . . )

I Maths (e.g. Erdos discrepancy problem)

I Planning problems

I Dependency checking (e.g. Eclipse)

I Configuration selection

I Circuit placement on silicon die

I . . .

Propositional satisfiability checking problem (SAT) is NPC.Any NPC problem can be translated polynomially into SAT

Page 19: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

3/37

Introduction (2/2)

Satisfiability checking for profit:

I Verification (model checking, formal proofs,. . . )

I Maths (e.g. Erdos discrepancy problem)

I Planning problems

I Dependency checking (e.g. Eclipse)

I Configuration selection

I Circuit placement on silicon die

I . . .

Propositional satisfiability checking problem (SAT) is NPC.Any NPC problem can be translated polynomially into SAT

Page 20: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

3/37

Introduction (2/2)

Satisfiability checking for profit:

I Verification (model checking, formal proofs,. . . )

I Maths (e.g. Erdos discrepancy problem)

I Planning problems

I Dependency checking (e.g. Eclipse)

I Configuration selection

I Circuit placement on silicon die

I . . .

Propositional satisfiability checking problem (SAT) is NPC.Any NPC problem can be translated polynomially into SAT

Page 21: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

3/37

Introduction (2/2)

Satisfiability checking for profit:

I Verification (model checking, formal proofs,. . . )

I Maths (e.g. Erdos discrepancy problem)

I Planning problems

I Dependency checking (e.g. Eclipse)

I Configuration selection

I Circuit placement on silicon die

I . . .

Propositional satisfiability checking problem (SAT) is NPC.Any NPC problem can be translated polynomially into SAT

Page 22: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

3/37

Introduction (2/2)

Satisfiability checking for profit:

I Verification (model checking, formal proofs,. . . )

I Maths (e.g. Erdos discrepancy problem)

I Planning problems

I Dependency checking (e.g. Eclipse)

I Configuration selection

I Circuit placement on silicon die

I . . .

Propositional satisfiability checking problem (SAT) is NPC.Any NPC problem can be translated polynomially into SAT

Page 23: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

4/37

Prerequisites / Notations

I Prerequisite: knowledge of propositional and first-order logic

I Boolean logic:

I Boolean (propositional) variable (v), literal (e.g. v, ¬v)¬v = v, v = ¬v

I clause (e.g. a ∨ ¬b ∨ c)I cube (e.g. a ∧ ¬b ∧ c)I formula (¬, ∧, ∨, ⇒, ≡, . . . )I interpretation, (un)satisfiable formula, valid formula

I Unit clause: clause with one literal only

I Empty clause: �, unsatisfiable

I Resolution rule:C ∨ ` C ′ ∨ `

C ∨ C ′

Page 24: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

4/37

Prerequisites / Notations

I Prerequisite: knowledge of propositional and first-order logicI Boolean logic:

I Boolean (propositional) variable (v), literal (e.g. v, ¬v)¬v = v, v = ¬v

I clause (e.g. a ∨ ¬b ∨ c)I cube (e.g. a ∧ ¬b ∧ c)I formula (¬, ∧, ∨, ⇒, ≡, . . . )I interpretation, (un)satisfiable formula, valid formula

I Unit clause: clause with one literal only

I Empty clause: �, unsatisfiable

I Resolution rule:C ∨ ` C ′ ∨ `

C ∨ C ′

Page 25: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

4/37

Prerequisites / Notations

I Prerequisite: knowledge of propositional and first-order logicI Boolean logic:

I Boolean (propositional) variable (v), literal (e.g. v, ¬v)¬v = v, v = ¬v

I clause (e.g. a ∨ ¬b ∨ c)I cube (e.g. a ∧ ¬b ∧ c)I formula (¬, ∧, ∨, ⇒, ≡, . . . )I interpretation, (un)satisfiable formula, valid formula

I Unit clause: clause with one literal only

I Empty clause: �, unsatisfiable

I Resolution rule:C ∨ ` C ′ ∨ `

C ∨ C ′

Page 26: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

4/37

Prerequisites / Notations

I Prerequisite: knowledge of propositional and first-order logicI Boolean logic:

I Boolean (propositional) variable (v), literal (e.g. v, ¬v)¬v = v, v = ¬v

I clause (e.g. a ∨ ¬b ∨ c)

I cube (e.g. a ∧ ¬b ∧ c)I formula (¬, ∧, ∨, ⇒, ≡, . . . )I interpretation, (un)satisfiable formula, valid formula

I Unit clause: clause with one literal only

I Empty clause: �, unsatisfiable

I Resolution rule:C ∨ ` C ′ ∨ `

C ∨ C ′

Page 27: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

4/37

Prerequisites / Notations

I Prerequisite: knowledge of propositional and first-order logicI Boolean logic:

I Boolean (propositional) variable (v), literal (e.g. v, ¬v)¬v = v, v = ¬v

I clause (e.g. a ∨ ¬b ∨ c)I cube (e.g. a ∧ ¬b ∧ c)

I formula (¬, ∧, ∨, ⇒, ≡, . . . )I interpretation, (un)satisfiable formula, valid formula

I Unit clause: clause with one literal only

I Empty clause: �, unsatisfiable

I Resolution rule:C ∨ ` C ′ ∨ `

C ∨ C ′

Page 28: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

4/37

Prerequisites / Notations

I Prerequisite: knowledge of propositional and first-order logicI Boolean logic:

I Boolean (propositional) variable (v), literal (e.g. v, ¬v)¬v = v, v = ¬v

I clause (e.g. a ∨ ¬b ∨ c)I cube (e.g. a ∧ ¬b ∧ c)I formula (¬, ∧, ∨, ⇒, ≡, . . . )

I interpretation, (un)satisfiable formula, valid formula

I Unit clause: clause with one literal only

I Empty clause: �, unsatisfiable

I Resolution rule:C ∨ ` C ′ ∨ `

C ∨ C ′

Page 29: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

4/37

Prerequisites / Notations

I Prerequisite: knowledge of propositional and first-order logicI Boolean logic:

I Boolean (propositional) variable (v), literal (e.g. v, ¬v)¬v = v, v = ¬v

I clause (e.g. a ∨ ¬b ∨ c)I cube (e.g. a ∧ ¬b ∧ c)I formula (¬, ∧, ∨, ⇒, ≡, . . . )I interpretation, (un)satisfiable formula, valid formula

I Unit clause: clause with one literal only

I Empty clause: �, unsatisfiable

I Resolution rule:C ∨ ` C ′ ∨ `

C ∨ C ′

Page 30: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

4/37

Prerequisites / Notations

I Prerequisite: knowledge of propositional and first-order logicI Boolean logic:

I Boolean (propositional) variable (v), literal (e.g. v, ¬v)¬v = v, v = ¬v

I clause (e.g. a ∨ ¬b ∨ c)I cube (e.g. a ∧ ¬b ∧ c)I formula (¬, ∧, ∨, ⇒, ≡, . . . )I interpretation, (un)satisfiable formula, valid formula

I Unit clause: clause with one literal only

I Empty clause: �, unsatisfiable

I Resolution rule:C ∨ ` C ′ ∨ `

C ∨ C ′

Page 31: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

4/37

Prerequisites / Notations

I Prerequisite: knowledge of propositional and first-order logicI Boolean logic:

I Boolean (propositional) variable (v), literal (e.g. v, ¬v)¬v = v, v = ¬v

I clause (e.g. a ∨ ¬b ∨ c)I cube (e.g. a ∧ ¬b ∧ c)I formula (¬, ∧, ∨, ⇒, ≡, . . . )I interpretation, (un)satisfiable formula, valid formula

I Unit clause: clause with one literal only

I Empty clause: �, unsatisfiable

I Resolution rule:C ∨ ` C ′ ∨ `

C ∨ C ′

Page 32: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

4/37

Prerequisites / Notations

I Prerequisite: knowledge of propositional and first-order logicI Boolean logic:

I Boolean (propositional) variable (v), literal (e.g. v, ¬v)¬v = v, v = ¬v

I clause (e.g. a ∨ ¬b ∨ c)I cube (e.g. a ∧ ¬b ∧ c)I formula (¬, ∧, ∨, ⇒, ≡, . . . )I interpretation, (un)satisfiable formula, valid formula

I Unit clause: clause with one literal only

I Empty clause: �, unsatisfiable

I Resolution rule:C ∨ ` C ′ ∨ `

C ∨ C ′

Page 33: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

5/37

A propositional problem (1/2)

You are chief of protocol for the embassy ball. The crownprince instructs you either to invite Peru or to excludeQatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful mood, wants tosnub either Romania or Peru or both. Is there a guest listthat will satisfy the whims of the entire royal family?

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Page 34: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

5/37

A propositional problem (1/2)

You are chief of protocol for the embassy ball. The crownprince instructs you either to invite Peru or to excludeQatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful mood, wants tosnub either Romania or Peru or both. Is there a guest listthat will satisfy the whims of the entire royal family?

(P ∨ ¬Q)

∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Page 35: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

5/37

A propositional problem (1/2)

You are chief of protocol for the embassy ball. The crownprince instructs you either to invite Peru or to excludeQatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful mood, wants tosnub either Romania or Peru or both. Is there a guest listthat will satisfy the whims of the entire royal family?

(P ∨ ¬Q) ∧ (Q ∨R)

∧ (¬R ∨ ¬P )

Page 36: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

5/37

A propositional problem (1/2)

You are chief of protocol for the embassy ball. The crownprince instructs you either to invite Peru or to excludeQatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful mood, wants tosnub either Romania or Peru or both. Is there a guest listthat will satisfy the whims of the entire royal family?

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Page 37: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0

0

0 0 1

1

0 1 0

0

0 1 1

0

1 0 0

0

1 0 1

0

1 1 0

1

1 1 1

0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q

1 -2 0

Q ∨R

2 3 0

¬R ∨ ¬P

-3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬RNo more solutions

Page 38: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0

0

0 0 1

1

0 1 0

0

0 1 1

0

1 0 0

0

1 0 1

0

1 1 0

1

1 1 1

0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q

1 -2 0

Q ∨R

2 3 0

¬R ∨ ¬P

-3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬RNo more solutions

Page 39: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0

0

0 0 1

1

0 1 0

0

0 1 1

0

1 0 0

0

1 0 1

0

1 1 0

1

1 1 1

0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q

1 -2 0

Q ∨R

2 3 0

¬R ∨ ¬P

-3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬RNo more solutions

Page 40: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q

1 -2 0

Q ∨R

2 3 0

¬R ∨ ¬P

-3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬RNo more solutions

Page 41: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q

1 -2 0

Q ∨R

2 3 0

¬R ∨ ¬P

-3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬RNo more solutions

Page 42: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q

1 -2 0

Q ∨R

2 3 0

¬R ∨ ¬P

-3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬RNo more solutions

Page 43: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q 1 -2 0

Q ∨R 2 3 0

¬R ∨ ¬P -3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬RNo more solutions

Page 44: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q 1 -2 0

Q ∨R 2 3 0

¬R ∨ ¬P -3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬RNo more solutions

Page 45: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q 1 -2 0

Q ∨R 2 3 0

¬R ∨ ¬P -3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬RNo more solutions

Page 46: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q 1 -2 0

Q ∨R 2 3 0

¬R ∨ ¬P -3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬RNo more solutions

Page 47: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q 1 -2 0

Q ∨R 2 3 0

¬R ∨ ¬P -3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬R

No more solutions

Page 48: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q 1 -2 0

Q ∨R 2 3 0

¬R ∨ ¬P -3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬R

No more solutions

Page 49: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

6/37

A propositional problem (2/2)

ϕ =def (P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Truth table for ϕ

P Q R ϕ

0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 0

SAT checker

DIMACS format

Vars → numbers: P → 1, Q→ 2, R→ 3Literals: P → 1, ¬P → −1

p cnf 3 3

P ∨ ¬Q 1 -2 0

Q ∨R 2 3 0

¬R ∨ ¬P -3 -1 0

P ∨Q ∨ ¬R 1 2 -3 0

¬P ∨ ¬Q ∨R -1 -2 3 0

Solution: -1 -2 3 → ¬P ∧ ¬Q ∧R

Another solution? Add clause

Solution: 1 2 -3 → P ∧Q ∧ ¬RNo more solutions

Page 50: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

7/37

DPLL: rule-based viewDavis, Putnam, Logemann, Loveland

Let S be a set of clauses

Unit ResolutionS ∪ {`, C ∨ `}S ∪ {`, C}(

Unit SubsumptionS ∪ {`, C ∨ `}

S ∪ {`}

)Splitting

S

S ∪ {v} | S ∪ {¬v} if v is a variable occurring in S

I Failed branch: a trivial contradiction {. . . , v, . . . ,¬v . . . }I Successful branch: not failed, only unit clauses (with unit sub.)

Exercise: explain how a Boolean model can be extracted from theapplication of these rules(Hint: think of derivation trees and collect unit clauses...)

Page 51: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

7/37

DPLL: rule-based viewDavis, Putnam, Logemann, Loveland

Let S be a set of clauses

Unit ResolutionS ∪ {`, C ∨ `}S ∪ {`, C}(

Unit SubsumptionS ∪ {`, C ∨ `}

S ∪ {`}

)Splitting

S

S ∪ {v} | S ∪ {¬v} if v is a variable occurring in S

I Failed branch: a trivial contradiction {. . . , v, . . . ,¬v . . . }I Successful branch: not failed, only unit clauses (with unit sub.)

Exercise: explain how a Boolean model can be extracted from theapplication of these rules

(Hint: think of derivation trees and collect unit clauses...)

Page 52: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

7/37

DPLL: rule-based viewDavis, Putnam, Logemann, Loveland

Let S be a set of clauses

Unit ResolutionS ∪ {`, C ∨ `}S ∪ {`, C}(

Unit SubsumptionS ∪ {`, C ∨ `}

S ∪ {`}

)Splitting

S

S ∪ {v} | S ∪ {¬v} if v is a variable occurring in S

I Failed branch: a trivial contradiction {. . . , v, . . . ,¬v . . . }I Successful branch: not failed, only unit clauses (with unit sub.)

Exercise: explain how a Boolean model can be extracted from theapplication of these rules(Hint: think of derivation trees and collect unit clauses...)

Page 53: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

8/37

DPLL: example

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Already a set of clauses:

Split

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P} | {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}

And then only Unit Resolution rules

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P}{P ∨ ¬Q,Q ∨R,¬R,P}{P ∨ ¬Q,Q,¬R,P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,R,¬R ∨ ¬P,¬P}

Remarks :

I Same two models again

I Satisfiability procedure: find one model (and stop)

I Much less sensitive to the number of variables than truth tables

Page 54: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

8/37

DPLL: example

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Already a set of clauses:

Split{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P} | {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}

And then only Unit Resolution rules

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P}{P ∨ ¬Q,Q ∨R,¬R,P}{P ∨ ¬Q,Q,¬R,P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,R,¬R ∨ ¬P,¬P}

Remarks :

I Same two models again

I Satisfiability procedure: find one model (and stop)

I Much less sensitive to the number of variables than truth tables

Page 55: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

8/37

DPLL: example

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Already a set of clauses:

Split{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P} | {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}

And then only Unit Resolution rules

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P}

{P ∨ ¬Q,Q ∨R,¬R,P}{P ∨ ¬Q,Q,¬R,P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,R,¬R ∨ ¬P,¬P}

Remarks :

I Same two models again

I Satisfiability procedure: find one model (and stop)

I Much less sensitive to the number of variables than truth tables

Page 56: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

8/37

DPLL: example

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Already a set of clauses:

Split{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P} | {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}

And then only Unit Resolution rules

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P}{P ∨ ¬Q,Q ∨R,¬R,P}

{P ∨ ¬Q,Q,¬R,P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,R,¬R ∨ ¬P,¬P}

Remarks :

I Same two models again

I Satisfiability procedure: find one model (and stop)

I Much less sensitive to the number of variables than truth tables

Page 57: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

8/37

DPLL: example

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Already a set of clauses:

Split{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P} | {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}

And then only Unit Resolution rules

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P}{P ∨ ¬Q,Q ∨R,¬R,P}{P ∨ ¬Q,Q,¬R,P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,R,¬R ∨ ¬P,¬P}

Remarks :

I Same two models again

I Satisfiability procedure: find one model (and stop)

I Much less sensitive to the number of variables than truth tables

Page 58: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

8/37

DPLL: example

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Already a set of clauses:

Split{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P} | {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}

And then only Unit Resolution rules

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P}{P ∨ ¬Q,Q ∨R,¬R,P}{P ∨ ¬Q,Q,¬R,P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}

{¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,R,¬R ∨ ¬P,¬P}

Remarks :

I Same two models again

I Satisfiability procedure: find one model (and stop)

I Much less sensitive to the number of variables than truth tables

Page 59: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

8/37

DPLL: example

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Already a set of clauses:

Split{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P} | {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}

And then only Unit Resolution rules

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P}{P ∨ ¬Q,Q ∨R,¬R,P}{P ∨ ¬Q,Q,¬R,P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,Q ∨R,¬R ∨ ¬P,¬P}

{¬Q,R,¬R ∨ ¬P,¬P}

Remarks :

I Same two models again

I Satisfiability procedure: find one model (and stop)

I Much less sensitive to the number of variables than truth tables

Page 60: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

8/37

DPLL: example

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Already a set of clauses:

Split{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P} | {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}

And then only Unit Resolution rules

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P}{P ∨ ¬Q,Q ∨R,¬R,P}{P ∨ ¬Q,Q,¬R,P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,R,¬R ∨ ¬P,¬P}

Remarks :

I Same two models again

I Satisfiability procedure: find one model (and stop)

I Much less sensitive to the number of variables than truth tables

Page 61: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

8/37

DPLL: example

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Already a set of clauses:

Split{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P} | {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}

And then only Unit Resolution rules

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P}{P ∨ ¬Q,Q ∨R,¬R,P}{P ∨ ¬Q,Q,¬R,P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,R,¬R ∨ ¬P,¬P}

Remarks :

I Same two models again

I Satisfiability procedure: find one model (and stop)

I Much less sensitive to the number of variables than truth tables

Page 62: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

8/37

DPLL: example

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Already a set of clauses:

Split{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P} | {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}

And then only Unit Resolution rules

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P}{P ∨ ¬Q,Q ∨R,¬R,P}{P ∨ ¬Q,Q,¬R,P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,R,¬R ∨ ¬P,¬P}

Remarks :

I Same two models again

I Satisfiability procedure: find one model (and stop)

I Much less sensitive to the number of variables than truth tables

Page 63: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

8/37

DPLL: example

(P ∨ ¬Q) ∧ (Q ∨R) ∧ (¬R ∨ ¬P )

Already a set of clauses:

Split{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P} | {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}

And then only Unit Resolution rules

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P, P}{P ∨ ¬Q,Q ∨R,¬R,P}{P ∨ ¬Q,Q,¬R,P}

{P ∨ ¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,Q ∨R,¬R ∨ ¬P,¬P}{¬Q,R,¬R ∨ ¬P,¬P}

Remarks :

I Same two models again

I Satisfiability procedure: find one model (and stop)

I Much less sensitive to the number of variables than truth tables

Page 64: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

9/37

DPLL: exercises

I P ∨Q,¬P ∨Q,¬R ∨ ¬Q,R ∨ ¬QI P ∨Q ∨R,¬P ∨ ¬Q ∨ ¬R,¬P ∨Q ∨R,¬Q ∨R,Q ∨ ¬RI ¬Q ∨ P,¬P ∨ ¬Q,Q ∨R,¬Q ∨ ¬R,¬P ∨ ¬R,P ∨ ¬R

Page 65: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

10/37

Boolean formulas, CNF, DNF

I Boolean formulas: built with variables ¬, ∧, ∨, ⇒, . . .

I Conjunctive Normal Form (CNF): conjunction of clauses

I Disjunctive Normal Form (DNF): disjunction of cubes

Theorem

Every formula is logically equivalent to a CNF (DNF)

Remark :

I Converting to DNF, then finding one satisfiable cube is a trivialsatisfiability procedure

I checking the satisfiability of a cube is linear

I so DNF conversion cannot be efficient (i.e. polynomial) or P = NP

I computing DNF of formula: negation of CNF of negation of formula

I so CNF conversion cannot be efficient

Page 66: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

10/37

Boolean formulas, CNF, DNF

I Boolean formulas: built with variables ¬, ∧, ∨, ⇒, . . .

I Conjunctive Normal Form (CNF): conjunction of clauses

I Disjunctive Normal Form (DNF): disjunction of cubes

Theorem

Every formula is logically equivalent to a CNF (DNF)

Remark :

I Converting to DNF, then finding one satisfiable cube is a trivialsatisfiability procedure

I checking the satisfiability of a cube is linear

I so DNF conversion cannot be efficient (i.e. polynomial) or P = NP

I computing DNF of formula: negation of CNF of negation of formula

I so CNF conversion cannot be efficient

Page 67: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

10/37

Boolean formulas, CNF, DNF

I Boolean formulas: built with variables ¬, ∧, ∨, ⇒, . . .

I Conjunctive Normal Form (CNF): conjunction of clauses

I Disjunctive Normal Form (DNF): disjunction of cubes

Theorem

Every formula is logically equivalent to a CNF (DNF)

Remark :

I Converting to DNF, then finding one satisfiable cube is a trivialsatisfiability procedure

I checking the satisfiability of a cube is linear

I so DNF conversion cannot be efficient (i.e. polynomial) or P = NP

I computing DNF of formula: negation of CNF of negation of formula

I so CNF conversion cannot be efficient

Page 68: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

10/37

Boolean formulas, CNF, DNF

I Boolean formulas: built with variables ¬, ∧, ∨, ⇒, . . .

I Conjunctive Normal Form (CNF): conjunction of clauses

I Disjunctive Normal Form (DNF): disjunction of cubes

Theorem

Every formula is logically equivalent to a CNF (DNF)

Remark :

I Converting to DNF, then finding one satisfiable cube is a trivialsatisfiability procedure

I checking the satisfiability of a cube is linear

I so DNF conversion cannot be efficient (i.e. polynomial) or P = NP

I computing DNF of formula: negation of CNF of negation of formula

I so CNF conversion cannot be efficient

Page 69: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

10/37

Boolean formulas, CNF, DNF

I Boolean formulas: built with variables ¬, ∧, ∨, ⇒, . . .

I Conjunctive Normal Form (CNF): conjunction of clauses

I Disjunctive Normal Form (DNF): disjunction of cubes

Theorem

Every formula is logically equivalent to a CNF (DNF)

Remark :

I Converting to DNF, then finding one satisfiable cube is a trivialsatisfiability procedure

I checking the satisfiability of a cube is linear

I so DNF conversion cannot be efficient (i.e. polynomial) or P = NP

I computing DNF of formula: negation of CNF of negation of formula

I so CNF conversion cannot be efficient

Page 70: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

10/37

Boolean formulas, CNF, DNF

I Boolean formulas: built with variables ¬, ∧, ∨, ⇒, . . .

I Conjunctive Normal Form (CNF): conjunction of clauses

I Disjunctive Normal Form (DNF): disjunction of cubes

Theorem

Every formula is logically equivalent to a CNF (DNF)

Remark :

I Converting to DNF, then finding one satisfiable cube is a trivialsatisfiability procedure

I checking the satisfiability of a cube is linear

I so DNF conversion cannot be efficient (i.e. polynomial) or P = NP

I computing DNF of formula: negation of CNF of negation of formula

I so CNF conversion cannot be efficient

Page 71: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

10/37

Boolean formulas, CNF, DNF

I Boolean formulas: built with variables ¬, ∧, ∨, ⇒, . . .

I Conjunctive Normal Form (CNF): conjunction of clauses

I Disjunctive Normal Form (DNF): disjunction of cubes

Theorem

Every formula is logically equivalent to a CNF (DNF)

Remark :

I Converting to DNF, then finding one satisfiable cube is a trivialsatisfiability procedure

I checking the satisfiability of a cube is linear

I so DNF conversion cannot be efficient (i.e. polynomial) or P = NP

I computing DNF of formula: negation of CNF of negation of formula

I so CNF conversion cannot be efficient

Page 72: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

10/37

Boolean formulas, CNF, DNF

I Boolean formulas: built with variables ¬, ∧, ∨, ⇒, . . .

I Conjunctive Normal Form (CNF): conjunction of clauses

I Disjunctive Normal Form (DNF): disjunction of cubes

Theorem

Every formula is logically equivalent to a CNF (DNF)

Remark :

I Converting to DNF, then finding one satisfiable cube is a trivialsatisfiability procedure

I checking the satisfiability of a cube is linear

I so DNF conversion cannot be efficient (i.e. polynomial) or P = NP

I computing DNF of formula: negation of CNF of negation of formula

I so CNF conversion cannot be efficient

Page 73: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

10/37

Boolean formulas, CNF, DNF

I Boolean formulas: built with variables ¬, ∧, ∨, ⇒, . . .

I Conjunctive Normal Form (CNF): conjunction of clauses

I Disjunctive Normal Form (DNF): disjunction of cubes

Theorem

Every formula is logically equivalent to a CNF (DNF)

Remark :

I Converting to DNF, then finding one satisfiable cube is a trivialsatisfiability procedure

I checking the satisfiability of a cube is linear

I so DNF conversion cannot be efficient (i.e. polynomial) or P = NP

I computing DNF of formula: negation of CNF of negation of formula

I so CNF conversion cannot be efficient

Page 74: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

10/37

Boolean formulas, CNF, DNF

I Boolean formulas: built with variables ¬, ∧, ∨, ⇒, . . .

I Conjunctive Normal Form (CNF): conjunction of clauses

I Disjunctive Normal Form (DNF): disjunction of cubes

Theorem

Every formula is logically equivalent to a CNF (DNF)

Remark :

I Converting to DNF, then finding one satisfiable cube is a trivialsatisfiability procedure

I checking the satisfiability of a cube is linear

I so DNF conversion cannot be efficient (i.e. polynomial) or P = NP

I computing DNF of formula: negation of CNF of negation of formula

I so CNF conversion cannot be efficient

Page 75: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

11/37

Efficient computation of CNF

ConsiderΦ = (a1 ∧ · · · ∧ am) ∨ (b1 ∧ · · · ∧ bn)

Equivalent CNF:m∧i=1

n∧j=1

(ai ∨ bj)

Equisatisfiable CNF:

(X ∨ Y ) ∧ (X ⇔ a1 ∧ · · · ∧ am) ∧ (Y ⇔ b1 ∧ · · · ∧ bn)

where (X ⇔ a1 ∧ · · · ∧ am) can be represented as a conjunction ofclauses

(Exercise next slide).

Theorem (Tseitin transformation)

Every formula can be transformed in linear time into anequisatisfiable CNF

Page 76: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

11/37

Efficient computation of CNF

ConsiderΦ = (a1 ∧ · · · ∧ am) ∨ (b1 ∧ · · · ∧ bn)

Equivalent CNF:m∧i=1

n∧j=1

(ai ∨ bj)

Equisatisfiable CNF:

(X ∨ Y ) ∧ (X ⇔ a1 ∧ · · · ∧ am) ∧ (Y ⇔ b1 ∧ · · · ∧ bn)

where (X ⇔ a1 ∧ · · · ∧ am) can be represented as a conjunction ofclauses (Exercise next slide).

Theorem (Tseitin transformation)

Every formula can be transformed in linear time into anequisatisfiable CNF

Page 77: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

11/37

Efficient computation of CNF

ConsiderΦ = (a1 ∧ · · · ∧ am) ∨ (b1 ∧ · · · ∧ bn)

Equivalent CNF:m∧i=1

n∧j=1

(ai ∨ bj)

Equisatisfiable CNF:

(X ∨ Y ) ∧ (X ⇔ a1 ∧ · · · ∧ am) ∧ (Y ⇔ b1 ∧ · · · ∧ bn)

where (X ⇔ a1 ∧ · · · ∧ am) can be represented as a conjunction ofclauses (Exercise next slide).

Theorem (Tseitin transformation)

Every formula can be transformed in linear time into anequisatisfiable CNF

Page 78: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

12/37

Computing CNFs: exercises

I (X ⇔ a1 ∧ · · · ∧ am)

I (p⇒ q) ≡ (p⇒ r)

I (p ∧ q) ∨ (r ∧ s) ∨ (¬q ∧ (p ∨ t))

Page 79: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

13/37

DPLL: from rules to algorithm

From rules to algorithm:

I a way to enumerate splittings

I some splittings may lead to closed branches (clause unsatisfied/ empty clause derived)

I backtracking

I avoid copying sets of clauses and modifying clauses

Stack of assigned literals:

I some decided, others propagated

I level: number of decided literals on stack

I some clause become unitall literals but one assigned to false, last literal not assigned=⇒ new propagated literal on the stack

I clause may be falsified: all literals assigned to false=⇒ backtrack the last decision

I never mind about satisfied clause

Page 80: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

13/37

DPLL: from rules to algorithm

From rules to algorithm:

I a way to enumerate splittings

I some splittings may lead to closed branches (clause unsatisfied/ empty clause derived)

I backtracking

I avoid copying sets of clauses and modifying clauses

Stack of assigned literals:

I some decided, others propagated

I level: number of decided literals on stack

I some clause become unitall literals but one assigned to false, last literal not assigned=⇒ new propagated literal on the stack

I clause may be falsified: all literals assigned to false=⇒ backtrack the last decision

I never mind about satisfied clause

Page 81: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

13/37

DPLL: from rules to algorithm

From rules to algorithm:

I a way to enumerate splittings

I some splittings may lead to closed branches (clause unsatisfied/ empty clause derived)

I backtracking

I avoid copying sets of clauses and modifying clauses

Stack of assigned literals:

I some decided, others propagated

I level: number of decided literals on stack

I some clause become unitall literals but one assigned to false, last literal not assigned=⇒ new propagated literal on the stack

I clause may be falsified: all literals assigned to false=⇒ backtrack the last decision

I never mind about satisfied clause

Page 82: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

13/37

DPLL: from rules to algorithm

From rules to algorithm:

I a way to enumerate splittings

I some splittings may lead to closed branches (clause unsatisfied/ empty clause derived)

I backtracking

I avoid copying sets of clauses and modifying clauses

Stack of assigned literals:

I some decided, others propagated

I level: number of decided literals on stack

I some clause become unitall literals but one assigned to false, last literal not assigned=⇒ new propagated literal on the stack

I clause may be falsified: all literals assigned to false=⇒ backtrack the last decision

I never mind about satisfied clause

Page 83: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

13/37

DPLL: from rules to algorithm

From rules to algorithm:

I a way to enumerate splittings

I some splittings may lead to closed branches (clause unsatisfied/ empty clause derived)

I backtracking

I avoid copying sets of clauses and modifying clauses

Stack of assigned literals:

I some decided, others propagated

I level: number of decided literals on stack

I some clause become unitall literals but one assigned to false, last literal not assigned=⇒ new propagated literal on the stack

I clause may be falsified: all literals assigned to false=⇒ backtrack the last decision

I never mind about satisfied clause

Page 84: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

13/37

DPLL: from rules to algorithm

From rules to algorithm:

I a way to enumerate splittings

I some splittings may lead to closed branches (clause unsatisfied/ empty clause derived)

I backtracking

I avoid copying sets of clauses and modifying clauses

Stack of assigned literals:

I some decided, others propagated

I level: number of decided literals on stack

I some clause become unitall literals but one assigned to false, last literal not assigned=⇒ new propagated literal on the stack

I clause may be falsified: all literals assigned to false=⇒ backtrack the last decision

I never mind about satisfied clause

Page 85: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

13/37

DPLL: from rules to algorithm

From rules to algorithm:

I a way to enumerate splittings

I some splittings may lead to closed branches (clause unsatisfied/ empty clause derived)

I backtracking

I avoid copying sets of clauses and modifying clauses

Stack of assigned literals:

I some decided, others propagated

I level: number of decided literals on stack

I some clause become unitall literals but one assigned to false, last literal not assigned=⇒ new propagated literal on the stack

I clause may be falsified: all literals assigned to false=⇒ backtrack the last decision

I never mind about satisfied clause

Page 86: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

13/37

DPLL: from rules to algorithm

From rules to algorithm:

I a way to enumerate splittings

I some splittings may lead to closed branches (clause unsatisfied/ empty clause derived)

I backtracking

I avoid copying sets of clauses and modifying clauses

Stack of assigned literals:

I some decided, others propagated

I level: number of decided literals on stack

I some clause become unitall literals but one assigned to false, last literal not assigned=⇒ new propagated literal on the stack

I clause may be falsified: all literals assigned to false=⇒ backtrack the last decision

I never mind about satisfied clause

Page 87: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

13/37

DPLL: from rules to algorithm

From rules to algorithm:

I a way to enumerate splittings

I some splittings may lead to closed branches (clause unsatisfied/ empty clause derived)

I backtracking

I avoid copying sets of clauses and modifying clauses

Stack of assigned literals:

I some decided, others propagated

I level: number of decided literals on stack

I some clause become unitall literals but one assigned to false, last literal not assigned=⇒ new propagated literal on the stack

I clause may be falsified: all literals assigned to false=⇒ backtrack the last decision

I never mind about satisfied clause

Page 88: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

13/37

DPLL: from rules to algorithm

From rules to algorithm:

I a way to enumerate splittings

I some splittings may lead to closed branches (clause unsatisfied/ empty clause derived)

I backtracking

I avoid copying sets of clauses and modifying clauses

Stack of assigned literals:

I some decided, others propagated

I level: number of decided literals on stack

I some clause become unitall literals but one assigned to false, last literal not assigned=⇒ new propagated literal on the stack

I clause may be falsified: all literals assigned to false=⇒ backtrack the last decision

I never mind about satisfied clause

Page 89: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

14/37

DPLL: algorithmic view

1: procedure SAT(C)2: while > do3: if Propagate() then4: if ¬Decide() then5: return SAT

6: continue7: if level = 0 then8: return UNSAT

9: Analyse()

10: Backtrack()

I Propagate: find unit clausesrepeatedly and push literals onthe stack. Returns ⊥ iffunsatisfied clause

I Decide: choses one nonassigned literal, push on stack.Returns ⊥ iff no literal

I Analyse: analyse the conflictfrom propagate, create conflictclause, add it in the set ofclauses

I Backtrack: backtrack (popliterals from stack) until the lastdecision and add the oppositeliteral as propagated

Write successive stacks for runs on

I {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}I {a∨b,¬b∨c∨d,¬b∨e,¬d∨¬e∨f, a∨c∨f,¬a∨g,¬g∨b,¬h∨j,¬i∨k}

Page 90: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

14/37

DPLL: algorithmic view

1: procedure SAT(C)2: while > do3: if Propagate() then4: if ¬Decide() then5: return SAT

6: continue7: if level = 0 then8: return UNSAT

9: Analyse()

10: Backtrack()

I Propagate: find unit clausesrepeatedly and push literals onthe stack. Returns ⊥ iffunsatisfied clause

I Decide: choses one nonassigned literal, push on stack.Returns ⊥ iff no literal

I Analyse: analyse the conflictfrom propagate, create conflictclause, add it in the set ofclauses

I Backtrack: backtrack (popliterals from stack) until the lastdecision and add the oppositeliteral as propagated

Write successive stacks for runs on

I {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}I {a∨b,¬b∨c∨d,¬b∨e,¬d∨¬e∨f, a∨c∨f,¬a∨g,¬g∨b,¬h∨j,¬i∨k}

Page 91: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

14/37

DPLL: algorithmic view

1: procedure SAT(C)2: while > do3: if Propagate() then4: if ¬Decide() then5: return SAT

6: continue7: if level = 0 then8: return UNSAT

9: Analyse()

10: Backtrack()

I Propagate: find unit clausesrepeatedly and push literals onthe stack. Returns ⊥ iffunsatisfied clause

I Decide: choses one nonassigned literal, push on stack.Returns ⊥ iff no literal

I Analyse: analyse the conflictfrom propagate, create conflictclause, add it in the set ofclauses

I Backtrack: backtrack (popliterals from stack) until the lastdecision and add the oppositeliteral as propagated

Write successive stacks for runs on

I {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}I {a∨b,¬b∨c∨d,¬b∨e,¬d∨¬e∨f, a∨c∨f,¬a∨g,¬g∨b,¬h∨j,¬i∨k}

Page 92: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

14/37

DPLL: algorithmic view

1: procedure SAT(C)2: while > do3: if Propagate() then4: if ¬Decide() then5: return SAT

6: continue7: if level = 0 then8: return UNSAT

9: Analyse()

10: Backtrack()

I Propagate: find unit clausesrepeatedly and push literals onthe stack. Returns ⊥ iffunsatisfied clause

I Decide: choses one nonassigned literal, push on stack.Returns ⊥ iff no literal

I Analyse: analyse the conflictfrom propagate, create conflictclause, add it in the set ofclauses

I Backtrack: backtrack (popliterals from stack) until the lastdecision and add the oppositeliteral as propagated

Write successive stacks for runs on

I {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}I {a∨b,¬b∨c∨d,¬b∨e,¬d∨¬e∨f, a∨c∨f,¬a∨g,¬g∨b,¬h∨j,¬i∨k}

Page 93: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

14/37

DPLL: algorithmic view

1: procedure SAT(C)2: while > do3: if Propagate() then4: if ¬Decide() then5: return SAT

6: continue7: if level = 0 then8: return UNSAT

9: Analyse()

10: Backtrack()

I Propagate: find unit clausesrepeatedly and push literals onthe stack. Returns ⊥ iffunsatisfied clause

I Decide: choses one nonassigned literal, push on stack.Returns ⊥ iff no literal

I Analyse: analyse the conflictfrom propagate, create conflictclause, add it in the set ofclauses

I Backtrack: backtrack (popliterals from stack) until the lastdecision and add the oppositeliteral as propagated

Write successive stacks for runs on

I {P ∨ ¬Q,Q ∨R,¬R ∨ ¬P}I {a∨b,¬b∨c∨d,¬b∨e,¬d∨¬e∨f, a∨c∨f,¬a∨g,¬g∨b,¬h∨j,¬i∨k}

Page 94: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

15/37

DPLL: abstract view

Rules handle a data-structure M || F where M is a partialassignment of Boolean variables, and F is a set of clauses

Propagate M || F,C ∨ ` ` M ` || F,C ∨ `if M |= ¬C, ` undefined in M

Decide M || F ` M `d || Fif ` or ` in F , ` undefined in M

Fail M || F,C ` ⊥if M |= ¬C, no decision literals in M

Backtrack M `d N || F,C ` M ` || F,C

if

{M `d N |= ¬Cno decision literals in N

Page 95: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

16/37

DPLL: algorithmic view

1: procedure SAT(C)2: while > do3: if Propagate() then4: if ¬Decide() then5: return SAT

6: continue7: if level = 0 then8: return UNSAT

9: Analyse()

10: Backtrack()

I Propagate: find unit clausesrepeatedly and push literals onthe stack. Returns ⊥ iffunsatisfied clause

I Decide: choses one nonassigned literal, push on stack.Returns ⊥ iff no literal

I Analyse: analyse the conflictfrom propagate, create conflictclause, add it in the set ofclauses

I Backtrack: backtrack (popliterals from stack) until the lastdecision and add the oppositeliteral as propagated

Page 96: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

17/37

Towards CDCLConflict Driven Clause Learning

Backtrack

I depending on decisions, the same dead end may be tried againand again

I would be much better to remember the very reason whyconflict: new clause

I then forget about backtracking and changing decision. Justadd clause, backtrack to when it is propagating

Page 97: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

17/37

Towards CDCLConflict Driven Clause Learning

Backtrack

I depending on decisions, the same dead end may be tried againand again

I would be much better to remember the very reason whyconflict: new clause

I then forget about backtracking and changing decision. Justadd clause, backtrack to when it is propagating

Page 98: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

17/37

Towards CDCLConflict Driven Clause Learning

Backtrack

I depending on decisions, the same dead end may be tried againand again

I would be much better to remember the very reason whyconflict: new clause

I then forget about backtracking and changing decision. Justadd clause, backtrack to when it is propagating

Page 99: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

18/37

DPLL: algorithmic view

1: procedure SAT(C)2: while > do3: if Propagate() then4: if ¬Decide() then5: return SAT

6: continue7: if level = 0 then8: return UNSAT

9: Analyse()

10: Backtrack()

I Propagate: find unit clausesrepeatedly and push literals onthe stack. Returns ⊥ iffunsatisfied clause

I Decide: choses one nonassigned literal, push on stack.Returns ⊥ iff no literal

I Analyse: analyse the conflictfrom propagate, create conflictclause, add it in the set ofclauses

I Backtrack: backtrack (popliterals from stack) until the lastdecision and add the oppositeliteral as propagated

Page 100: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

19/37

CDCL: algorithmic view

1: procedure SAT(C)2: while > do3: if Propagate() then4: if ¬Decide() then5: return SAT

6: continue7: if level = 0 then8: return UNSAT

9: Analyse()10: Backtrack()

I Propagate: find unit clausesrepeatedly and push literals onthe stack. Returns ⊥ iffunsatisfied clause

I Decide: choses one nonassigned literal, push on stack.Returns ⊥ iff no literal

I Analyse: analyse the conflictfrom propagate, create conflictclause, add it in the set ofclauses

I Backtrack: backtrack(eliminate literals from stack)until conflict clause is unit

Page 101: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 102: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1

I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 103: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2

I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 104: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3

I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 105: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4

I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 106: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5

I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 107: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6

I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 108: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7

I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 109: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8

I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 110: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9

I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 111: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10

I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 112: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11

I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 113: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12

I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 114: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13

I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 115: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14

I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 116: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15

I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 117: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16

I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 118: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

20/37

Conflict analysis, example (1/5)

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

I No unit clause: decide ¬x1I C1: propagate x2I C2: propagate ¬x3I No unit clause: decide x4I C3: propagate ¬x5I C4: propagate x6I No unit clause: decide ¬x7I C5: propagate ¬x8I C6: propagate x9I No unit clause: decide ¬x10I C7: propagate x11I C8: propagate ¬x12I C9: propagate ¬x13I C10: propagate x14I C11: propagate x15I C12: propagate ¬x16I C13: propagate x16I Conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 119: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 120: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 121: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 122: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 123: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 124: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 125: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 126: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 127: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 128: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 129: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 130: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 131: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 132: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 133: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 134: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 135: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 136: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 137: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 138: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

Every line separating the conflict from the decisionsdefines a logical consequent clause

x13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 139: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 140: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

Every line separating the conflict from the decisionsdefines a logical consequent clause

x13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 141: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

Every line separating the conflict from the decisionsdefines a logical consequent clause

x13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 142: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?

UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 143: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

21/37

Conflict analysis, example (2/5)Conflict graph

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

Every line separating the conflict from the decisionsdefines a logical consequent clausex13 ∨ ¬x14 ∨ ¬x15

x1 ∨ ¬x4 ∨ x7 ∨ x10

¬x2 ∨ ¬x4 ∨ x5 ∨ x7 ∨ x8 ∨ x10

Which one to choose?UIP: unique implication point: just ONE greenOne variable at conflicting decision level

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 144: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

22/37

Conflict analysis, example (3/5)Conflict graph, UIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: unique implication point: just ONE greenOne variable at the conflicting decision level

There are several of them¬x6 ∨ x7 ∨ x8 ∨ ¬x9 ∨ x10

¬x6 ∨ x7 ∨ x8 ∨ ¬x11

¬x6 ∨ x7 ∨ x12

Take the FUIP (first unique implication point):closest to conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 145: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

22/37

Conflict analysis, example (3/5)Conflict graph, UIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: unique implication point: just ONE greenOne variable at the conflicting decision levelThere are several of them

¬x6 ∨ x7 ∨ x8 ∨ ¬x9 ∨ x10

¬x6 ∨ x7 ∨ x8 ∨ ¬x11

¬x6 ∨ x7 ∨ x12

Take the FUIP (first unique implication point):closest to conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 146: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

22/37

Conflict analysis, example (3/5)Conflict graph, UIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: unique implication point: just ONE greenOne variable at the conflicting decision levelThere are several of them

¬x6 ∨ x7 ∨ x8 ∨ ¬x9 ∨ x10

¬x6 ∨ x7 ∨ x8 ∨ ¬x11

¬x6 ∨ x7 ∨ x12

Take the FUIP (first unique implication point):closest to conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 147: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

22/37

Conflict analysis, example (3/5)Conflict graph, UIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: unique implication point: just ONE greenOne variable at the conflicting decision levelThere are several of them¬x6 ∨ x7 ∨ x8 ∨ ¬x9 ∨ x10

¬x6 ∨ x7 ∨ x8 ∨ ¬x11

¬x6 ∨ x7 ∨ x12

Take the FUIP (first unique implication point):closest to conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 148: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

22/37

Conflict analysis, example (3/5)Conflict graph, UIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: unique implication point: just ONE greenOne variable at the conflicting decision levelThere are several of them¬x6 ∨ x7 ∨ x8 ∨ ¬x9 ∨ x10

¬x6 ∨ x7 ∨ x8 ∨ ¬x11

¬x6 ∨ x7 ∨ x12

Take the FUIP (first unique implication point):closest to conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 149: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

22/37

Conflict analysis, example (3/5)Conflict graph, UIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: unique implication point: just ONE greenOne variable at the conflicting decision levelThere are several of them¬x6 ∨ x7 ∨ x8 ∨ ¬x9 ∨ x10

¬x6 ∨ x7 ∨ x8 ∨ ¬x11

¬x6 ∨ x7 ∨ x12

Take the FUIP (first unique implication point):closest to conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 150: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

22/37

Conflict analysis, example (3/5)Conflict graph, UIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: unique implication point: just ONE greenOne variable at the conflicting decision levelThere are several of them¬x6 ∨ x7 ∨ x8 ∨ ¬x9 ∨ x10

¬x6 ∨ x7 ∨ x8 ∨ ¬x11

¬x6 ∨ x7 ∨ x12

Take the FUIP (first unique implication point):closest to conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 151: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

22/37

Conflict analysis, example (3/5)Conflict graph, UIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: unique implication point: just ONE greenOne variable at the conflicting decision levelThere are several of them¬x6 ∨ x7 ∨ x8 ∨ ¬x9 ∨ x10

¬x6 ∨ x7 ∨ x8 ∨ ¬x11

¬x6 ∨ x7 ∨ x12

Take the FUIP (first unique implication point):closest to conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 152: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

22/37

Conflict analysis, example (3/5)Conflict graph, UIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: unique implication point: just ONE greenOne variable at the conflicting decision levelThere are several of them¬x6 ∨ x7 ∨ x8 ∨ ¬x9 ∨ x10

¬x6 ∨ x7 ∨ x8 ∨ ¬x11

¬x6 ∨ x7 ∨ x12

Take the FUIP (first unique implication point):closest to conflict

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 153: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

23/37

Conflict analysis, example (4/5)Conflict graph, computing FUIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: One variable at conflicting decision levelFUIP, closest to conflict: ¬x6 ∨ x7 ∨ x12

Resolve 2 clauses with conflicting variableRepeatedly eliminate latest “green” var., not last oneEliminate a variable? Resolve with propagating clause

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

x12 ∨ ¬x13

x7 ∨ x12 ∨ x14

¬x6 ∨ x12 ∨ x15

x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

x13 ∨ ¬x14 ∨ ¬x15

¬x6 ∨ x12 ∨ x13 ∨ ¬x14

¬x6 ∨ x7 ∨ x12 ∨ x13

x7 ∨ ¬x6 ∨ x12

Page 154: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

23/37

Conflict analysis, example (4/5)Conflict graph, computing FUIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: One variable at conflicting decision levelFUIP, closest to conflict: ¬x6 ∨ x7 ∨ x12

Resolve 2 clauses with conflicting variable

Repeatedly eliminate latest “green” var., not last oneEliminate a variable? Resolve with propagating clause

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

x12 ∨ ¬x13

x7 ∨ x12 ∨ x14

¬x6 ∨ x12 ∨ x15

x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

x13 ∨ ¬x14 ∨ ¬x15

¬x6 ∨ x12 ∨ x13 ∨ ¬x14

¬x6 ∨ x7 ∨ x12 ∨ x13

x7 ∨ ¬x6 ∨ x12

Page 155: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

23/37

Conflict analysis, example (4/5)Conflict graph, computing FUIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: One variable at conflicting decision levelFUIP, closest to conflict: ¬x6 ∨ x7 ∨ x12

Resolve 2 clauses with conflicting variable

Repeatedly eliminate latest “green” var., not last oneEliminate a variable? Resolve with propagating clause

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

x12 ∨ ¬x13

x7 ∨ x12 ∨ x14

¬x6 ∨ x12 ∨ x15

x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

x13 ∨ ¬x14 ∨ ¬x15

¬x6 ∨ x12 ∨ x13 ∨ ¬x14

¬x6 ∨ x7 ∨ x12 ∨ x13

x7 ∨ ¬x6 ∨ x12

Page 156: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

23/37

Conflict analysis, example (4/5)Conflict graph, computing FUIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: One variable at conflicting decision levelFUIP, closest to conflict: ¬x6 ∨ x7 ∨ x12

Resolve 2 clauses with conflicting variableRepeatedly eliminate latest “green” var., not last one

Eliminate a variable? Resolve with propagating clause

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

x12 ∨ ¬x13

x7 ∨ x12 ∨ x14

¬x6 ∨ x12 ∨ x15

x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

x13 ∨ ¬x14 ∨ ¬x15

¬x6 ∨ x12 ∨ x13 ∨ ¬x14

¬x6 ∨ x7 ∨ x12 ∨ x13

x7 ∨ ¬x6 ∨ x12

Page 157: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

23/37

Conflict analysis, example (4/5)Conflict graph, computing FUIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: One variable at conflicting decision levelFUIP, closest to conflict: ¬x6 ∨ x7 ∨ x12

Resolve 2 clauses with conflicting variableRepeatedly eliminate latest “green” var., not last oneEliminate a variable? Resolve with propagating clause

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

x12 ∨ ¬x13

x7 ∨ x12 ∨ x14

¬x6 ∨ x12 ∨ x15

x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

x13 ∨ ¬x14 ∨ ¬x15

¬x6 ∨ x12 ∨ x13 ∨ ¬x14

¬x6 ∨ x7 ∨ x12 ∨ x13

x7 ∨ ¬x6 ∨ x12

Page 158: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

23/37

Conflict analysis, example (4/5)Conflict graph, computing FUIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: One variable at conflicting decision levelFUIP, closest to conflict: ¬x6 ∨ x7 ∨ x12

Resolve 2 clauses with conflicting variableRepeatedly eliminate latest “green” var., not last oneEliminate a variable? Resolve with propagating clause

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

x12 ∨ ¬x13

x7 ∨ x12 ∨ x14

¬x6 ∨ x12 ∨ x15

x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

x13 ∨ ¬x14 ∨ ¬x15

¬x6 ∨ x12 ∨ x13 ∨ ¬x14

¬x6 ∨ x7 ∨ x12 ∨ x13

x7 ∨ ¬x6 ∨ x12

Page 159: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

23/37

Conflict analysis, example (4/5)Conflict graph, computing FUIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: One variable at conflicting decision levelFUIP, closest to conflict: ¬x6 ∨ x7 ∨ x12

Resolve 2 clauses with conflicting variableRepeatedly eliminate latest “green” var., not last oneEliminate a variable? Resolve with propagating clause

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

x12 ∨ ¬x13

x7 ∨ x12 ∨ x14

¬x6 ∨ x12 ∨ x15

x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

x13 ∨ ¬x14 ∨ ¬x15

¬x6 ∨ x12 ∨ x13 ∨ ¬x14

¬x6 ∨ x7 ∨ x12 ∨ x13

x7 ∨ ¬x6 ∨ x12

Page 160: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

23/37

Conflict analysis, example (4/5)Conflict graph, computing FUIP

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

¬x1

x2

¬x3

x4

¬x5

x6

¬x7

¬x8

x9

¬x10

x11

¬x12

¬x13

x14

x15

¬x16

x16

UIP: One variable at conflicting decision levelFUIP, closest to conflict: ¬x6 ∨ x7 ∨ x12

Resolve 2 clauses with conflicting variableRepeatedly eliminate latest “green” var., not last oneEliminate a variable? Resolve with propagating clause

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

x12 ∨ ¬x13

x7 ∨ x12 ∨ x14

¬x6 ∨ x12 ∨ x15

x13 ∨ ¬x14 ∨ ¬x16 ¬x15 ∨ ¬x14 ∨ x16

x13 ∨ ¬x14 ∨ ¬x15

¬x6 ∨ x12 ∨ x13 ∨ ¬x14

¬x6 ∨ x7 ∨ x12 ∨ x13

x7 ∨ ¬x6 ∨ x12

Page 161: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 162: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 163: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 164: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 165: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 166: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 167: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 168: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 169: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 170: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 171: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 172: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 173: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 174: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 175: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 176: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 177: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 178: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 179: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 180: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 181: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 182: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 183: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 184: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

¬x10

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 185: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

x12/C′1

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 186: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

x12/C′1

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 187: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

24/37

Conflict analysis, example (5/5)The whole picture

C1 : x1 ∨ x2

C2 : ¬x2 ∨ ¬x3

C3 : ¬x2 ∨ ¬x4 ∨ ¬x5

C4 : x3 ∨ x5 ∨ x6

C5 : x7 ∨ ¬x6 ∨ ¬x8

C6 : ¬x4 ∨ x8 ∨ x9

C7 : x10 ∨ ¬x9 ∨ x11

C8 : ¬x11 ∨ x8 ∨ ¬x12

C9 : x12 ∨ ¬x13

C10 : x7 ∨ x12 ∨ x14

C11 : ¬x6 ∨ x12 ∨ x15

C12 : x13 ∨ ¬x14 ∨ ¬x16

C13 : ¬x15 ∨ ¬x14 ∨ x16

C′1 : x7 ∨ ¬x6 ∨ x12

I Decide and propagate

I Until conflict

I Analyse (compute FUIP)

I Add clause

I Backtrack to the point where the clause ispropagatingOften more than just one level

I Propagate

I Decide and propagate, until conflict, analyse,. . .

¬x1

x2/C1

¬x3/C2

x4

¬x5/C3

x6/C4

¬x7

¬x8/C5

x9/C6

x12/C′1

x11/C7

¬x12/C8

¬x13/C9

x14/C10

x15/C11

¬x16/C12

x16/C13

Page 188: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

25/37

CDCL: FUIP and more practical aspects

I It turns out that FUIP works best,but this is an experimental observation

I Heuristics for decisions

I Clause removal (and heuristics to evaluate the ones toremove)

I Conflict clause minimization

I Restarting

I Preprocessing

Page 189: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

25/37

CDCL: FUIP and more practical aspects

I It turns out that FUIP works best,but this is an experimental observation

I Heuristics for decisions

I Clause removal (and heuristics to evaluate the ones toremove)

I Conflict clause minimization

I Restarting

I Preprocessing

Page 190: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

25/37

CDCL: FUIP and more practical aspects

I It turns out that FUIP works best,but this is an experimental observation

I Heuristics for decisions

I Clause removal (and heuristics to evaluate the ones toremove)

I Conflict clause minimization

I Restarting

I Preprocessing

Page 191: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

25/37

CDCL: FUIP and more practical aspects

I It turns out that FUIP works best,but this is an experimental observation

I Heuristics for decisions

I Clause removal (and heuristics to evaluate the ones toremove)

I Conflict clause minimization

I Restarting

I Preprocessing

Page 192: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

25/37

CDCL: FUIP and more practical aspects

I It turns out that FUIP works best,but this is an experimental observation

I Heuristics for decisions

I Clause removal (and heuristics to evaluate the ones toremove)

I Conflict clause minimization

I Restarting

I Preprocessing

Page 193: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

25/37

CDCL: FUIP and more practical aspects

I It turns out that FUIP works best,but this is an experimental observation

I Heuristics for decisions

I Clause removal (and heuristics to evaluate the ones toremove)

I Conflict clause minimization

I Restarting

I Preprocessing

Page 194: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

26/37

CDCL: evolution of solvers

2002[Source: Laurent Simon]

Page 195: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

26/37

CDCL: evolution of solvers

2003[Source: Laurent Simon]

Page 196: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

26/37

CDCL: evolution of solvers

2005[Source: Laurent Simon]

Page 197: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

26/37

CDCL: evolution of solvers

2007[Source: Laurent Simon]

Page 198: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

26/37

CDCL: evolution of solvers

2009[Source: Laurent Simon]

Page 199: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

26/37

CDCL: evolution of solvers

2011[Source: Laurent Simon]

Page 200: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

26/37

CDCL: evolution of solvers

2014[Source: Laurent Simon]

Page 201: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

26/37

CDCL: evolution of solvers

2016[Source: Laurent Simon]

Page 202: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

26/37

CDCL: evolution of solvers

Winners[Source: Laurent Simon]

Page 203: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

27/37

Conclusion

I only a brief glimpse on the practical aspects of SAT solving

I many more tricks, hacks, techniques, heuristics, and eventheories

I a good SAT solver: good set of those tricks, mixed in theright amount and the right order, low level optimization

I oldest logic problem, still very active research subject(particularly since mid 90s)

Laurent Simon (Glucose)

We know how to built efficient SAT Solvers but we can hardlyexplain their power

Page 204: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

27/37

Conclusion

I only a brief glimpse on the practical aspects of SAT solving

I many more tricks, hacks, techniques, heuristics, and eventheories

I a good SAT solver: good set of those tricks, mixed in theright amount and the right order, low level optimization

I oldest logic problem, still very active research subject(particularly since mid 90s)

Laurent Simon (Glucose)

We know how to built efficient SAT Solvers but we can hardlyexplain their power

Page 205: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

27/37

Conclusion

I only a brief glimpse on the practical aspects of SAT solving

I many more tricks, hacks, techniques, heuristics, and eventheories

I a good SAT solver: good set of those tricks, mixed in theright amount and the right order, low level optimization

I oldest logic problem, still very active research subject(particularly since mid 90s)

Laurent Simon (Glucose)

We know how to built efficient SAT Solvers but we can hardlyexplain their power

Page 206: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

27/37

Conclusion

I only a brief glimpse on the practical aspects of SAT solving

I many more tricks, hacks, techniques, heuristics, and eventheories

I a good SAT solver: good set of those tricks, mixed in theright amount and the right order, low level optimization

I oldest logic problem, still very active research subject(particularly since mid 90s)

Laurent Simon (Glucose)

We know how to built efficient SAT Solvers but we can hardlyexplain their power

Page 207: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

27/37

Conclusion

I only a brief glimpse on the practical aspects of SAT solving

I many more tricks, hacks, techniques, heuristics, and eventheories

I a good SAT solver: good set of those tricks, mixed in theright amount and the right order, low level optimization

I oldest logic problem, still very active research subject(particularly since mid 90s)

Laurent Simon (Glucose)

We know how to built efficient SAT Solvers but we can hardlyexplain their power

Page 208: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

27/37

Conclusion

I only a brief glimpse on the practical aspects of SAT solving

I many more tricks, hacks, techniques, heuristics, and eventheories

I a good SAT solver: good set of those tricks, mixed in theright amount and the right order, low level optimization

I oldest logic problem, still very active research subject(particularly since mid 90s)

Laurent Simon (Glucose)

We know how to built efficient SAT Solvers but we can hardlyexplain their power

Page 209: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

28/37

SAT Solving: further reading/learning

I Een, Sorensson: MiniSAT 2011

I Marijn Heule:http://www.sc-square.org/CSA/school/lectures.html

I Armin Biere, Marijn Heule, Hans van Maaren and Toby Walsh editors,Handbook on Satisfiability. IOS Press, February 2009.

I SAT/SMT/AR summer schools

Page 210: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

29/37

SAT solvers input format: DIMACS

I input: CNF. File extension .cnf

I Boolean variable: number ≥ 1I literal either positive (represented by positive number)

literal either

negative (represented by negative number)I clause: series of numbers seperated by spaces, terminated by 0I cnf: series of clausesI file starts with p cnf X Y (X variables, Y clauses)I comments start by c

Exemple

p −→ 1, q −→ 2, r −→ 3p cnf 3 4

p ∨ q

−→ 1 2 0

p ∨ r

−→ 1 3 0

¬q ∨ ¬r

−→ -2 -3 0

¬p

−→ -1 0

Page 211: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

29/37

SAT solvers input format: DIMACS

I input: CNF. File extension .cnf

I Boolean variable: number ≥ 1I literal either positive (represented by positive number)

literal either

negative (represented by negative number)I clause: series of numbers seperated by spaces, terminated by 0I cnf: series of clausesI file starts with p cnf X Y (X variables, Y clauses)I comments start by c

Exemple

p −→ 1, q −→ 2, r −→ 3

p cnf 3 4

p ∨ q

−→ 1 2 0

p ∨ r

−→ 1 3 0

¬q ∨ ¬r

−→ -2 -3 0

¬p

−→ -1 0

Page 212: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

29/37

SAT solvers input format: DIMACS

I input: CNF. File extension .cnf

I Boolean variable: number ≥ 1I literal either positive (represented by positive number)

literal either

negative (represented by negative number)I clause: series of numbers seperated by spaces, terminated by 0I cnf: series of clausesI file starts with p cnf X Y (X variables, Y clauses)I comments start by c

Exemple

p −→ 1, q −→ 2, r −→ 3

p cnf 3 4

p ∨ q −→ 1 2 0

p ∨ r −→ 1 3 0

¬q ∨ ¬r −→ -2 -3 0

¬p −→ -1 0

Page 213: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

29/37

SAT solvers input format: DIMACS

I input: CNF. File extension .cnf

I Boolean variable: number ≥ 1I literal either positive (represented by positive number)

literal either

negative (represented by negative number)I clause: series of numbers seperated by spaces, terminated by 0I cnf: series of clausesI file starts with p cnf X Y (X variables, Y clauses)I comments start by c

Exemple

p −→ 1, q −→ 2, r −→ 3p cnf 3 4

p ∨ q −→ 1 2 0

p ∨ r −→ 1 3 0

¬q ∨ ¬r −→ -2 -3 0

¬p −→ -1 0

Page 214: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

30/37

Sudoku (1/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I Number 1 is at line 1, column 1p1,1,1

I Number 3 is at line 2, column 4p2,4,3

I At location (1, 2), there is at most one number¬p1,2,1 ∨ ¬p1,2,2¬p1,2,1 ∨ ¬p1,2,3¬p1,2,1 ∨ ¬p1,2,4¬p1,2,2 ∨ ¬p1,2,3¬p1,2,2 ∨ ¬p1,2,4¬p1,2,3 ∨ ¬p1,2,4

Page 215: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

30/37

Sudoku (1/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I Number 1 is at line 1, column 1

p1,1,1

I Number 3 is at line 2, column 4p2,4,3

I At location (1, 2), there is at most one number¬p1,2,1 ∨ ¬p1,2,2¬p1,2,1 ∨ ¬p1,2,3¬p1,2,1 ∨ ¬p1,2,4¬p1,2,2 ∨ ¬p1,2,3¬p1,2,2 ∨ ¬p1,2,4¬p1,2,3 ∨ ¬p1,2,4

Page 216: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

30/37

Sudoku (1/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I Number 1 is at line 1, column 1p1,1,1

I Number 3 is at line 2, column 4p2,4,3

I At location (1, 2), there is at most one number¬p1,2,1 ∨ ¬p1,2,2¬p1,2,1 ∨ ¬p1,2,3¬p1,2,1 ∨ ¬p1,2,4¬p1,2,2 ∨ ¬p1,2,3¬p1,2,2 ∨ ¬p1,2,4¬p1,2,3 ∨ ¬p1,2,4

Page 217: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

30/37

Sudoku (1/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I Number 1 is at line 1, column 1p1,1,1

I Number 3 is at line 2, column 4

p2,4,3

I At location (1, 2), there is at most one number¬p1,2,1 ∨ ¬p1,2,2¬p1,2,1 ∨ ¬p1,2,3¬p1,2,1 ∨ ¬p1,2,4¬p1,2,2 ∨ ¬p1,2,3¬p1,2,2 ∨ ¬p1,2,4¬p1,2,3 ∨ ¬p1,2,4

Page 218: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

30/37

Sudoku (1/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I Number 1 is at line 1, column 1p1,1,1

I Number 3 is at line 2, column 4p2,4,3

I At location (1, 2), there is at most one number¬p1,2,1 ∨ ¬p1,2,2¬p1,2,1 ∨ ¬p1,2,3¬p1,2,1 ∨ ¬p1,2,4¬p1,2,2 ∨ ¬p1,2,3¬p1,2,2 ∨ ¬p1,2,4¬p1,2,3 ∨ ¬p1,2,4

Page 219: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

30/37

Sudoku (1/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I Number 1 is at line 1, column 1p1,1,1

I Number 3 is at line 2, column 4p2,4,3

I At location (1, 2), there is at most one number

¬p1,2,1 ∨ ¬p1,2,2¬p1,2,1 ∨ ¬p1,2,3¬p1,2,1 ∨ ¬p1,2,4¬p1,2,2 ∨ ¬p1,2,3¬p1,2,2 ∨ ¬p1,2,4¬p1,2,3 ∨ ¬p1,2,4

Page 220: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

30/37

Sudoku (1/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I Number 1 is at line 1, column 1p1,1,1

I Number 3 is at line 2, column 4p2,4,3

I At location (1, 2), there is at most one number¬p1,2,1 ∨ ¬p1,2,2¬p1,2,1 ∨ ¬p1,2,3¬p1,2,1 ∨ ¬p1,2,4¬p1,2,2 ∨ ¬p1,2,3¬p1,2,2 ∨ ¬p1,2,4¬p1,2,3 ∨ ¬p1,2,4

Page 221: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

31/37

Sudoku (2/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I At location (1, 2), there is either 1, 2, 3, or 4 (repeat ∀ location)p1,2,1 ∨ p1,2,2 ∨ p1,2,3 ∨ p1,2,4

I Number 1 should be somewhere at line 2 (repeat ∀ number, line. . . )p2,1,1 ∨ p2,2,1 ∨ p2,3,1 ∨ p2,4,1

I Number 1 should be at most once at line 1¬p1,1,1 ∨ ¬p1,2,1¬p1,1,1 ∨ ¬p1,3,1¬p1,1,1 ∨ ¬p1,4,1¬p1,2,1 ∨ ¬p1,3,1¬p1,2,1 ∨ ¬p1,4,1¬p1,3,1 ∨ ¬p1,4,1

Page 222: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

31/37

Sudoku (2/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I At location (1, 2), there is either 1, 2, 3, or 4 (repeat ∀ location)

p1,2,1 ∨ p1,2,2 ∨ p1,2,3 ∨ p1,2,4

I Number 1 should be somewhere at line 2 (repeat ∀ number, line. . . )p2,1,1 ∨ p2,2,1 ∨ p2,3,1 ∨ p2,4,1

I Number 1 should be at most once at line 1¬p1,1,1 ∨ ¬p1,2,1¬p1,1,1 ∨ ¬p1,3,1¬p1,1,1 ∨ ¬p1,4,1¬p1,2,1 ∨ ¬p1,3,1¬p1,2,1 ∨ ¬p1,4,1¬p1,3,1 ∨ ¬p1,4,1

Page 223: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

31/37

Sudoku (2/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I At location (1, 2), there is either 1, 2, 3, or 4 (repeat ∀ location)p1,2,1 ∨ p1,2,2 ∨ p1,2,3 ∨ p1,2,4

I Number 1 should be somewhere at line 2 (repeat ∀ number, line. . . )p2,1,1 ∨ p2,2,1 ∨ p2,3,1 ∨ p2,4,1

I Number 1 should be at most once at line 1¬p1,1,1 ∨ ¬p1,2,1¬p1,1,1 ∨ ¬p1,3,1¬p1,1,1 ∨ ¬p1,4,1¬p1,2,1 ∨ ¬p1,3,1¬p1,2,1 ∨ ¬p1,4,1¬p1,3,1 ∨ ¬p1,4,1

Page 224: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

31/37

Sudoku (2/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I At location (1, 2), there is either 1, 2, 3, or 4 (repeat ∀ location)p1,2,1 ∨ p1,2,2 ∨ p1,2,3 ∨ p1,2,4

I Number 1 should be somewhere at line 2 (repeat ∀ number, line. . . )

p2,1,1 ∨ p2,2,1 ∨ p2,3,1 ∨ p2,4,1

I Number 1 should be at most once at line 1¬p1,1,1 ∨ ¬p1,2,1¬p1,1,1 ∨ ¬p1,3,1¬p1,1,1 ∨ ¬p1,4,1¬p1,2,1 ∨ ¬p1,3,1¬p1,2,1 ∨ ¬p1,4,1¬p1,3,1 ∨ ¬p1,4,1

Page 225: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

31/37

Sudoku (2/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I At location (1, 2), there is either 1, 2, 3, or 4 (repeat ∀ location)p1,2,1 ∨ p1,2,2 ∨ p1,2,3 ∨ p1,2,4

I Number 1 should be somewhere at line 2 (repeat ∀ number, line. . . )p2,1,1 ∨ p2,2,1 ∨ p2,3,1 ∨ p2,4,1

I Number 1 should be at most once at line 1¬p1,1,1 ∨ ¬p1,2,1¬p1,1,1 ∨ ¬p1,3,1¬p1,1,1 ∨ ¬p1,4,1¬p1,2,1 ∨ ¬p1,3,1¬p1,2,1 ∨ ¬p1,4,1¬p1,3,1 ∨ ¬p1,4,1

Page 226: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

31/37

Sudoku (2/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I At location (1, 2), there is either 1, 2, 3, or 4 (repeat ∀ location)p1,2,1 ∨ p1,2,2 ∨ p1,2,3 ∨ p1,2,4

I Number 1 should be somewhere at line 2 (repeat ∀ number, line. . . )p2,1,1 ∨ p2,2,1 ∨ p2,3,1 ∨ p2,4,1

I Number 1 should be at most once at line 1

¬p1,1,1 ∨ ¬p1,2,1¬p1,1,1 ∨ ¬p1,3,1¬p1,1,1 ∨ ¬p1,4,1¬p1,2,1 ∨ ¬p1,3,1¬p1,2,1 ∨ ¬p1,4,1¬p1,3,1 ∨ ¬p1,4,1

Page 227: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

31/37

Sudoku (2/3)

1

3

2

2

at line i, column j, is number x (pi,j,x)

I At location (1, 2), there is either 1, 2, 3, or 4 (repeat ∀ location)p1,2,1 ∨ p1,2,2 ∨ p1,2,3 ∨ p1,2,4

I Number 1 should be somewhere at line 2 (repeat ∀ number, line. . . )p2,1,1 ∨ p2,2,1 ∨ p2,3,1 ∨ p2,4,1

I Number 1 should be at most once at line 1¬p1,1,1 ∨ ¬p1,2,1¬p1,1,1 ∨ ¬p1,3,1¬p1,1,1 ∨ ¬p1,4,1¬p1,2,1 ∨ ¬p1,3,1¬p1,2,1 ∨ ¬p1,4,1¬p1,3,1 ∨ ¬p1,4,1

Page 228: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

32/37

Sudoku (3/3)

Demo / Practical session

I https://members.loria.fr/PFontaine/sudoku-pack.zip

Page 229: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

33/37

The Wolf, the Goat, and the Cabbage (1/5)

A farmer wants to cross a river in his small boat, with a wolf, agoat and a cabbage. He should make sure:

I to only take one animal or object with him, the boat being sosmall

I not to leave the wolf and the goat alone (or no more goat)

I not to leave the goat and the cabbage alone (or no morecabbage)

Is this possible? With how many crossings?

Page 230: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

34/37

The Wolf, the Goat, and the Cabbage (2/5)

Use logic to encode the problem.

Four variables (that can be true or false):

I f farmer

I w wolf

I g goat

I c cabbage

E.g. f is true if f is on the left side, false if on the right side

I We start with

init =def f ∧ w ∧ g ∧ c

I We want to finish with

fin =def ¬f ∧ ¬w ∧ ¬g ∧ ¬c

Page 231: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

34/37

The Wolf, the Goat, and the Cabbage (2/5)

Use logic to encode the problem.Four variables (that can be true or false):

I f farmer

I w wolf

I g goat

I c cabbage

E.g. f is true if f is on the left side, false if on the right side

I We start with

init =def f ∧ w ∧ g ∧ c

I We want to finish with

fin =def ¬f ∧ ¬w ∧ ¬g ∧ ¬c

Page 232: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

34/37

The Wolf, the Goat, and the Cabbage (2/5)

Use logic to encode the problem.Four variables (that can be true or false):

I f farmer

I w wolf

I g goat

I c cabbage

E.g. f is true if f is on the left side, false if on the right side

I We start with init =def f ∧ w ∧ g ∧ c

I We want to finish with

fin =def ¬f ∧ ¬w ∧ ¬g ∧ ¬c

Page 233: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

34/37

The Wolf, the Goat, and the Cabbage (2/5)

Use logic to encode the problem.Four variables (that can be true or false):

I f farmer

I w wolf

I g goat

I c cabbage

E.g. f is true if f is on the left side, false if on the right side

I We start with init =def f ∧ w ∧ g ∧ c

I We want to finish with fin =def ¬f ∧ ¬w ∧ ¬g ∧ ¬c

Page 234: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

35/37

The Wolf, the Goat, and the Cabbage (3/5)

How to express there is some danger

A state is dangerous if the wolf and the goat (or the goat and thecabbage) are on one bank, and the farmer on the other

Formally:

danger =def

((w ≡ g) ∧ (w ≡ ¬f)

)∨((g ≡ c) ∧ (g ≡ ¬f)

)

Page 235: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

35/37

The Wolf, the Goat, and the Cabbage (3/5)

How to express there is some danger

A state is dangerous if the wolf and the goat (or the goat and thecabbage) are on one bank, and the farmer on the other

Formally:

danger =def

((w ≡ g) ∧ (w ≡ ¬f)

)∨((g ≡ c) ∧ (g ≡ ¬f)

)

Page 236: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

35/37

The Wolf, the Goat, and the Cabbage (3/5)

How to express there is some danger

A state is dangerous if the wolf and the goat (or the goat and thecabbage) are on one bank, and the farmer on the other

Formally:

danger =def

((w ≡ g) ∧ (w ≡ ¬f)

)∨((g ≡ c) ∧ (g ≡ ¬f)

)

Page 237: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

36/37

The Wolf, the Goat, and the Cabbage (4/5)

To find out if it is possible to find a solution with n crossing,we will use n + 1 copies of the variables fi, wi, gi, ci.

First, let’s write the formula corresponding the i-th crossing of thefarmer.

I The farmer is crossing so fi+1 and ¬fi should be different

I Only one animal/object is changing bank; two (or more) variablesamong w, g, c should stay the same

crossi =def

(fi+1 ≡ ¬fi

)

∧(

((wi+1 ≡ wi) ∧ (gi+1 ≡ gi)

)

((wi+1 ≡ wi) ∧ (ci+1 ≡ ci)

)

((gi+1 ≡ gi) ∧ (ci+1 ≡ ci)

)

)

Page 238: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

36/37

The Wolf, the Goat, and the Cabbage (4/5)

To find out if it is possible to find a solution with n crossing,we will use n + 1 copies of the variables fi, wi, gi, ci.

First, let’s write the formula corresponding the i-th crossing of thefarmer.

I The farmer is crossing so fi+1 and ¬fi should be different

I Only one animal/object is changing bank; two (or more) variablesamong w, g, c should stay the same

crossi =def

(fi+1 ≡ ¬fi

)

∧(

((wi+1 ≡ wi) ∧ (gi+1 ≡ gi)

)

((wi+1 ≡ wi) ∧ (ci+1 ≡ ci)

)

((gi+1 ≡ gi) ∧ (ci+1 ≡ ci)

)

)

Page 239: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

36/37

The Wolf, the Goat, and the Cabbage (4/5)

To find out if it is possible to find a solution with n crossing,we will use n + 1 copies of the variables fi, wi, gi, ci.

First, let’s write the formula corresponding the i-th crossing of thefarmer.

I The farmer is crossing so fi+1 and ¬fi should be different

I Only one animal/object is changing bank; two (or more) variablesamong w, g, c should stay the same

crossi =def

(fi+1 ≡ ¬fi

)∧(

((wi+1 ≡ wi) ∧ (gi+1 ≡ gi)

)

((wi+1 ≡ wi) ∧ (ci+1 ≡ ci)

)

((gi+1 ≡ gi) ∧ (ci+1 ≡ ci)

)

)

Page 240: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

36/37

The Wolf, the Goat, and the Cabbage (4/5)

To find out if it is possible to find a solution with n crossing,we will use n + 1 copies of the variables fi, wi, gi, ci.

First, let’s write the formula corresponding the i-th crossing of thefarmer.

I The farmer is crossing so fi+1 and ¬fi should be different

I Only one animal/object is changing bank; two (or more) variablesamong w, g, c should stay the same

crossi =def

(fi+1 ≡ ¬fi

)∧(

((wi+1 ≡ wi) ∧ (gi+1 ≡ gi)

)

((wi+1 ≡ wi) ∧ (ci+1 ≡ ci)

)

((gi+1 ≡ gi) ∧ (ci+1 ≡ ci)

)

)

Page 241: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

36/37

The Wolf, the Goat, and the Cabbage (4/5)

To find out if it is possible to find a solution with n crossing,we will use n + 1 copies of the variables fi, wi, gi, ci.

First, let’s write the formula corresponding the i-th crossing of thefarmer.

I The farmer is crossing so fi+1 and ¬fi should be different

I Only one animal/object is changing bank; two (or more) variablesamong w, g, c should stay the same

crossi =def

(fi+1 ≡ ¬fi

)∧( (

(wi+1 ≡ wi) ∧ (gi+1 ≡ gi))

∨((wi+1 ≡ wi) ∧ (ci+1 ≡ ci)

)∨

((gi+1 ≡ gi) ∧ (ci+1 ≡ ci)

))

Page 242: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

37/37

The Wolf, the Goat, and the Cabbage (5/5)

We want to write a formula to encode solutions in n crossings

I Starting and ending state have been defined

I Two successive states should correspond to one crossing

I No state should be dangerous

init1

finn+1

cross1 ∧ cross2 ∧ . . . ∧ crossn

¬danger1 ∧ ¬danger2 ∧ . . . ∧ ¬dangern+1

A SAT solver can find out that there is no solution in 4 traversals, but

that 6 traversals are enough.

Page 243: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

37/37

The Wolf, the Goat, and the Cabbage (5/5)

We want to write a formula to encode solutions in n crossings

I Starting and ending state have been defined

I Two successive states should correspond to one crossing

I No state should be dangerous

init1 ∧ finn+1

cross1 ∧ cross2 ∧ . . . ∧ crossn

¬danger1 ∧ ¬danger2 ∧ . . . ∧ ¬dangern+1

A SAT solver can find out that there is no solution in 4 traversals, but

that 6 traversals are enough.

Page 244: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

37/37

The Wolf, the Goat, and the Cabbage (5/5)

We want to write a formula to encode solutions in n crossings

I Starting and ending state have been defined

I Two successive states should correspond to one crossing

I No state should be dangerous

init1 ∧ finn+1

∧ cross1 ∧ cross2 ∧ . . . ∧ crossn∧

¬danger1 ∧ ¬danger2 ∧ . . . ∧ ¬dangern+1

A SAT solver can find out that there is no solution in 4 traversals, but

that 6 traversals are enough.

Page 245: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

37/37

The Wolf, the Goat, and the Cabbage (5/5)

We want to write a formula to encode solutions in n crossings

I Starting and ending state have been defined

I Two successive states should correspond to one crossing

I No state should be dangerous

init1 ∧ finn+1

∧ cross1 ∧ cross2 ∧ . . . ∧ crossn∧ ¬danger1 ∧ ¬danger2 ∧ . . . ∧ ¬dangern+1

A SAT solver can find out that there is no solution in 4 traversals, but

that 6 traversals are enough.

Page 246: Boolean Solving - LORIA · prince instructs you either to invite Peru or to exclude Qatar . The queen asks you to invite either Qatar or Ro-mania or both. The king, in a spiteful

37/37

The Wolf, the Goat, and the Cabbage (5/5)

We want to write a formula to encode solutions in n crossings

I Starting and ending state have been defined

I Two successive states should correspond to one crossing

I No state should be dangerous

init1 ∧ finn+1

∧ cross1 ∧ cross2 ∧ . . . ∧ crossn∧ ¬danger1 ∧ ¬danger2 ∧ . . . ∧ ¬dangern+1

A SAT solver can find out that there is no solution in 4 traversals, but

that 6 traversals are enough.