History of SAT Modern Solvers Main Components Conclusion / Challenges R EGULAR INCREASING OF PERFORMANCES ON INDUSTRIAL PROBLEMS Results of the SAT competition/race winners on the SAT 2009 application benchmarks, 20mn timeout 1200 Limmat (2002) Zchaff (2002) Berkmin (2002) Forklift (2003) Siege (2003) 1000 Zchaff (2004) SatELite (2005) Minisat 2 (2006) Picosat (2007) Rsat (2007) Minisat 2.1 (2008) 800 Precosat (2009) Glucose (2009) CPU Time (in seconds) Clasp (2009) Cryptominisat (2010) Lingeling (2010) Minisat 2.2 (2010) 600 400 200 0 0 20 40 60 80 100 120 140 160 180 Number of problems solved 7/66
History of SAT Modern Solvers Main Components Conclusion / Challenges S IGNIFICANT PRACTICAL AND THEORETICAL PROGRESSES Model Checking, Static Code Analysis, Planning, Constraints, Biology, ... Logic theorems (above NP) M OSHE V ARDI « Major progresses in logic may come from SAT » E DMUND C LARKE « The practical solving of SAT is a key technology for computer science in the 21st century » 8/66
History of SAT Modern Solvers Main Components Conclusion / Challenges S IGNIFICANT PRACTICAL AND THEORETICAL PROGRESSES Model Checking, Static Code Analysis, Planning, Constraints, Biology, ... Logic theorems (above NP) M OSHE V ARDI « Major progresses in logic may come from SAT » E DMUND C LARKE « The practical solving of SAT is a key technology for computer science in the 21st century » 8/66
History of SAT Modern Solvers Main Components Conclusion / Challenges S IGNIFICANT PRACTICAL AND THEORETICAL PROGRESSES Model Checking, Static Code Analysis, Planning, Constraints, Biology, ... Logic theorems (above NP) M OSHE V ARDI « Major progresses in logic may come from SAT » E DMUND C LARKE « The practical solving of SAT is a key technology for computer science in the 21st century » 8/66
History of SAT Modern Solvers Main Components Conclusion / Challenges S IGNIFICANT PRACTICAL AND THEORETICAL PROGRESSES Model Checking, Static Code Analysis, Planning, Constraints, Biology, ... Logic theorems (above NP) M OSHE V ARDI « Major progresses in logic may come from SAT » E DMUND C LARKE « The practical solving of SAT is a key technology for computer science in the 21st century » 8/66
History of SAT Modern Solvers Main Components Conclusion / Challenges W HERE CAN WE FIND SAT TECHNOLOGY TODAY ? Formal methods : Hardware model checking ; Software model checking ; Termination analysis of term-rewrite systems ; Test pattern generation (testing of software & hardware) ; etc. Artificial intelligence : Planning ; Knowledge representation ; Games (n-queens, sudoku, social golpher’s, etc.) Bioinformatics : Haplotype inference ; Pedigree checking ; Analysis of Genetic Regulatory Networks ; etc. Design automation : Equivalence checking ; Delay computation ; Fault diagnosis ; Noise analysis ; etc. Security : Cryptanalysis ; Inversion attacks on hash functions ; etc. 9/66
History of SAT Modern Solvers Main Components Conclusion / Challenges W HERE CAN WE FIND SAT TECHNOLOGY TODAY ? II Computationally hard problems : Graph coloring ; Traveling salesperson ; etc. Mathematical problems : van der Waerden numbers ; Quasigroup open problems ; etc. Core engine for other solvers : 0-1 ILP/Pseudo Boolean ; QBF ; #SAT ; SMT ; MAXSAT ; ... Integrated into theorem provers : HOL ; Isabelle ; ... Integrated into widely used software : Suse 10.1 dependency manager based on a custom SAT solver. Eclipse provisioning system based on a Pseudo Boolean solver. 10/66
History of SAT Modern Solvers Main Components Conclusion / Challenges T ODAY ’ S I TINARY 1 A H ISTORY OF 50 YEARS OF SAT R ESEARCH 2 M ODERN SAT S OLVERS : CDCL 3 M AIN C OMPONENTS AND F EATURES 4 C ONCLUDING ON C HALLENGES 11/66
History of SAT Modern Solvers Main Components Conclusion / Challenges T ODAY ’ S I TINARY 1 A H ISTORY OF 50 YEARS OF SAT R ESEARCH The youth of SAT DPLL 2 M ODERN SAT S OLVERS : CDCL 3 M AIN C OMPONENTS AND F EATURES 4 C ONCLUDING ON C HALLENGES 12/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS AND P UTNAM 1960 [DP60] R EASONING ON BOTH CHOICES We have f ≡ ( x ∧ f x ) ∨ ( ¬ x ∧ f ¬ x ) (Shannon’s Decomposition) Note that x has disapeared in f x and f ¬ x DP60 I DEA Eliminate all variables, one after the other DP( Σ ) In : Σ a formula f under CNF Out : ∅ if a model exists, {⊥} otherwise begin Take care of all subsumed clauses of Σ ; if Σ has no more variables then return Σ ; Let x be a variable of Σ ; return DP( Σ x ∨ Σ ¬ x ); end 13/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS AND P UTNAM 1960 [DP60] R EASONING ON BOTH CHOICES We have f ≡ ( x ∧ f x ) ∨ ( ¬ x ∧ f ¬ x ) (Shannon’s Decomposition) Note that x has disapeared in f x and f ¬ x DP60 I DEA Eliminate all variables, one after the other DP( Σ ) In : Σ a formula f under CNF Out : ∅ if a model exists, {⊥} otherwise begin Take care of all subsumed clauses of Σ ; if Σ has no more variables then return Σ ; Let x be a variable of Σ ; return DP( Σ x ∨ Σ ¬ x ); end 13/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS AND P UTNAM 1960 [DP60] R EASONING ON BOTH CHOICES We have f ≡ ( x ∧ f x ) ∨ ( ¬ x ∧ f ¬ x ) (Shannon’s Decomposition) Note that x has disapeared in f x and f ¬ x DP60 I DEA Eliminate all variables, one after the other DP( Σ ) In : Σ a formula f under CNF Out : ∅ if a model exists, {⊥} otherwise begin Take care of all subsumed clauses of Σ ; if Σ has no more variables then return Σ ; Let x be a variable of Σ ; return DP( Σ x ∨ Σ ¬ x ); end 13/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS AND P UTNAM 1960 [DP60] R EASONING ON BOTH CHOICES DP( Σ ) In : Σ a formula f under CNF Out : ∅ if a model exists, {⊥} otherwise begin Take care of all subsumed clauses of Σ ; if Σ has no more variables then return Σ ; Let x be a variable of Σ ; return DP( Σ x ∨ Σ ¬ x ); end Calculus of Σ x ∨ Σ ¬ x : Forget x in Σ . Performs all possible resolutions on x T HE R ESOLUTION R ULE (C UT ) [G ENTZEN 1934, R OBINSON 1965] Let c 1 = ( x ∨ a 1 ∨ . . . a n ) and c 2 = ( ¬ x ∨ b 1 ∨ . . . b m ) c = ( a 1 ∨ . . . a n ∨ b 1 ∨ . . . b m ) is obtained by resolution on x between c 1 and c 2 . 100% reasoning procedure 13/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS AND P UTNAM 1960 [DP60] R EASONING ON BOTH CHOICES DP( Σ ) In : Σ a formula f under CNF Out : ∅ if a model exists, {⊥} otherwise begin Take care of all subsumed clauses of Σ ; if Σ has no more variables then return Σ ; Let x be a variable of Σ ; return DP( Σ x ∨ Σ ¬ x ); end Calculus of Σ x ∨ Σ ¬ x : Forget x in Σ . Performs all possible resolutions on x T HE R ESOLUTION R ULE (C UT ) [G ENTZEN 1934, R OBINSON 1965] Let c 1 = ( x ∨ a 1 ∨ . . . a n ) and c 2 = ( ¬ x ∨ b 1 ∨ . . . b m ) c = ( a 1 ∨ . . . a n ∨ b 1 ∨ . . . b m ) is obtained by resolution on x between c 1 and c 2 . 100% reasoning procedure 13/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS AND P UTNAM 1960 [DP60] R EASONING ON BOTH CHOICES DP( Σ ) In : Σ a formula f under CNF Out : ∅ if a model exists, {⊥} otherwise begin Take care of all subsumed clauses of Σ ; if Σ has no more variables then return Σ ; Let x be a variable of Σ ; return DP( Σ x ∨ Σ ¬ x ); end Calculus of Σ x ∨ Σ ¬ x : Forget x in Σ . Performs all possible resolutions on x T HE R ESOLUTION R ULE (C UT ) [G ENTZEN 1934, R OBINSON 1965] Let c 1 = ( x ∨ a 1 ∨ . . . a n ) and c 2 = ( ¬ x ∨ b 1 ∨ . . . b m ) c = ( a 1 ∨ . . . a n ∨ b 1 ∨ . . . b m ) is obtained by resolution on x between c 1 and c 2 . 100% reasoning procedure 13/66
History of SAT Modern Solvers Main Components Conclusion / Challenges G ETTING AN INTUITION ON RANDOM INSTANCES T OO MANY PRODUCED CLAUSES (A). 3 � CNF with 130 Clauses, 30 Variables; 1000 trials 2500 Max. Std. Dev. Mean Number of Clauses 2000 Min. 1500 1000 500 0 1 6 11 16 21 26 Cut Number (| � |=30) (B). 3 � CNF with 280 Clauses, 30 Variables; 1000 trials 10000 Max. Std. Dev. Mean Number of Clauses 8000 Min. 6000 4000 2000 0 1 6 11 16 21 26 Cut Number (| � |=30) 14/66
History of SAT Modern Solvers Main Components Conclusion / Challenges B UT . . . WE PROGRESSED ! ... (...) ... (...) ... (...) ... (...) Ordered Resolution (DP60) Truth Tables 15/66
History of SAT Modern Solvers Main Components Conclusion / Challenges B UT . . . WE PROGRESSED ! ... (...) ... (...) ... (...) ... (...) Ordered Resolution (DP60) Truth Tables 15/66
History of SAT Modern Solvers Main Components Conclusion / Challenges B UT . . . WE PROGRESSED ! ... (...) ... (...) ... (...) ... (...) Ordered Resolution (DP60) Truth Tables 15/66
History of SAT Modern Solvers Main Components Conclusion / Challenges V ARIABLE ELIMINATION – A N E XAMPLE ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( x 2 ∨ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( ¬ x 2 ∨ ¬ x 3 ) ∧ ( x 2 ∨ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( x 3 ∨ ¬ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � x 3 � ⊤ Formula is SAT 16/66
History of SAT Modern Solvers Main Components Conclusion / Challenges V ARIABLE ELIMINATION – A N E XAMPLE ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( x 2 ∨ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( ¬ x 2 ∨ ¬ x 3 ) ∧ ( x 2 ∨ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( x 3 ∨ ¬ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � x 3 � ⊤ Formula is SAT 16/66
History of SAT Modern Solvers Main Components Conclusion / Challenges V ARIABLE ELIMINATION – A N E XAMPLE ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( x 2 ∨ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( ¬ x 2 ∨ ¬ x 3 ) ∧ ( x 2 ∨ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( x 3 ∨ ¬ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � x 3 � ⊤ Formula is SAT 16/66
History of SAT Modern Solvers Main Components Conclusion / Challenges V ARIABLE ELIMINATION – A N E XAMPLE ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( x 2 ∨ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( ¬ x 2 ∨ ¬ x 3 ) ∧ ( x 2 ∨ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( x 3 ∨ ¬ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � x 3 � ⊤ Formula is SAT 16/66
History of SAT Modern Solvers Main Components Conclusion / Challenges V ARIABLE ELIMINATION – A N E XAMPLE ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( x 2 ∨ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( ¬ x 2 ∨ ¬ x 3 ) ∧ ( x 2 ∨ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( x 3 ∨ ¬ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � x 3 � ⊤ Formula is SAT 16/66
History of SAT Modern Solvers Main Components Conclusion / Challenges V ARIABLE ELIMINATION – A N E XAMPLE ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( x 2 ∨ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( ¬ x 2 ∨ ¬ x 3 ) ∧ ( x 2 ∨ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( x 3 ∨ ¬ x 3 ) ∧ ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � ( x 3 ∨ x 4 ) ∧ ( x 3 ∨ ¬ x 4 ) � x 3 � ⊤ Formula is SAT 16/66
History of SAT Modern Solvers Main Components Conclusion / Challenges T HE D AVIS AND P UTNAM PROCEDURE : THE REFINEMENTS Add specific cases to order variable elimination steps Iteratively apply the following steps : Apply the pure literal rule and unit propagation Select variable x Apply resolution between every pair of clauses of the form ( x ∨ α ) and ( ¬ x ∨ β ) Remove all clauses containing either x or ¬ x Terminate when either the empty clause or the empty formula is derived 17/66
History of SAT Modern Solvers Main Components Conclusion / Challenges P URE L ITERALS A literal is pure if only occurs as a positive literal or as a negative literal in a CNF formula Example : ϕ = ( ¬ x 1 ∨ x 2 ) ∧ ( x 3 ∨ ¬ x 2 ) ∧ ( x 4 ∨ ¬ x 5 ) ∧ ( x 5 ∨ ¬ x 4 ) ¬ x 1 and x 3 are pure literals Pure literal rule : eliminate first pure literals because no resolvant are produced ! applying a variable elimination step on a pure literal strictly reduces the number of clauses ! Preserve satisfiability, not logical equivalency ! 18/66
History of SAT Modern Solvers Main Components Conclusion / Challenges U NIT P ROPAGATION Specific case of resolution : only shorten clauses. x 1 ∨ x 2 ∨ x 3 ¬ x 2 unit resolution: x 1 ∨ x 3 Preserve logical equivalency : ( x 1 ∨ x 2 ∨ x 3 ) ∧ ¬ x 2 ≡ ( x 1 ∨ x 3 ) ∧ ¬ x 2 Since clauses are shortened, new unit clauses may appear. Empty clauses also ! Unit propagation : apply unit resolution while new unit clauses are produced. 19/66
History of SAT Modern Solvers Main Components Conclusion / Challenges DP60 : T HE LIMITS The approach runs easily out of memory. Even recent attempts using a ROBDD representation [Simon and Chatalic 2000] does not scale well. The solution : using backtrack search ! 20/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS AND P UTNAM 1960 [DP60] T OO MUCH REASONING DP( Σ ) In : Σ a formula f under CNF Out : ∅ if a model exists, {⊥} otherwise begin Take care of all subsumed clauses of Σ ; if Σ = ∅ then return true; if Σ = {⊥} then return false; Let x be a variable of Σ ; return DP( Σ x ∨ Σ ¬ x ); end P ROBLEMS each step of rewritting Σ ′ = Σ x ∨ Σ ¬ x in CNF is quadratic memory blow-up too powerfull for SAT (but usefull for Prime Implicates / Model Counting / ...) Solution : Change the ∨ into an alternative (OR). 21/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS AND P UTNAM 1960 [DP60] T OO MUCH REASONING DP( Σ ) In : Σ a formula f under CNF Out : ∅ if a model exists, {⊥} otherwise begin Take care of all subsumed clauses of Σ ; if Σ = ∅ then return true; if Σ = {⊥} then return false; Let x be a variable of Σ ; return DP( Σ x ∨ Σ ¬ x ); end P ROBLEMS each step of rewritting Σ ′ = Σ x ∨ Σ ¬ x in CNF is quadratic memory blow-up too powerfull for SAT (but usefull for Prime Implicates / Model Counting / ...) Solution : Change the ∨ into an alternative (OR). 21/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS AND P UTNAM 1960 [DP60] T OO MUCH REASONING DP( Σ ) In : Σ a formula f under CNF Out : ∅ if a model exists, {⊥} otherwise begin Take care of all subsumed clauses of Σ ; if Σ = ∅ then return true; if Σ = {⊥} then return false; Let x be a variable of Σ ; return DP( Σ x ) OR DP( Σ ¬ x ) ; end P ROBLEMS each step of rewritting Σ ′ = Σ x ∨ Σ ¬ x in CNF is quadratic memory blow-up too powerfull for SAT (but usefull for Prime Implicates / Model Counting / ...) Solution : Change the ∨ into an alternative (OR). 21/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS AND P UTNAM 1960 [DP60] T OO MUCH REASONING DP( Σ ) In : Σ a formula f under CNF Out : ∅ if a model exists, {⊥} otherwise begin Take care of all subsumed clauses of Σ ; if Σ = ∅ then return true; if Σ = {⊥} then return false; Let l be a literal of Σ ; return DP( Σ l ) OR DP( Σ ¬ l ) ; end P ROBLEMS each step of rewritting Σ ′ = Σ x ∨ Σ ¬ x in CNF is quadratic memory blow-up too powerfull for SAT (but usefull for Prime Implicates / Model Counting / ...) Solution : Change the ∨ into an alternative (OR). 21/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS , L OGEMANN ET L OVELAND , 1962 [DPLL62] E SSAYER LES CHOIX POSSIBLES , SYSTÉMATIQUEMENT DPLL( Σ , ( I ) ) In : Σ (CNF), I (partial interpretation) Out : SAT / UNSAT begin if Σ |I is empty then return SAT ; if Σ |I contains ⊥ then return UNSAT ; if Σ |I contains a pure literal l then return DPLL( Σ , I . l ); if Σ |I contains a unit clause l then return DPLL( Σ , I . l ); Let l a literal in Σ |I ; if DPLL( Σ , I . l) returned SAT then return SAT ; return DPLL( Σ , I . ¬ l ) end Note : Σ |I if the formula simplified by I 22/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS , L OGEMANN ET L OVELAND , 1962 [DPLL62] E SSAYER LES CHOIX POSSIBLES , SYSTÉMATIQUEMENT DPLL( Σ , ( I ) ) In : Σ (CNF), I (partial interpretation) Out : SAT / UNSAT begin if Σ |I is empty then return SAT ; if Σ |I contains ⊥ then return UNSAT ; if Σ |I contains a pure literal l then return DPLL( Σ , I . l ); if Σ |I contains a unit clause l then return DPLL( Σ , I . l ); Let l a literal in Σ |I ; if DPLL( Σ , I . l) returned SAT then return SAT ; return DPLL( Σ , I . ¬ l ) end Note : Σ |I if the formula simplified by I 22/66
History of SAT Modern Solvers Main Components Conclusion / Challenges D AVIS , L OGEMANN ET L OVELAND , 1962 [DPLL62] E SSAYER LES CHOIX POSSIBLES , SYSTÉMATIQUEMENT DPLL( Σ , ( I ) ) In : Σ (CNF), I (partial interpretation) Out : SAT / UNSAT begin if Σ |I is empty then return SAT ; if Σ |I contains ⊥ then return UNSAT ; if Σ |I contains a pure literal l then return DPLL( Σ , I . l ); if Σ |I contains a unit clause l then return DPLL( Σ , I . l ); Let l a literal in Σ |I ; if DPLL( Σ , I . l) returned SAT then return SAT ; return DPLL( Σ , I . ¬ l ) end Note : Σ |I if the formula simplified by I 22/66
History of SAT Modern Solvers Main Components Conclusion / Challenges W E PROGRESS ... AGAIN ! ... (...) ... (...) ... (...) Tree-like Resolution (DPLL62) Ordered Resolution (DP60) Truth tables 23/66
History of SAT Modern Solvers Main Components Conclusion / Challenges W E PROGRESS ... AGAIN ! ... (...) ... (...) ... (...) Tree-like Resolution (DPLL62) Ordered Resolution (DP60) Truth tables 23/66
History of SAT Modern Solvers Main Components Conclusion / Challenges W E PROGRESS ... AGAIN ! ... (...) ... (...) ... (...) Tree-like Resolution (DPLL62) Ordered Resolution (DP60) Truth tables 23/66
History of SAT Modern Solvers Main Components Conclusion / Challenges P URE L ITERALS IN BACKTRACK SEARCH Pure literal rule : Clauses containing pure literals can be removed from the formula (i.e. just satisfy those pure literals) Example : ϕ = ( ¬ x 1 ∨ x 2 ) ∧ ( x 3 ∨ ¬ x 2 ) ∧ ( x 4 ∨ ¬ x 5 ) ∧ ( x 5 ∨ ¬ x 4 ) The resulting formula becomes : ϕ ¬ x 1 , x 3 = ( x 4 ∨ ¬ x 5 ) ∧ ( x 5 ∨ ¬ x 4 ) if l is a pure literal in Σ , then Σ l ⊂ Σ Preserve satisfiability, not logical equivalency ! 24/66
History of SAT Modern Solvers Main Components Conclusion / Challenges U NIT P ROPAGATION IN BACKTRACK SEARCH Unit clause rule in backtrack search : Given a unit clause, its only unassigned literal must be assigned value True for the clause to be satisfied Example : for unit clause ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) , x 3 must be assigned value False Unit propagation Iterated application of the unit clause rule ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 4 ) 25/66
History of SAT Modern Solvers Main Components Conclusion / Challenges U NIT P ROPAGATION IN BACKTRACK SEARCH Unit clause rule in backtrack search : Given a unit clause, its only unassigned literal must be assigned value True for the clause to be satisfied Example : for unit clause ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) , x 3 must be assigned value False Unit propagation Iterated application of the unit clause rule ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 4 ) 25/66
History of SAT Modern Solvers Main Components Conclusion / Challenges U NIT P ROPAGATION IN BACKTRACK SEARCH Unit clause rule in backtrack search : Given a unit clause, its only unassigned literal must be assigned value True for the clause to be satisfied Example : for unit clause ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) , x 3 must be assigned value False Unit propagation Iterated application of the unit clause rule ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 4 ) 25/66
History of SAT Modern Solvers Main Components Conclusion / Challenges U NIT P ROPAGATION IN BACKTRACK SEARCH Unit clause rule in backtrack search : Given a unit clause, its only unassigned literal must be assigned value True for the clause to be satisfied Example : for unit clause ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) , x 3 must be assigned value False Unit propagation Iterated application of the unit clause rule ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 4 ) 25/66
History of SAT Modern Solvers Main Components Conclusion / Challenges U NIT P ROPAGATION IN BACKTRACK SEARCH Unit clause rule in backtrack search : Given a unit clause, its only unassigned literal must be assigned value True for the clause to be satisfied Example : for unit clause ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) , x 3 must be assigned value False Unit propagation Iterated application of the unit clause rule ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 4 ) 25/66
History of SAT Modern Solvers Main Components Conclusion / Challenges U NIT P ROPAGATION IN BACKTRACK SEARCH Unit clause rule in backtrack search : Given a unit clause, its only unassigned literal must be assigned value True for the clause to be satisfied Example : for unit clause ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) , x 3 must be assigned value False Unit propagation Iterated application of the unit clause rule ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 4 ) 25/66
History of SAT Modern Solvers Main Components Conclusion / Challenges U NIT P ROPAGATION IN BACKTRACK SEARCH Unit clause rule in backtrack search : Given a unit clause, its only unassigned literal must be assigned value True for the clause to be satisfied Example : for unit clause ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) , x 3 must be assigned value False Unit propagation Iterated application of the unit clause rule ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ x 4 ) ( x 1 ∨ ¬ x 2 ∨ ¬ x 3 ) ∧ ( ¬ x 1 ∨ ¬ x 3 ∨ x 4 ) ∧ ( ¬ x 1 ∨ ¬ x 2 ∨ ¬ x 4 ) Unit propagation can satisfy clauses but can also unsatisfy clauses (i.e. conflicts) 25/66
History of SAT Modern Solvers Main Components Conclusion / Challenges A N E XAMPLE OF DPLL = ( a ∨ ¬ b ∨ d ) ∧ ( a ∨ ¬ b ∨ e ) ∧ ϕ ( ¬ b ∨ ¬ d ∨ ¬ e ) ∧ ( a ∨ b ∨ c ∨ d ) ∧ ( a ∨ b ∨ c ∨ ¬ d ) ∧ ( a ∨ b ∨ ¬ c ∨ e ) ∧ ( a ∨ b ∨ ¬ c ∨ ¬ e ) a 26/66
History of SAT Modern Solvers Main Components Conclusion / Challenges A N E XAMPLE OF DPLL a ϕ = ( a ∨ ¬ b ∨ d ) ∧ ( a ∨ ¬ b ∨ e ) ∧ ( ¬ b ∨ ¬ d ∨ ¬ e ) ∧ ( a ∨ b ∨ c ∨ d ) ∧ ( a ∨ b ∨ c ∨ ¬ d ) ∧ b ( a ∨ b ∨ ¬ c ∨ e ) ∧ ( a ∨ b ∨ ¬ c ∨ ¬ e ) conflict 26/66
History of SAT Modern Solvers Main Components Conclusion / Challenges A N E XAMPLE OF DPLL a ϕ = ( a ∨ ¬ b ∨ d ) ∧ ( a ∨ ¬ b ∨ e ) ∧ ( ¬ b ∨ ¬ d ∨ ¬ e ) ∧ ( a ∨ b ∨ c ∨ d ) ∧ ( a ∨ b ∨ c ∨ ¬ d ) ∧ b ( a ∨ b ∨ ¬ c ∨ e ) ∧ ( a ∨ b ∨ ¬ c ∨ ¬ e ) conflict 26/66
History of SAT Modern Solvers Main Components Conclusion / Challenges A N E XAMPLE OF DPLL a ϕ = ( a ∨ ¬ b ∨ d ) ∧ ( a ∨ ¬ b ∨ e ) ∧ ( ¬ b ∨ ¬ d ∨ ¬ e ) ∧ ( a ∨ b ∨ c ∨ d ) ∧ ( a ∨ b ∨ c ∨ ¬ d ) ∧ b ( a ∨ b ∨ ¬ c ∨ e ) ∧ ( a ∨ b ∨ ¬ c ∨ ¬ e ) c conflict 26/66
History of SAT Modern Solvers Main Components Conclusion / Challenges A N E XAMPLE OF DPLL a ϕ = ( a ∨ ¬ b ∨ d ) ∧ ( a ∨ ¬ b ∨ e ) ∧ ( ¬ b ∨ ¬ d ∨ ¬ e ) ∧ ( a ∨ b ∨ c ∨ d ) ∧ ( a ∨ b ∨ c ∨ ¬ d ) ∧ b ( a ∨ b ∨ ¬ c ∨ e ) ∧ ( a ∨ b ∨ ¬ c ∨ ¬ e ) c conflict 26/66
History of SAT Modern Solvers Main Components Conclusion / Challenges A N E XAMPLE OF DPLL a ϕ = ( a ∨ ¬ b ∨ d ) ∧ ( a ∨ ¬ b ∨ e ) ∧ ( ¬ b ∨ ¬ d ∨ ¬ e ) ∧ ( a ∨ b ∨ c ∨ d ) ∧ ( a ∨ b ∨ c ∨ ¬ d ) ∧ b ( a ∨ b ∨ ¬ c ∨ e ) ∧ ( a ∨ b ∨ ¬ c ∨ ¬ e ) c conflict 26/66
History of SAT Modern Solvers Main Components Conclusion / Challenges A N E XAMPLE OF DPLL a ϕ = ( a ∨ ¬ b ∨ d ) ∧ ( a ∨ ¬ b ∨ e ) ∧ ( ¬ b ∨ ¬ d ∨ ¬ e ) ∧ ( a ∨ b ∨ c ∨ d ) ∧ ( a ∨ b ∨ c ∨ ¬ d ) ∧ b b ( a ∨ b ∨ ¬ c ∨ e ) ∧ ( a ∨ b ∨ ¬ c ∨ ¬ e ) c solution conflict 26/66
History of SAT Modern Solvers Main Components Conclusion / Challenges A N E XAMPLE OF DPLL ϕ = ( a ∨ ¬ b ∨ d ) ∧ ( a ∨ ¬ b ∨ e ) ∧ ( ¬ b ∨ ¬ d ∨ ¬ e ) ∧ ( a ∨ b ∨ c ∨ d ) ∧ ( a ∨ b ∨ c ∨ ¬ d ) ∧ ( a ∨ b ∨ ¬ c ∨ e ) ∧ ( a ∨ b ∨ ¬ c ∨ ¬ e ) 26/66
History of SAT Modern Solvers Main Components Conclusion / Challenges DP, DLL OR DPLL ? DPLL = DP + DLL Acknowledge the principles in DP60 and their memory efficient implementation in DP62 DPLL commonly used to denote complete solvers for SAT : no longer true for modern complete SAT solvers. The focus of researchers in the 90’s was mainly to improve the heuristics to select the variables to branch on on randomly generated formulas. Introduction of non chronological backtracking and learning to solve structured/real world formulas 27/66
History of SAT Modern Solvers Main Components Conclusion / Challenges DPLL : THE LOOK - AHEAD WORLD W E CANNOT ALWAYS WIN , BUT WE CAN LIMIT THE LOSS On UNSAT problems : We must visit both alternatives On SAT problems : What is the chance to pick the right direction ? In all the cases : we need to reduce both sizes of subtrees Most frequent variables in short clauses Variable that will propagate many literals Variable in backbones / backdoors / ... Unexpected problems : needs to maintain many counters Only possible on « normal » problems 28/66
History of SAT Modern Solvers Main Components Conclusion / Challenges DPLL : THE LOOK - AHEAD WORLD W E CANNOT ALWAYS WIN , BUT WE CAN LIMIT THE LOSS On UNSAT problems : We must visit both alternatives On SAT problems : What is the chance to pick the right direction ? In all the cases : we need to reduce both sizes of subtrees Most frequent variables in short clauses Variable that will propagate many literals Variable in backbones / backdoors / ... Unexpected problems : needs to maintain many counters Only possible on « normal » problems 28/66
History of SAT Modern Solvers Main Components Conclusion / Challenges DPLL : THE LOOK - AHEAD WORLD W E CANNOT ALWAYS WIN , BUT WE CAN LIMIT THE LOSS On UNSAT problems : We must visit both alternatives On SAT problems : What is the chance to pick the right direction ? In all the cases : we need to reduce both sizes of subtrees Most frequent variables in short clauses Variable that will propagate many literals Variable in backbones / backdoors / ... Unexpected problems : needs to maintain many counters Only possible on « normal » problems 28/66
History of SAT Modern Solvers Main Components Conclusion / Challenges DPLL : THE LOOK - AHEAD WORLD W E CANNOT ALWAYS WIN , BUT WE CAN LIMIT THE LOSS On UNSAT problems : We must visit both alternatives On SAT problems : What is the chance to pick the right direction ? In all the cases : we need to reduce both sizes of subtrees Most frequent variables in short clauses Variable that will propagate many literals Variable in backbones / backdoors / ... Unexpected problems : needs to maintain many counters Only possible on « normal » problems 28/66
History of SAT Modern Solvers Main Components Conclusion / Challenges DPLL : THE LOOK - AHEAD WORLD W E CANNOT ALWAYS WIN , BUT WE CAN LIMIT THE LOSS On UNSAT problems : We must visit both alternatives On SAT problems : What is the chance to pick the right direction ? In all the cases : we need to reduce both sizes of subtrees Most frequent variables in short clauses Variable that will propagate many literals Variable in backbones / backdoors / ... Unexpected problems : needs to maintain many counters Only possible on « normal » problems 28/66
History of SAT Modern Solvers Main Components Conclusion / Challenges T ODAY ’ S I TINARY 1 A H ISTORY OF 50 YEARS OF SAT R ESEARCH 2 M ODERN SAT S OLVERS : CDCL Principles of Clause Learning and Backjumping (Giant) Industrial Problems The CDCL solvers 3 M AIN C OMPONENTS AND F EATURES 4 C ONCLUDING ON C HALLENGES 29/66
History of SAT Modern Solvers Main Components Conclusion / Challenges C LAUSE L EARNING During backtrack search, for each conflict learn new clause, which explains and prevents repetition of the same conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) . . . Assume decisions c = False and f = False Assign a = False and imply assignments A conflict is reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ a ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ a ∨ c ∨ f Learn new clause ( a ∨ c ∨ f ) 30/66
History of SAT Modern Solvers Main Components Conclusion / Challenges C LAUSE L EARNING During backtrack search, for each conflict learn new clause, which explains and prevents repetition of the same conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) . . . Assume decisions c = False and f = False Assign a = False and imply assignments A conflict is reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ a ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ a ∨ c ∨ f Learn new clause ( a ∨ c ∨ f ) 30/66
History of SAT Modern Solvers Main Components Conclusion / Challenges C LAUSE L EARNING During backtrack search, for each conflict learn new clause, which explains and prevents repetition of the same conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) . . . Assume decisions c = False and f = False Assign a = False and imply assignments A conflict is reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ a ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ a ∨ c ∨ f Learn new clause ( a ∨ c ∨ f ) 30/66
History of SAT Modern Solvers Main Components Conclusion / Challenges C LAUSE L EARNING During backtrack search, for each conflict learn new clause, which explains and prevents repetition of the same conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) . . . Assume decisions c = False and f = False Assign a = False and imply assignments A conflict is reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ a ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ a ∨ c ∨ f Learn new clause ( a ∨ c ∨ f ) 30/66
History of SAT Modern Solvers Main Components Conclusion / Challenges C LAUSE L EARNING During backtrack search, for each conflict learn new clause, which explains and prevents repetition of the same conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) . . . Assume decisions c = False and f = False Assign a = False and imply assignments A conflict is reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ a ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ a ∨ c ∨ f Learn new clause ( a ∨ c ∨ f ) 30/66
History of SAT Modern Solvers Main Components Conclusion / Challenges C LAUSE L EARNING During backtrack search, for each conflict learn new clause, which explains and prevents repetition of the same conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) . . . Assume decisions c = False and f = False Assign a = False and imply assignments A conflict is reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ a ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ a ∨ c ∨ f Learn new clause ( a ∨ c ∨ f ) 30/66
History of SAT Modern Solvers Main Components Conclusion / Challenges C LAUSE L EARNING During backtrack search, for each conflict learn new clause, which explains and prevents repetition of the same conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) . . . Assume decisions c = False and f = False Assign a = False and imply assignments A conflict is reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ a ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ a ∨ c ∨ f Learn new clause ( a ∨ c ∨ f ) 30/66
History of SAT Modern Solvers Main Components Conclusion / Challenges C LAUSE L EARNING During backtrack search, for each conflict learn new clause, which explains and prevents repetition of the same conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) . . . Assume decisions c = False and f = False Assign a = False and imply assignments A conflict is reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ a ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ a ∨ c ∨ f Learn new clause ( a ∨ c ∨ f ) 30/66
History of SAT Modern Solvers Main Components Conclusion / Challenges N ON -C HRONOLOGICAL B ACKTRACKING During backtrack search, for each conflict backtrack to one of the causes of the conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) ∧ ( a ∨ c ∨ f ) ∧ ( ¬ a ∨ g ) ∧ ( ¬ g ∨ b ) ∧ ( ¬ h ∨ j ) ∧ ( ¬ i ∨ k ) Assume decisions c = False , f = False , h = False and i = False Assignment a = False caused conflict ⇒ learnt clause ( a ∨ c ∨ f ) implies a A conflict is again reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ c ∨ f Learn new clause ( c ∨ f ) 31/66
History of SAT Modern Solvers Main Components Conclusion / Challenges N ON -C HRONOLOGICAL B ACKTRACKING During backtrack search, for each conflict backtrack to one of the causes of the conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) ∧ ( a ∨ c ∨ f ) ∧ ( ¬ a ∨ g ) ∧ ( ¬ g ∨ b ) ∧ ( ¬ h ∨ j ) ∧ ( ¬ i ∨ k ) Assume decisions c = False , f = False , h = False and i = False Assignment a = False caused conflict ⇒ learnt clause ( a ∨ c ∨ f ) implies a A conflict is again reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ c ∨ f Learn new clause ( c ∨ f ) 31/66
History of SAT Modern Solvers Main Components Conclusion / Challenges N ON -C HRONOLOGICAL B ACKTRACKING During backtrack search, for each conflict backtrack to one of the causes of the conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) ∧ ( a ∨ c ∨ f ) ∧ ( ¬ a ∨ g ) ∧ ( ¬ g ∨ b ) ∧ ( ¬ h ∨ j ) ∧ ( ¬ i ∨ k ) Assume decisions c = False , f = False , h = False and i = False Assignment a = False caused conflict ⇒ learnt clause ( a ∨ c ∨ f ) implies a A conflict is again reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ c ∨ f Learn new clause ( c ∨ f ) 31/66
History of SAT Modern Solvers Main Components Conclusion / Challenges N ON -C HRONOLOGICAL B ACKTRACKING During backtrack search, for each conflict backtrack to one of the causes of the conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) ∧ ( a ∨ c ∨ f ) ∧ ( ¬ a ∨ g ) ∧ ( ¬ g ∨ b ) ∧ ( ¬ h ∨ j ) ∧ ( ¬ i ∨ k ) Assume decisions c = False , f = False , h = False and i = False Assignment a = False caused conflict ⇒ learnt clause ( a ∨ c ∨ f ) implies a A conflict is again reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ c ∨ f Learn new clause ( c ∨ f ) 31/66
History of SAT Modern Solvers Main Components Conclusion / Challenges N ON -C HRONOLOGICAL B ACKTRACKING During backtrack search, for each conflict backtrack to one of the causes of the conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) ∧ ( a ∨ c ∨ f ) ∧ ( ¬ a ∨ g ) ∧ ( ¬ g ∨ b ) ∧ ( ¬ h ∨ j ) ∧ ( ¬ i ∨ k ) Assume decisions c = False , f = False , h = False and i = False Assignment a = False caused conflict ⇒ learnt clause ( a ∨ c ∨ f ) implies a A conflict is again reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ c ∨ f Learn new clause ( c ∨ f ) 31/66
History of SAT Modern Solvers Main Components Conclusion / Challenges N ON -C HRONOLOGICAL B ACKTRACKING During backtrack search, for each conflict backtrack to one of the causes of the conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) ∧ ( a ∨ c ∨ f ) ∧ ( ¬ a ∨ g ) ∧ ( ¬ g ∨ b ) ∧ ( ¬ h ∨ j ) ∧ ( ¬ i ∨ k ) Assume decisions c = False , f = False , h = False and i = False Assignment a = False caused conflict ⇒ learnt clause ( a ∨ c ∨ f ) implies a A conflict is again reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ c ∨ f Learn new clause ( c ∨ f ) 31/66
History of SAT Modern Solvers Main Components Conclusion / Challenges N ON -C HRONOLOGICAL B ACKTRACKING During backtrack search, for each conflict backtrack to one of the causes of the conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) ∧ ( a ∨ c ∨ f ) ∧ ( ¬ a ∨ g ) ∧ ( ¬ g ∨ b ) ∧ ( ¬ h ∨ j ) ∧ ( ¬ i ∨ k ) Assume decisions c = False , f = False , h = False and i = False Assignment a = False caused conflict ⇒ learnt clause ( a ∨ c ∨ f ) implies a A conflict is again reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ c ∨ f Learn new clause ( c ∨ f ) 31/66
History of SAT Modern Solvers Main Components Conclusion / Challenges N ON -C HRONOLOGICAL B ACKTRACKING During backtrack search, for each conflict backtrack to one of the causes of the conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) ∧ ( a ∨ c ∨ f ) ∧ ( ¬ a ∨ g ) ∧ ( ¬ g ∨ b ) ∧ ( ¬ h ∨ j ) ∧ ( ¬ i ∨ k ) Assume decisions c = False , f = False , h = False and i = False Assignment a = False caused conflict ⇒ learnt clause ( a ∨ c ∨ f ) implies a A conflict is again reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ c ∨ f Learn new clause ( c ∨ f ) 31/66
History of SAT Modern Solvers Main Components Conclusion / Challenges N ON -C HRONOLOGICAL B ACKTRACKING During backtrack search, for each conflict backtrack to one of the causes of the conflict ϕ = ( a ∨ b ) ∧ ( ¬ b ∨ c ∨ d ) ∧ ( ¬ b ∨ e ) ∧ ( ¬ d ∨ ¬ e ∨ f ) ∧ ( a ∨ c ∨ f ) ∧ ( ¬ a ∨ g ) ∧ ( ¬ g ∨ b ) ∧ ( ¬ h ∨ j ) ∧ ( ¬ i ∨ k ) Assume decisions c = False , f = False , h = False and i = False Assignment a = False caused conflict ⇒ learnt clause ( a ∨ c ∨ f ) implies a A conflict is again reached : ( ¬ d ∨ ¬ e ∨ f ) is unsatisfied ϕ ∧ ¬ c ∧ ¬ f ⇒ ⊥ ϕ ⇒ c ∨ f Learn new clause ( c ∨ f ) 31/66
History of SAT Modern Solvers Main Components Conclusion / Challenges N ON -C HRONOLOGICAL B ACKTRACKING c f h i a ( c + f ) ( a + c + f ) 32/66
History of SAT Modern Solvers Main Components Conclusion / Challenges N ON -C HRONOLOGICAL B ACKTRACKING c Learnt clause : ( c ∨ f ) Need to backtrack, given new clause f Backtrack to most recent decision : f = False h i Clause learning and non-chronological backtracking a are hallmarks of modern SAT solvers ( a + c + f ) ( c + f ) 32/66
Recommend
More recommend