Different choice of branching variables

set of clauses:

{ ¬x1 ∨ x3 ∨ x4, ¬x2 ∨ x6 ∨ x4, ¬x2 ∨ ¬x6 ∨ ¬x3, ¬x4 ∨ ¬x2, x2 ∨ ¬x3 ∨ ¬x1, x2 ∨ x6 ∨ x3, x2 ∨ ¬x6 ∨ ¬x4, x1 ∨ x5, x1 ∨ x6, ¬x6 ∨ x3 ∨ ¬x5, x1 ∨ ¬x3 ∨ ¬x5 }


First branching

branch on x3


First recursive call

recursive call with x3=true


Propagate x3=true

{ ¬x1 ∨ x3 ∨ x4, ¬x2 ∨ x6 ∨ x4, ¬x2 ∨ ¬x6¬x3, ¬x4 ∨ ¬x2, x2¬x3 ∨ ¬x1, x2 ∨ x6 ∨ x3, x2 ∨ ¬x6 ∨ ¬x4, x1 ∨ x5, x1 ∨ x6, ¬x6 ∨ x3 ∨ ¬x5, x1¬x3 ∨ ¬x5 }
=
{ ¬x2 ∨ x6 ∨ x4, ¬x2 ∨ ¬x6, ¬x4 ∨ ¬x2, x2 ∨ ¬x1, x2 ∨ ¬x6 ∨ ¬x4, x1 ∨ x5, x1 ∨ x6, x1 ∨ ¬x5 }

no contradiction, choose a branching variable


Branch on x4


Propagate x4=true

{ ¬x2 ∨ x6 ∨ x4, ¬x2 ∨ ¬x6, ¬x4 ∨ ¬x2, x2 ∨ ¬x1, x2 ∨ ¬x6¬x4, x1 ∨ x5, x1 ∨ x6, x1 ∨ ¬x5 }
=
{ ¬x2 ∨ ¬x6, ¬x2, x2 ∨ ¬x1, x2 ∨ ¬x6, x1 ∨ x5, x1 ∨ x6, x1 ∨ ¬x5 }
=   (with ¬x2)
{ ¬x2 ∨ ¬x6, ¬x2, x2 ∨ ¬x1, x2 ∨ ¬x6, x1 ∨ x5, x1 ∨ x6, x1 ∨ ¬x5 }
=
{ ¬x1, ¬x6, x1 ∨ x5, x1 ∨ x6, x1 ∨ ¬x5 }
=
contradiction: ¬x1, ¬x6, x1 ∨ x6


Contradiction generated


Backtrack, propagate x4=false

{ ¬x2 ∨ x6x4, ¬x2 ∨ ¬x6, ¬x4 ∨ ¬x2, x2 ∨ ¬x1, x2 ∨ ¬x6 ∨ ¬x4, x1 ∨ x5, x1 ∨ x6, x1 ∨ ¬x5 }
=
{ ¬x2 ∨ x6, ¬x2 ∨ ¬x6, x2 ∨ ¬x1, x1 ∨ x5, x1 ∨ x6, x1 ∨ ¬x5 }

no contradiction, no unit clause


Choice of another branching variable


Set x2=true

{ ¬x2 ∨ x6, ¬x2 ∨ ¬x6, x2 ∨ ¬x1, x1 ∨ x5, x1 ∨ x6, x1 ∨ ¬x5 }
=
{ x6, ¬x6, x1 ∨ x5, x1 ∨ x6, x1 ∨ ¬x5 }

contradiction


Backtrack, propagate x2=false

clauses-3T-4F-2F.txt

{ ¬x2 ∨ x6, ¬x2 ∨ ¬x6, x2 ∨ ¬x1, x1 ∨ x5, x1 ∨ x6, x1 ∨ ¬x5 }
=
{ ¬x1, x1 ∨ x5, x1 ∨ x6, x1 ∨ ¬x5 }

contradictin: from ¬x1 both x5 and ¬x5 follow


Backtrack, propagate x3=false

{ ¬x1x3 ∨ x4, ¬x2 ∨ x6 ∨ x4, ¬x2 ∨ ¬x6 ∨ ¬x3, ¬x4 ∨ ¬x2, x2 ∨ ¬x3 ∨ ¬x1, x2 ∨ x6x3, x2 ∨ ¬x6 ∨ ¬x4, x1 ∨ x5, x1 ∨ x6, ¬x6x3 ∨ ¬x5, x1 ∨ ¬x3 ∨ ¬x5 }
=
{ ¬x1 ∨ x4, ¬x2 ∨ x6 ∨ x4, ¬x4 ∨ ¬x2, x2 ∨ x6, x2 ∨ ¬x6 ∨ ¬x4, x1 ∨ x5, x1 ∨ x6, ¬x6 ∨ ¬x5 }

no contradiction, no unit clause


Choose another branching variable


Set x1=true, propagate

{ ¬x1 ∨ x4, ¬x2 ∨ x6 ∨ x4, ¬x4 ∨ ¬x2, x2 ∨ x6, x2 ∨ ¬x6 ∨ ¬x4, x1 ∨ x5, x1 ∨ x6, ¬x6 ∨ ¬x5 }
=
{ x4, ¬x2 ∨ x6 ∨ x4, ¬x4 ∨ ¬x2, x2 ∨ x6, x2 ∨ ¬x6 ∨ ¬x4, ¬x6 ∨ ¬x5 }
=   (with x4=true)
{ x4, ¬x2 ∨ x6 ∨ x4, ¬x4 ∨ ¬x2, x2 ∨ x6, x2 ∨ ¬x6¬x4, ¬x6 ∨ ¬x5 }
=
{ ¬x2, x2 ∨ x6, x2 ∨ ¬x6, ¬x6 ∨ ¬x5 }

contradiction: ¬x2 generates both x6 and ¬x6


Backtrack, propagate x1=false

{ ¬x1 ∨ x4, ¬x2 ∨ x6 ∨ x4, ¬x4 ∨ ¬x2, x2 ∨ x6, x2 ∨ ¬x6 ∨ ¬x4, x1 ∨ x5, x1 ∨ x6, ¬x6 ∨ ¬x5 }
=
{ ¬x2 ∨ x6 ∨ x4, ¬x4 ∨ ¬x2, x2 ∨ x6, x2 ∨ ¬x6 ∨ ¬x4, x5, x6, ¬x6 ∨ ¬x5 }

contradiction: x5, x6, ¬x6 ∨ ¬x5


Backtrack

set is unsatisfiable