Download presentation
Presentation is loading. Please wait.
Published byHillary Cunningham Modified over 9 years ago
1
ULTIMATELY INCREMENTAL SAT Alexander Nadel 1, Vadim Ryvchin 1,2, and Ofer Strichman 2 1 – Intel, Haifa, Israel 2 – Technion, Haifa, Israel SAT’14, Vienna, Austria
2
Introduction Incremental SAT is at the core of a variety of applications Assumptions are widely used in Incremental SAT Preprocessing is essential for performance
3
Recall: SatELite Preprocessing
4
Recall: Clause Database Simplification 1. Propagation of unit clauses 2. Elimination of satisfied clauses 3. Removal of falsified literals from clauses
5
Incremental SAT under Assumptions
6
Temporary vs. Pervasive clauses We say that a clause is temporary if it is either an assumption or was derived from one or more assumptions, and pervasive otherwise.
7
Temporary vs. Pervasive α1=aα1=a α1=aα1=a Legend: α2=bα2=b α2=bα2=b α 3 =¬a v c v d α 4 =¬b v ¬d α 5 =¬c v e α 6 =¬c v ¬e α 7 =c v dα 8 =¬d α 9 =¬c α 10 =c Input clauses Pervasive conflict clauses Assumptions Temporary conflict clauses
8
Temporary Partial Resolution α1=aα1=a α1=aα1=a Legend: α2=bα2=b α2=bα2=b α 3 =¬a v c v d α 4 =¬b v ¬d α 5 =¬c v e α 6 =¬c v ¬e α 7 =c v dα 8 =¬d α 9 =¬c α 10 =c Input clauses Pervasive conflict clauses Assumptions Temporary conflict clauses
9
Temporary Partial Resolution α1=aα1=a α1=aα1=a Legend: α2=bα2=b α2=bα2=b α 7 =c v dα 8 =¬d α 10 =c Assumptions Temporary conflict clauses
10
Assumptions.. as decision.. as unit clauses Compatible with Inc. SAT+- Conflict clauses are pervasive+- Simplification-+ Preprocessing-+
11
Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All
12
Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Ofer Strichman. Sharing information between SAT instances, Dec 2000, Patent Ofer Strichman. Pruning techniques for the SAT-based bounded model checking problem. CHARME'01. Jesse Whittemore, Joonyoung Kim, and Karem A. Sakallah. SATIRE: A new incremental satisfiability engine, DAC’01
13
Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Ofer Strichman. Sharing information between SAT instances, Dec 2000, Patent Ofer Strichman. Pruning techniques for the SAT-based bounded model checking problem. CHARME'01. Jesse Whittemore, Joonyoung Kim, and Karem A. Sakallah. SATIRE: A new incremental satisfiability engine, DAC’01
14
Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Niklas Een and Niklas Sorensson. An extensible SAT-solver, SAT’03.
15
Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Niklas Een and Niklas Sorensson. An extensible SAT-solver, SAT’03.
16
Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Alexander Nadel and Vadim Ryvchin. Efficient SAT solving under assumptions, SAT'12.
17
Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Alexander Nadel and Vadim Ryvchin. Efficient SAT solving under assumptions, SAT'12.
18
Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Alexander Nadel and Vadim Ryvchin. Efficient SAT solving under assumptions, SAT'12.
19
Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Alexander Nadel, Vadim Ryvchin, and Ofer Strichman. Preprocessing in incremental SAT, SAT'12.
20
Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Alexander Nadel, Vadim Ryvchin, and Ofer Strichman. Preprocessing in incremental SAT, SAT'12.
21
Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Alexander Nadel, Vadim Ryvchin, and Ofer Strichman. Preprocessing in incremental SAT, SAT'12.
22
Our New Approach AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All UI-SATOneYesIncrementalIncremental T2P
23
Our New Approach AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All UI-SATOneYesIncrementalIncremental T2P
24
Our New Approach AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All UI-SATOneYesIncrementalIncremental T2P
25
Incremental SatELite (NRS’12) Freeze Assumptions // For current call Preprocess Solve // might run in-processing UnFreeze Assumptions
26
Incremental SatELite (NRS’12) Remove subsumptions. For each eliminated variable in elimination order: if (*) // decide heuristically Re-Eliminate else Re-Introduce Freeze Assumptions // For current call Preprocess Solve // might run in-processing UnFreeze Assumptions
27
Incremental SatELite (NRS’12) Remove subsumptions. For each eliminated variable in elimination order: if (*) // decide heuristically Re-Eliminate else Re-Introduce Freeze Assumptions // For current call Preprocess Solve // might run in-processing UnFreeze Assumptions
28
Incremental SatELite (SAT’12) Remove subsumptions. For each eliminated variable in elimination order: if (*) // decide heuristically Re-Eliminate else Re-Introduce Freeze Assumptions // For current call Preprocess Solve // might run in-processing UnFreeze Assumptions
29
Incremental SatELite (SAT’12) Remove subsumptions. For each eliminated variable in elimination order: if (*) // decide heuristically Re-Eliminate else Re-Introduce Preprocess Solve // might run in-processing
30
Incremental SatELite (SAT’12) Undo Previous Assumptions Add assumptions as temporary unit clauses Remove subsumptions. For each eliminated variable in elimination order: if (*) // decide heuristically Re-Eliminate else Re-Introduce Preprocess Solve // might run in-processing
31
Data Structures We need to keep relevant data to undo assumptions. SubsumedClauses Per clause – set of clauses subsumed by it
32
Subsumption (Example) Two clauses: c 1 =(a b) c 2 =(a b c) Normal subsumption: Delete c 2 Our Subsumption: if c 1 marked as temporary: c 1 subsumes c 2 Add(c 2 ) to SubsumedClauses[c 1 ] Delete c 2
33
Data Structures We need to keep relevant data to undo assumptions. SubsumedClauses Per clause – set of clauses subsumed by it Resol - Partial Resolution for temporary clauses If at least one of the parent clauses is temporary, then a new vertex is added to the resolution graph : o Conflict Analyze o Variable Elimination o Self Subsumption
34
Self-Subsumption (Example) Two clauses: c 1 =(a b) c 2 =(a ¬b c) Normal self-subsumption: Create a new clause c 3 = Resol(c 1, c 2 ) = (a c) Delete c 2 (Normally implemented just as removal of ¬b from c 2 ) In our case (in addition to normal): c 3 subsumes c 2 Add c 2 to SubsumedClauses[c 3 ]
35
Remove Subsumptions 1: function SelfSubsume(Clause c) 2: for each lit p c do 3: for each c’ subsumed by c[p := ¬p] do 4: if c is temporary then 5: c’’ = res(c, c’); 6. SubsumedClauses[c].Add(c’) 7: Remove c’ from clause db; 8: AddClause(c’’); 9: else Remove ¬p from c;
36
Remove Subsumptions 1: function Subsume(Clause c) 2: Pick the literal p in c that has the shortest occur list; 3: for each c′ ∈ occur(p) do 4:occur(p) = {c | p ∈ c, c ∈ φ} 5: if c is a subset of c′ then 6:Remove c′ from the clauses database; 7: if c is temporary then 8:SubsumedClauses[c].Add(c′);
37
Undo Assumptions Assumptions: Iteration i : b, a Iteration i+1: b
38
Undo Assumptions (Incremental T2P) α1=aα1=a α1=aα1=a Legend: α2=bα2=b α2=bα2=b α 7 =c v dα 8 =¬d α 10 =c Assumptions Temporary conflict clauses
39
Undo Assumptions (Incremental T2P) α1=aα1=a α1=aα1=a Legend: α2=bα2=b α2=bα2=b α 7 =c v dα 8 =¬d α 10 =c Assumptions Temporary conflict clauses Add SubsumedClauses[α 1 ] back to clause database
40
Undo Assumptions (Incremental T2P) α1=aα1=a α1=aα1=a Legend: α2=bα2=b α2=bα2=b α 7 =c v dα 8 =¬d α 10 =c Assumptions Temporary conflict clauses ¬a
41
Undo Assumptions (Incremental T2P) Legend: α2=bα2=b α2=bα2=b α 8 =¬d α 10 =c Pervasive conflict clauses Assumptions Temporary conflict clauses α 7 =¬a v c v d Add SubsumedClauses[α 7 ] back to clause database
42
Undo Assumptions (Incremental T2P) Legend: α 7 =¬a v c v d α 10 =c Pervasive conflict clauses Assumptions Temporary conflict clauses ¬a α2=bα2=b α2=bα2=b α 8 =¬d
43
Undo Assumptions (Incremental T2P) Legend: α 10 =¬a v c Assumptions Temporary conflict clauses α2=bα2=b α2=bα2=b α 8 =¬d Add SubsumedClauses[α 10 ] back to clause database
44
Undo Assumptions (Incremental T2P) Legend: α 10 =¬a v c Assumptions Temporary conflict clauses ¬a α2=bα2=b α2=bα2=b α 8 =¬d
45
Undo Assumptions (Incremental T2P) Legend: α 10 =¬a v c Assumptions Temporary conflict clauses α2=bα2=b α2=bα2=b α 8 =¬d
46
Experimental Results Benchmark Set: Instances generated by BMC (without look-ahead) under assumptions o Generated by an incremental model checker May be invoked multiple times with different assumptions and properties Essential to reduce the debug loop time for validation engineers 3 satisfiable families – 128 instances 4 unsatisfiable families – 81 instances Algorithm Implementation in Intel’s internal Fiver SAT Solver Timeout: 3600sec Machines: Intel ® Xeon ® 4Ghz 32Gb of memory
47
Experimental Results
48
MethodTime-outsRun-time Clause Sharing28223,424 Minisat-Alg.14159,423 Assumption Prop.24182,530 Incremental SatELite16209,781 UI-SAT164,176
49
Thank You!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.