|
Part I Theory and Algorithms |
|
|
|
Chapter 1 A History of Satisfiability |
|
|
3 | (72) |
|
|
|
1.1 Preface: the concept of satisfiability |
|
|
3 | (3) |
|
|
6 | (2) |
|
|
8 | (1) |
|
|
9 | (1) |
|
1.5 The first logic machine |
|
|
10 | (1) |
|
|
10 | (2) |
|
1.7 Frege, logicism, and quantification logic |
|
|
12 | (1) |
|
1.8 Russell and Whitehead |
|
|
13 | (1) |
|
1.9 Godel's incompleteness theorem |
|
|
14 | (1) |
|
1.10 Effective process and recursive functions |
|
|
14 | (1) |
|
|
15 | (1) |
|
1.12 Model theory and Satisfiability |
|
|
15 | (2) |
|
1.13 Completeness of first-order logic |
|
|
17 | (1) |
|
1.14 Application of logic to circuits |
|
|
18 | (1) |
|
|
19 | (2) |
|
1.16 The complexity or resolution Alasdair Urquhart |
|
|
21 | (2) |
|
1.17 Refinement of Resolution-Based SAT Solvers |
|
|
23 | (2) |
|
1.18 Upper bounds Ewald Speckenmeyer |
|
|
25 | (2) |
|
1.19 Classes of easy expressions |
|
|
27 | (4) |
|
1.20 Binary Decision Diagrams |
|
|
31 | (1) |
|
1.21 Probabilistic analysis: SAT algorithms |
|
|
32 | (7) |
|
1.22 Probabilistic analysis: thresholds |
|
|
39 | (3) |
|
1.23 Stochastic Local Search Holger Hoos |
|
|
42 | (1) |
|
1.24 Maximum Satisfiability Hantao Zhang |
|
|
43 | (2) |
|
1.25 Nonlinear formulations Miguel Anjos |
|
|
45 | (4) |
|
1.26 Pseudo-Boolean Forms |
|
|
49 | (2) |
|
1.27 Quantified Boolean formulas Hans Kleine Buining |
|
|
51 | (24) |
|
|
55 | (20) |
|
|
75 | (26) |
|
|
|
75 | (1) |
|
2.2 Transformation to CNF |
|
|
75 | (8) |
|
|
83 | (8) |
|
2.4 Desirable properties of CNF encodings |
|
|
91 | (3) |
|
|
94 | (7) |
|
|
94 | (7) |
|
Chapter 3 Complete Algorithms |
|
|
101 | (32) |
|
|
|
|
101 | (1) |
|
3.2 Technical Preliminaries |
|
|
101 | (3) |
|
3.3 Satisfiability by Existential Quantification |
|
|
104 | (5) |
|
3.4 Satisfiability by Inference Rules |
|
|
109 | (3) |
|
3.5 Satisfiability by Search: The DPLL Algorithm |
|
|
112 | (4) |
|
3.6 Satisfiability by Combining Search and Inference |
|
|
116 | (12) |
|
|
128 | (5) |
|
|
128 | (5) |
|
Chapter 4 CDCL SAT Solving |
|
|
133 | (1) |
|
|
|
|
|
133 | (2) |
|
|
135 | (5) |
|
4.3 Implementing CDCL SAT Solvers |
|
|
140 | (12) |
|
4.4 Using CDCL SAT Solvers |
|
|
152 | (8) |
|
4.5 Impact of CDCL SAT Solvers |
|
|
160 | (1) |
|
4.6 Historical Perspective |
|
|
161 | (2) |
|
|
163 | (1) |
|
4.8 Conclusions & Research Directions |
|
|
164 | (19) |
|
|
164 | (19) |
|
Chapter 5 Look-Ahead Based SAT Solvers |
|
|
183 | (30) |
|
|
|
|
183 | (2) |
|
5.2 General and Historical Overview |
|
|
185 | (7) |
|
|
192 | (9) |
|
|
201 | (6) |
|
5.5 Eager Data-Structures |
|
|
207 | (6) |
|
|
210 | (3) |
|
Chapter 6 Incomplete Algorithms |
|
|
213 | (20) |
|
|
|
|
6.1 Greedy Search and Focused Random Walk |
|
|
215 | (3) |
|
6.2 Extensions of the Basic Local Search Method |
|
|
218 | (1) |
|
6.3 Discrete Lagrangian Methods |
|
|
219 | (3) |
|
6.4 The Phase Transition Phenomenon in Random fc-SAT |
|
|
222 | (2) |
|
6.5 A New Technique for Random fc-SAT: Survey Propagation |
|
|
224 | (1) |
|
|
225 | (8) |
|
|
226 | (7) |
|
Chapter 7 Proof Complexity and SAT Solving |
|
|
233 | (118) |
|
|
|
|
233 | (3) |
|
|
236 | (2) |
|
7.3 Resolution and CDCL SAT solvers |
|
|
238 | (17) |
|
7.4 Resolution and Proof Complexity |
|
|
255 | (15) |
|
7.5 Algebraic Proof Systems |
|
|
270 | (12) |
|
7.6 Cutting Planes and Pseudo-Boolean Solving |
|
|
282 | (18) |
|
7.7 Cutting Planes and Proof Complexity |
|
|
300 | (12) |
|
7.8 Extended Resolution and DRAT Proof Systems |
|
|
312 | (4) |
|
7.9 Frege and Extended Frege Proof Systems |
|
|
316 | (2) |
|
7.10 Bounded-Depth Frege Proof System |
|
|
318 | (4) |
|
|
322 | (29) |
|
|
324 | (27) |
|
Chapter 8 Fundaments of Branching Heuristics |
|
|
351 | (40) |
|
|
|
351 | (2) |
|
8.2 A general framework for branching algorithms |
|
|
353 | (4) |
|
8.3 Branching tuples and the canonical projection |
|
|
357 | (5) |
|
8.4 Estimating tree sizes |
|
|
362 | (6) |
|
8.5 Axiomatising the canonical order on branching tuples |
|
|
368 | (1) |
|
8.6 Alternative projections for restricted branching width |
|
|
369 | (2) |
|
8.7 How to select distances and measures |
|
|
371 | (7) |
|
8.8 Optimising distance functions |
|
|
378 | (2) |
|
8.9 The order of branches |
|
|
380 | (3) |
|
|
383 | (2) |
|
8.11 Conclusion and outlook |
|
|
385 | (6) |
|
|
386 | (5) |
|
Chapter 9 Preprocessing in SAT Solving |
|
|
391 | (46) |
|
|
|
|
|
391 | (3) |
|
9.2 Classical Preprocessing Techniques |
|
|
394 | (7) |
|
9.3 Resolution-Based Preprocessing |
|
|
401 | (8) |
|
9.4 CNF Preprocessing Beyond Resolution |
|
|
409 | (2) |
|
9.5 Solution Reconstruction |
|
|
411 | (3) |
|
9.6 Structure-Based Preprocessing |
|
|
414 | (4) |
|
|
418 | (19) |
|
|
419 | (18) |
|
Chapter 10 Random Satisfiability |
|
|
437 | (26) |
|
|
|
437 | (2) |
|
10.2 The State of the Art |
|
|
439 | (2) |
|
|
441 | (3) |
|
10.4 Physical Predictions for Solution-space Geometry |
|
|
444 | (3) |
|
10.5 The Role of the Second Moment Method |
|
|
447 | (1) |
|
|
447 | (4) |
|
|
451 | (3) |
|
10.8 Belief/Survey Propagation and the Algorithmic Barrier |
|
|
454 | (1) |
|
10.9 Backtracking Algorithms |
|
|
455 | (2) |
|
10.10 Exponential Running-Time for k < 3 |
|
|
457 | (6) |
|
|
458 | (5) |
|
Chapter 11 Exploiting Runtime Variation in Complete Solvers |
|
|
463 | (18) |
|
|
|
11.1 Runtime Variation in Backtrack Search |
|
|
465 | (7) |
|
11.2 Exploiting Runtime Variation: Randomization and Restarts |
|
|
472 | (5) |
|
|
477 | (4) |
|
|
477 | (4) |
|
Chapter 12 Automated Configuration and Selection of SAT Solvers |
|
|
481 | (28) |
|
|
|
|
|
481 | (1) |
|
12.2 Algorithm configuration |
|
|
482 | (7) |
|
12.3 Per-instance algorithm selection |
|
|
489 | (7) |
|
|
496 | (3) |
|
12.5 Conclusions and open challenges |
|
|
499 | (10) |
|
|
500 | (9) |
|
Chapter 13 Symmetry and Satisfiability |
|
|
509 | (62) |
|
|
|
509 | (3) |
|
|
512 | (4) |
|
|
516 | (9) |
|
|
525 | (1) |
|
13.5 Automorphism Group of a Colored Graph |
|
|
526 | (5) |
|
13.6 Detection of CNF Symmetries |
|
|
531 | (6) |
|
|
537 | (11) |
|
13.8 From Symmetry to Satisfiability and Back |
|
|
548 | (9) |
|
13.9 Summary and a Look Forward |
|
|
557 | (3) |
|
13.10 Bibliographic Notes |
|
|
560 | (11) |
|
|
566 | (5) |
|
Chapter 14 Minimal Unsatisfiability and Autarkies |
|
|
571 | (64) |
|
|
|
|
571 | (1) |
|
|
572 | (3) |
|
14.3 Resolution and Homomorphism |
|
|
575 | (2) |
|
|
577 | (3) |
|
14.5 Extension to non-clausal formulas |
|
|
580 | (3) |
|
14.6 Minimal Falsity for QBF |
|
|
583 | (2) |
|
14.7 Applications and Experimental Results |
|
|
585 | (1) |
|
14.8 Generalising satisfying assignments through "autarkies" |
|
|
585 | (6) |
|
|
591 | (7) |
|
14.10 Finding and using autarkies |
|
|
598 | (7) |
|
14.11 Autarky systems: Using weaker forms of autarkies |
|
|
605 | (12) |
|
14.12 Connections to combinatorics |
|
|
617 | (7) |
|
14.13 Generalisations and extensions of autarkies |
|
|
624 | (3) |
|
|
627 | (8) |
|
|
627 | (8) |
|
Chapter 15 Proofs of Unsatisflability |
|
|
635 | (34) |
|
|
|
635 | (2) |
|
|
637 | (7) |
|
|
644 | (1) |
|
|
645 | (8) |
|
15.5 Proof Production in Practical SAT Solving |
|
|
653 | (4) |
|
15.6 Proof Validation and Processing |
|
|
657 | (3) |
|
|
660 | (1) |
|
|
661 | (8) |
|
|
661 | (8) |
|
Chapter 16 Worst-Case Upper Bounds |
|
|
669 | (24) |
|
|
|
|
669 | (2) |
|
16.2 Tractable and intractable classes |
|
|
671 | (3) |
|
16.3 Upper bounds for fc-SAT |
|
|
674 | (5) |
|
16.4 Upper bounds for General SAT |
|
|
679 | (3) |
|
16.5 How large is the exponent? |
|
|
682 | (4) |
|
|
686 | (1) |
|
16.7 Addendum for the 2nd Edition: Connections to Circuit Complexity |
|
|
687 | (6) |
|
|
688 | (5) |
|
Chapter 17 Fixed-Parameter Tractability |
|
|
693 | (46) |
|
|
|
|
693 | (2) |
|
|
695 | (5) |
|
|
700 | (4) |
|
|
704 | (8) |
|
|
712 | (9) |
|
17.6 Further Satisfiability Parameters |
|
|
721 | (5) |
|
|
726 | (13) |
|
|
727 | (12) |
|
Part II Applications and Extensions |
|
|
|
Chapter 18 Bounded Model Checking |
|
|
739 | (26) |
|
|
|
739 | (3) |
|
|
742 | (1) |
|
18.3 Propositional Encodings |
|
|
743 | (4) |
|
|
747 | (2) |
|
|
749 | (1) |
|
|
750 | (3) |
|
18.7 Completeness with Interpolation |
|
|
753 | (2) |
|
18.8 Invariant Strengthening |
|
|
755 | (1) |
|
|
755 | (1) |
|
|
756 | (9) |
|
|
757 | (8) |
|
Chapter 19 Planning and SAT |
|
|
765 | (26) |
|
|
|
765 | (1) |
|
|
766 | (1) |
|
|
767 | (3) |
|
|
770 | (5) |
|
19.5 Finding a Satisfiable Formula |
|
|
775 | (4) |
|
|
779 | (2) |
|
|
781 | (10) |
|
|
785 | (6) |
|
Chapter 20 Software Verification |
|
|
791 | (28) |
|
|
20.1 Programs use Bit-Vectors |
|
|
791 | (1) |
|
20.2 Formal Models of Software |
|
|
792 | (3) |
|
20.3 Turning Bit-Vector Arithmetic into CNF |
|
|
795 | (3) |
|
20.4 Bounded Model Checking for Software |
|
|
798 | (5) |
|
20.5 Predicate Abstraction using SAT |
|
|
803 | (11) |
|
|
814 | (5) |
|
|
815 | (4) |
|
Chapter 21 Combinatorial Designs by SAT Solvers |
|
|
819 | (40) |
|
|
|
819 | (2) |
|
21.2 Combinatorial Design Problems |
|
|
821 | (24) |
|
21.3 Encoding Design Theory Problems |
|
|
845 | (7) |
|
21.4 Conclusions and Open Problems |
|
|
852 | (7) |
|
|
853 | (6) |
|
Chapter 22 Connections to Statistical Physics |
|
|
859 | (44) |
|
|
|
|
|
|
859 | (2) |
|
22.2 Phase Transitions: Basic Concepts and Illustration |
|
|
861 | (8) |
|
22.3 Phase transitions in random CSPs |
|
|
869 | (9) |
|
22.4 Local search algorithms |
|
|
878 | (4) |
|
22.5 Decimation based algorithms |
|
|
882 | (12) |
|
|
894 | (9) |
|
|
895 | (8) |
|
|
903 | (26) |
|
|
|
|
903 | (1) |
|
|
904 | (2) |
|
23.3 Branch and Bound Algorithms |
|
|
906 | (7) |
|
23.4 Complete Inference in MaxSAT |
|
|
913 | (4) |
|
23.5 Approximation Algorithms |
|
|
917 | (1) |
|
23.6 The MaxSAT Evaluation |
|
|
917 | (1) |
|
23.7 Other Contributions to MaxSAT |
|
|
918 | (1) |
|
|
918 | (1) |
|
|
919 | (10) |
|
|
920 | (9) |
|
Chapter 24 Maximum Satisfiability |
|
|
929 | (64) |
|
|
|
|
|
929 | (2) |
|
24.2 The MaxSAT Formalism |
|
|
931 | (2) |
|
24.3 Encodings and Applications |
|
|
933 | (6) |
|
24.4 Modern MaxSAT Algorithms |
|
|
939 | (27) |
|
24.5 Further Developments |
|
|
966 | (5) |
|
|
971 | (22) |
|
|
972 | (21) |
|
Chapter 25 Model Counting |
|
|
993 | (22) |
|
|
|
|
25.1 Computational Complexity of Model Counting |
|
|
994 | (2) |
|
25.2 Exact Model Counting |
|
|
996 | (7) |
|
25.3 Approximate Model Counting |
|
|
1003 | (7) |
|
|
1010 | (5) |
|
|
1011 | (4) |
|
Chapter 26 Approximate Model Counting |
|
|
1015 | (32) |
|
|
|
|
|
1015 | (5) |
|
26.2 Approximate Model Counting for CNF |
|
|
1020 | (10) |
|
26.3 Handling CNF+XOR Constraints |
|
|
1030 | (2) |
|
26.4 Approximate Model Counting for DNF |
|
|
1032 | (3) |
|
|
1035 | (4) |
|
|
1039 | (8) |
|
|
1040 | (7) |
|
Chapter 27 Non-Clausal SAT and ATPG |
|
|
1047 | (40) |
|
|
|
|
|
1047 | (1) |
|
|
1048 | (3) |
|
27.3 Satisfiability Checking for Boolean Circuits |
|
|
1051 | (13) |
|
27.4 Automatic Test Pattern Generation |
|
|
1064 | (16) |
|
|
1080 | (7) |
|
Chapter 28 Pseudo-Boolean and Cardinality Constraints |
|
|
1087 | (44) |
|
|
|
|
1087 | (1) |
|
|
1088 | (3) |
|
28.3 Decision Problem versus Optimization Problem |
|
|
1091 | (2) |
|
28.4 Expressive Power of Cardinality and Pseudo-Boolean Constraints |
|
|
1093 | (2) |
|
|
1095 | (7) |
|
|
1102 | (23) |
|
|
1125 | (6) |
|
|
1125 | (6) |
|
|
1131 | (26) |
|
|
|
|
1131 | (1) |
|
29.2 Syntax and Semantics |
|
|
1131 | (6) |
|
|
1137 | (3) |
|
29.4 Models and Expressive power |
|
|
1140 | (6) |
|
|
1146 | (4) |
|
29.6 Quantified Horn Formulas and Q2-CNF |
|
|
1150 | (7) |
|
|
1154 | (3) |
|
Chapter 30 QBFs reasoning |
|
|
1157 | (20) |
|
|
|
|
|
1157 | (1) |
|
30.2 Quantified Boolean Logic |
|
|
1157 | (1) |
|
30.3 Applications of QBFs and QBF reasoning |
|
|
1158 | (1) |
|
|
1159 | (13) |
|
30.5 Other approaches, extensions and conclusions |
|
|
1172 | (5) |
|
|
1172 | (5) |
|
Chapter 31 Quantified Boolean Formulas |
|
|
1177 | (46) |
|
|
|
|
|
|
1177 | (1) |
|
|
1178 | (1) |
|
31.3 Proof Systems Based on Q-Resolution |
|
|
1179 | (12) |
|
31.4 Expansion-Based Proof Systems |
|
|
1191 | (7) |
|
|
1198 | (6) |
|
31.6 Extraction of Winning Strategies from Proofs |
|
|
1204 | (3) |
|
31.7 Connections Between Proof Systems |
|
|
1207 | (16) |
|
|
1215 | (8) |
|
Chapter 32 SAT Techniques for Modal and Description Logics |
|
|
1223 | (44) |
|
|
|
|
1223 | (2) |
|
|
1225 | (6) |
|
|
1231 | (11) |
|
|
1242 | (10) |
|
32.5 The OBDD-based Approach |
|
|
1252 | (4) |
|
32.6 The Eager DPLL-based approach |
|
|
1256 | (11) |
|
|
1261 | (6) |
|
Chapter 33 Satisfiability Modulo Theories |
|
|
1267 | (64) |
|
|
|
|
|
|
1267 | (2) |
|
|
1269 | (6) |
|
33.3 Eager Encodings to SAT |
|
|
1275 | (10) |
|
33.4 Integrating Theory Solvers into SAT Engines |
|
|
1285 | (12) |
|
|
1297 | (6) |
|
|
1303 | (7) |
|
33.7 Extensions and Enhancements |
|
|
1310 | (21) |
|
|
1316 | (15) |
|
Chapter 34 Stochastic Boolean Satisfiability |
|
|
1331 | (40) |
|
|
|
1331 | (1) |
|
34.2 Definitions and Notation |
|
|
1331 | (3) |
|
34.3 Complexity of SSAT and Related Problems |
|
|
1334 | (1) |
|
|
1335 | (1) |
|
|
1336 | (1) |
|
34.6 Algorithms and Empirical Results |
|
|
1337 | (17) |
|
34.7 Stochastic Constraint Programming |
|
|
1354 | (2) |
|
|
1356 | (15) |
|
|
1363 | (8) |
Subject Index |
|
1371 | (58) |
Cited Author Index |
|
1429 | (34) |
Contributing Authors and Affiliations |
|
1463 | |