Searching for truth: techniques for satisfiability of boolean formulas

Given a propositional Boolean formula, the problem of determining whether it can evaluate to the value true is called the Boolean Satisfiability Problem, or SAT. SAT is one of the most important and widely studied problems in computer science. Researchers have been investigating algorithms to solve SAT problems for more than forty years and great progress has been made. In practice, SAT is a core problem that appears in many applications in Electronic Design Automation (EDA), Artificial Intelligence (AI) and other areas. This thesis investigates the practical problem of using SAT solvers as a feasible reasoning and deduction engine in real world applications. To facilitate the application of SAT to real world situations, the problems are attacked on several fronts. Even though researchers have been studying SAT solving algorithms for a long time, efforts were mainly concentrated on improving the algorithms to prune search spaces. In this thesis, the implementation issues of SAT solvers are studied. Some of the most widely used techniques in SAT solving algorithms are quantitatively evaluated. Techniques on efficient and effective implementation of these techniques to achieve the best performance are provided. The SAT solver developed by utilizing these results can often achieve 10–100x speedups over other existing SAT solvers. It is widely used by many research groups and is widely regarded as one of the best SAT solvers available. For some applications, it is often desirable for the SAT solver to have some special abilities besides simply determining the satisfiability of a Boolean formula. Two of such special abilities are discussed in this thesis. For mission critical applications, the SAT solvers employed are often required to provide a means for third party checkers to check the deduction process in order to verify the correctness of the proof. In the thesis a method to provide such a certification procedure is discussed. The second ability discussed is to find a small unsatisfiable sub-formula from an unsatisfiable SAT instance. This ability is often useful for debugging purposes for some applications that use SAT. This thesis discusses how these two special abilities are related and how to implement them on existing SAT solver frameworks. Extensive experimental results are provided to prove the practical feasibility of the approach. For some of the Boolean reasoning tasks, propositional Boolean formulas are not sufficient. This thesis discusses the problem of deciding the satisfiability of Quantified Boolean Formulas (QBF). A Quantified Boolean formula contains both universal and existential quantifiers. Therefore, it is more expressive than a propositional Boolean formula. A technique called learning and non-chronological backtracking, which has been shown to work very well on SAT solvers, is applied on a QBF solver. Experimental results show that these techniques, when properly adapted, can greatly improve the QBF solver as well. Overall, this thesis is about properly engineering algorithms to make tools that can help solving practical problems. In particular, the tools discussed are SAT and QBF solvers. By carefully examine the algorithms and their implementation details, improvements have been made on these solvers that can help wider employment of them as feasible deduction engines for real world applications.

[1]  Hilary Putnam,et al.  A Computing Procedure for Quantification Theory , 1960, JACM.

[2]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[3]  Stephen A. Cook,et al.  The complexity of theorem-proving procedures , 1971, STOC.

[4]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[5]  Hideo Fujiwara,et al.  The Complexity of Fault Detection Problems for Combinational Logic Circuits , 1982, IEEE Transactions on Computers.

[6]  R. Burkard Quadratic Assignment Problems , 1984 .

[7]  A. P. Sistla,et al.  The complexity of propositional linear temporal logics , 1985, JACM.

[8]  David A. Plaisted,et al.  A Structure-Preserving Clause Form Translation , 1986, J. Symb. Comput..

[9]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[10]  Alasdair Urquhart,et al.  Formal Languages]: Mathematical Logic--mechanical theorem proving , 2022 .

[11]  Albert R. Wang,et al.  Logic verification using binary decision diagrams in a logic synthesis environment , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[12]  C. Leonard Berman,et al.  Circuit width, register allocation, and ordered binary decision diagrams , 1991, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[13]  C.H. Papadimitriou,et al.  On selecting a satisfying truth assignment , 1991, [1991] Proceedings 32nd Annual Symposium of Foundations of Computer Science.

[14]  Vishwani D. Agrawal,et al.  A transitive closure based algorithm for test generation , 1991, 28th ACM/IEEE Design Automation Conference.

[15]  Randal E. Bryant,et al.  Efficient implementation of a BDD package , 1991, DAC '90.

[16]  Hector J. Levesque,et al.  A New Method for Solving Hard Satisfiability Problems , 1992, AAAI.

[17]  Bart Selman,et al.  Planning as Satisfiability , 1992, ECAI.

[18]  Tracy Larrabee,et al.  Test pattern generation using Boolean satisfiability , 1992, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[19]  Hector J. Levesque,et al.  Hard and Easy Distributions of SAT Problems , 1992, AAAI.

[20]  Jacques Carlier,et al.  SAT versus UNSAT , 1993, Cliques, Coloring, and Satisfiability.

[21]  Patrick Prosser,et al.  HYBRID ALGORITHMS FOR THE CONSTRAINT SATISFACTION PROBLEM , 1993, Comput. Intell..

[22]  Jun Gu,et al.  Local search for satisfiability (SAT) problem , 1993, IEEE Trans. Syst. Man Cybern..

[23]  James M. Crawford,et al.  Experimental Results on the Crossover Point inSatis ability , 1993 .

[24]  Allen Van Gelder,et al.  Satisfiability testing with more reasoning and less guessing , 1995, Cliques, Coloring, and Satisfiability.

[25]  Enrico Macii,et al.  Algebraic decision diagrams and their applications , 1993, Proceedings of 1993 International Conference on Computer Aided Design (ICCAD).

[26]  Richard Rudell Dynamic variable ordering for ordered binary decision diagrams , 1993, ICCAD.

[27]  Shin-ichi Minato,et al.  Zero-Suppressed BDDs for Set Manipulation in Combinatorial Problems , 1993, 30th ACM/IEEE Design Automation Conference.

[28]  William M. Spears,et al.  Simulated annealing for hard satisfiability problems , 1993, Cliques, Coloring, and Satisfiability.

[29]  David L. Dill,et al.  Automatic verification of Pipelined Microprocessor Control , 1994, CAV.

[30]  Hansong Zhang,et al.  Implementing the Davis-Putnam Algorithm by Tries , 1994 .

[31]  Joao Marques-Silva,et al.  Efficient and robust test generation-based timing analysis , 1994, Proceedings of IEEE International Symposium on Circuits and Systems - ISCAS '94.

[32]  David A. McAllester,et al.  GSAT and Dynamic Backtracking , 1994, KR.

[33]  J. Freeman Improvements to propositional satisfiability search algorithms , 1995 .

[34]  Hans Kleine Büning,et al.  Resolution for Quantified Boolean Formulas , 1995, Inf. Comput..

[35]  Randal E. Bryant,et al.  Verification of Arithmetic Circuits with Binary Moment Diagrams , 1995, 32nd Design Automation Conference.

[36]  Binary decision diagrams and beyond: enabling technologies for formal verification , 1995, ICCAD.

[37]  J. F. Groote,et al.  The safety guaranteeing system at station Hoorn-Kersenboogerd , 1994, COMPASS '95 Proceedings of the Tenth Annual Conference on Computer Assurance Systems Integrity, Software Safety and Process Security'.

[38]  Robert K. Brayton,et al.  Combinational test generation using satisfiability , 1996, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[39]  Fabio Somenzi,et al.  Logic synthesis and verification algorithms , 1996 .

[40]  Hantao Zhang,et al.  An Efficient Algorithm for Unit Propagation , 1996 .

[41]  Jun Gu,et al.  Algorithms for the satisfiability (SAT) problem: A survey , 1996, Satisfiability Problem: Theory and Applications.

[42]  Maria Paola Bonacina,et al.  PSATO: a Distributed Propositional Prover and its Application to Quasigroup Problems , 1996, J. Symb. Comput..

[43]  Richard E. Ladner,et al.  The influence of caches on the performance of heaps , 1996, JEAL.

[44]  John Harrison,et al.  Stålmarck's Algorithm as a HOL Derived Rule , 1996, TPHOLs.

[45]  W. M. Spears,et al.  A NN algorithm for Boolean satisfiability problems , 1996, Proceedings of International Conference on Neural Networks (ICNN'96).

[46]  David G. Mitchell,et al.  Finding hard instances of the satisfiability problem: A survey , 1996, Satisfiability Problem: Theory and Applications.

[47]  Roberto J. Bayardo,et al.  Using CSP Look-Back Techniques to Solve Real-World SAT Instances , 1997, AAAI/IAAI.

[48]  Bart Selman,et al.  Evidence for Invariants in Local Search , 1997, AAAI/IAAI.

[49]  Chu Min Li,et al.  Heuristics Based on Unit Propagation for Satisfiability Problems , 1997, IJCAI.

[50]  Lakhdar Sais,et al.  Tabu Search for SAT , 1997, AAAI/IAAI.

[51]  Hantao Zhang,et al.  SATO: An Efficient Propositional Prover , 1997, CADE.

[52]  Bart Selman,et al.  Ten Challenges in Propositional Reasoning and Search , 1997, IJCAI.

[53]  Tad Hogg,et al.  An Economics Approach to Hard Computational Problems , 1997, Science.

[54]  Bart Selman,et al.  Boosting Combinatorial Search Through Randomization , 1998, AAAI/IAAI.

[55]  Rolf Drechsler,et al.  Fast exact minimization of BDDs , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[56]  Holger H. Hoos,et al.  Stochastic Local Search-Methods , 1998 .

[57]  Benjamin W. Wah,et al.  A Discrete Lagrangian-Based Global-Search Method for Solving Satisfiability Problems , 1996, J. Glob. Optim..

[58]  Holger H. Hoos,et al.  Stochastic local search - methods, models, applications , 1998, DISKI.

[59]  Joao Marques-Silva,et al.  Combinational equivalence checking using satisfiability and recursive learning , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[60]  Masahiro Fujita,et al.  Symbolic model checking using SAT procedures instead of BDDs , 1999, DAC '99.

[61]  Joao Marques-Silva,et al.  GRASP: A Search Algorithm for Propositional Satisfiability , 1999, IEEE Trans. Computers.

[62]  Armin Biere,et al.  Symbolic Model Checking without BDDs , 1999, TACAS.

[63]  Holger H. Hoos,et al.  On the Run-time Behaviour of Stochastic Local Search Algorithms for SAT , 1999, AAAI/IAAI.

[64]  Bart Selman,et al.  Unifying SAT-based and Graph-based Planning , 1999, IJCAI.

[65]  Joao Marques-Silva,et al.  The Impact of Branching Heuristics in Propositional Satisfiability Algorithms , 1999, EPIA.

[66]  Jussi Rintanen,et al.  Improvements to the Evaluation of Quantified Boolean Formulae , 1999, IJCAI.

[67]  Jussi Rintanen,et al.  Constructing Conditional Plans by a Theorem-Prover , 1999, J. Artif. Intell. Res..

[68]  Kurt Keutzer,et al.  Why is ATPG easy? , 1999, DAC '99.

[69]  Elena Marchiori,et al.  A flipping genetic algorithm for hard 3-SAT problems , 1999 .

[70]  Philippe Chatalic,et al.  ZRES: The Old Davis-Putman Procedure Meets ZBDD , 2000, CADE.

[71]  Roberto J. Bayardo,et al.  Counting Models Using Connected Components , 2000, AAAI/IAAI.

[72]  Igor L. Markov,et al.  PBS: A Backtrack-Search Pseudo-Boolean Solver and Optimizer , 2000 .

[73]  Li Xiao,et al.  Improving memory performance of sorting algorithms , 2000, JEAL.

[74]  Ofer Strichman,et al.  Tuning SAT Checkers for Bounded Model Checking , 2000, CAV.

[75]  Joao Marques-Silva Algebraic Simplification Techniques for Propositional Satisfiability , 2000, CP.

[76]  Vasco M. Manquinho,et al.  On using satisfiability-based pruning techniques in covering algorithms , 2000, DATE '00.

[77]  Philippe Chatalic,et al.  Multi-resolution on compressed sets of clauses , 2000, Proceedings 12th IEEE Internationals Conference on Tools with Artificial Intelligence. ICTAI 2000.

[78]  Zijiang Yang,et al.  SAT-Based Image Computation with Application in Reachability Analysis , 2000, FMCAD.

[79]  Parosh Aziz Abdulla,et al.  Symbolic Reachability Analysis Based on SAT-Solvers , 2000, TACAS.

[80]  Chu Min Li,et al.  Integrating Equivalency Reasoning into Davis-Putnam Procedure , 2000, AAAI/IAAI.

[81]  Ofer Shtrichman Tuning SAT Checkers for Bounded Model Checking , 2000, CAV 2000.

[82]  Mary Sheeran,et al.  Checking Safety Properties Using Induction and a SAT-Solver , 2000, FMCAD.

[83]  Inês Lynce,et al.  The Puzzling Role of Simplification in Propositional Satisfiability , 2001 .

[84]  Armando Tacchella,et al.  Benefits of Bounded Model Checking at an Industrial Setting , 2001, CAV.

[85]  M. Moskewicz,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[86]  Daniel Le Berre Exploiting the real power of unit propagation lookahead , 2001, Electron. Notes Discret. Math..

[87]  Dale Schuurmans,et al.  The Exponentiated Subgradient Algorithm for Heuristic Boolean Programming , 2001, IJCAI.

[88]  Inês Lynce,et al.  Stochastic Systematic Search Algorithms for Satisfiability , 2001, Electron. Notes Discret. Math..

[89]  Per Bjesse,et al.  Finding Bugs in an Alpha Microprocessor Using Satisfiability Solvers , 2001, CAV.

[90]  Matthew W. Moskewicz,et al.  Cha : Engineering an e cient SAT solver , 2001, DAC 2001.

[91]  Armando Tacchella,et al.  QUBE: A System for Deciding Quantified Boolean Formulas Satisfiability , 2001, IJCAR.

[92]  Antonio Sassano,et al.  Restoring Satisfiability or Maintaining Unsatisfiability by finding small Unsatisfiable Subformulae , 2001, Electron. Notes Discret. Math..

[93]  Sharad Malik,et al.  Efficient conflict driven learning in a Boolean satisfiability solver , 2001, IEEE/ACM International Conference on Computer Aided Design. ICCAD 2001. IEEE/ACM Digest of Technical Papers (Cat. No.01CH37281).

[94]  Edward A. Hirsch,et al.  Solving Boolean Satisfiability Using Local Search Guided by Unit Clause Elimination , 2001, CP.

[95]  Jussi Rintanen,et al.  Partial Implicit Unfolding in the Davis-Putnam Procedure for Quantified Boolean Formulae , 2001, LPAR.

[96]  Kedar S. Namjoshi,et al.  Certifying Model Checkers , 2001, CAV.

[97]  Gilles Dequen,et al.  A backbone-search heuristic for efficient solving of hard 3-SAT formulae , 2001, IJCAI.

[98]  Malay K. Ganai,et al.  Circuit-based Boolean reasoning , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[99]  Robert K. Brayton,et al.  Using SAT for combinational equivalence checking , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.

[100]  Armando Tacchella,et al.  Backjumping for Quantified Boolean Logic satisfiability , 2001, Artif. Intell..

[101]  Fahiem Bacchus,et al.  Enhancing Davis Putnam with extended binary clause reasoning , 2002, AAAI/IAAI.

[102]  David L. Dill,et al.  Faster Proof Checking in the Edinburgh Logical Framework , 2002, CADE.

[103]  Karem A. Sakallah,et al.  Satometer:: how much have we searched? , 2002, DAC '02.

[104]  Reinhold Letz,et al.  Lemma and Model Caching in Decision Procedures for Quantified Boolean Formulas , 2002, TABLEAUX.

[105]  Djamal Habet,et al.  A Hybrid Approach for SAT , 2002, CP.

[106]  Fahiem Bacchus Exploring the Computational Tradeoff of more Reasoning and Less Searching , 2002 .

[107]  Allen Van Gelder Extracting (Easily) Checkable Proofs from a Satisfiability Solver that Employs both Preorder and Postorder Resolution , 2002, ISAIM.

[108]  Armando Tacchella,et al.  Learning for quantified boolean logic satisfiability , 2002, AAAI/IAAI.

[109]  Slawomir Pilarski,et al.  SAT with partial clauses and back-leaps , 2002, DAC '02.

[110]  Sharad Malik,et al.  Towards a Symmetric Treatment of Satisfaction and Conflicts in Quantified Boolean Formula Evaluation , 2002, CP.

[111]  Kenneth L. McMillan,et al.  Applying SAT Methods in Unbounded Symbolic Model Checking , 2002, CAV.

[112]  Jon M. Kleinberg,et al.  A deterministic (2-2/(k+1))n algorithm for k-SAT based on local search , 2002, Theor. Comput. Sci..

[113]  Karem A. Sakallah,et al.  Search-based SAT using zero-suppressed BDDs , 2002, Proceedings 2002 Design, Automation and Test in Europe Conference and Exhibition.

[114]  Sharad Malik,et al.  Conflict driven learning in a quantified Boolean Satisfiability solver , 2002, ICCAD 2002.

[115]  Adnan Darwiche,et al.  A compiler for deterministic, decomposable negation normal form , 2002, AAAI/IAAI.

[116]  Geoff Sutcliffe,et al.  System Description: GrAnDe 1.0 , 2002, CADE.

[117]  Per Bjesse,et al.  A proof engine approach to solving combinational design automation problems , 2002, DAC '02.

[118]  Randal E. Bryant,et al.  Effective use of Boolean satisfiability procedures in the formal verification of superscalar and VLIW microprocessors , 2003, J. Symb. Comput..

[119]  Chu Min Li,et al.  On the limit of branching rules for hard random unsatisfiable 3-SAT , 2003, Discret. Appl. Math..

[120]  Kenneth L. McMillan,et al.  Automatic Abstraction without Counterexamples , 2003, TACAS.

[121]  Eugene Goldberg,et al.  Verification of proofs of unsatisfiability for CNF formulas , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[122]  Sharad Malik,et al.  Validating SAT solvers using an independent resolution-based checker: practical implementations and other applications , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[123]  Dhiraj K. Pradhan,et al.  Recursive learning: a new implication technique for efficient solutions to CAD problems-test, verification, and optimization , 1994, The IEEE International Symposium on Circuits and Systems, 2003. Tutorial Guide: ISCAS 2003..

[124]  Sharad Malik,et al.  Cache Performance of SAT Solvers: a Case Study for Efficient Implementation of Algorithms , 2003, SAT.

[125]  V. Vinay,et al.  Branching rules for satisfiability , 1995, Journal of Automated Reasoning.

[126]  Edward A. Hirsch,et al.  New Worst-Case Upper Bounds for SAT , 2000, Journal of Automated Reasoning.

[127]  Jan Friso Groote,et al.  The Propositional Formula Checker HeerHugo , 2000, Journal of Automated Reasoning.

[128]  Marco Schaerf,et al.  An Algorithm to Evaluate Quantified Boolean Formulae and Its Experimental Evaluation , 2002, Journal of Automated Reasoning.

[129]  Jinchang Wang,et al.  Solving propositional satisfiability problems , 1990, Annals of Mathematics and Artificial Intelligence.