CirCUs: A Hybrid Satisfiability Solver

CirCUs is a satisfiability solver that works on a combination of an And-Inverter-Graph (AIG), Conjunctive Normal Form (CNF) clauses, and Binary Decision Diagrams (BDDs). We show how BDDs are used by CirCUs to help in the solution of SAT instances given in CNF. Specifically, the clauses are sorted by solving a hypergraph linear arrangement problem. Then they are clustered by an algorithm that strives to avoid explosion in the resulting BDD sizes. If clustering results in a single diagram, the SAT instance is solved directly. Otherwise, search for a satisfying assignment is conducted on the original clauses, enhanced with information extracted from the BDDs. We also describe a new decision variable selection heuristic that is based on recognizing that the variables involved in a conflict clause are often best treated as a related group. We present experimental results that demonstrate CirCUs’s efficiency especially for medium-size SAT instances that are hard to solve by traditional solvers based on DPLL.

[1]  J.R. Burch,et al.  Tight integration of combinational verification methods , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

[2]  Chao Wang,et al.  Learning from BDDs in SAT-based bounded model checking , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

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

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

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

[6]  Sharad Malik,et al.  Combining strengths of circuit-based and CNF-based algorithms for a high-performance SAT solver , 2002, DAC '02.

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

[8]  Joao Marques-Silva,et al.  GRASP-A new search algorithm for satisfiability , 1996, Proceedings of International Conference on Computer Aided Design.

[9]  Miroslav N. Velev,et al.  Exploiting signal unobservability for efficient translation to CNF in formal verification of microprocessors , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[10]  Andreas Kuehlmann,et al.  Equivalence checking using cuts and heaps , 1997, DAC.

[11]  Tsutomu Sasao,et al.  Logic Synthesis and Optimization , 1997 .

[12]  K. Sakallah,et al.  MINCE: A Static Global Variable-Ordering for SAT and BDD , 2001 .

[13]  Alan J. Hu,et al.  Efficient Verification with BDDs using Implicitly Conjoined Invariants , 1993, CAV.

[14]  Zijiang Yang,et al.  Dynamic detection and removal of inactive clauses in SAT with application in image computation , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[15]  David L. Dill,et al.  Checking Satisfiability of First-Order Formulas by Incremental Translation to SAT , 2002, CAV.

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

[17]  Eugene Goldberg,et al.  BerkMin: A Fast and Robust Sat-Solver , 2002, Discret. Appl. Math..

[18]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[19]  A. Campbell,et al.  Progress in Artificial Intelligence , 1995, Lecture Notes in Computer Science.

[20]  Eugene Goldberg,et al.  BerkMin: A Fast and Robust Sat-Solver , 2002 .

[21]  James H. Kukula,et al.  Checking satisfiability of a conjunction of BDDs , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[22]  William McCune,et al.  Automated Deduction—CADE-14 , 1997, Lecture Notes in Computer Science.

[23]  Fabio Somenzi,et al.  CirCUs: A Satisfiability Solver Geared towards Bounded Model Checking , 2004, CAV.

[24]  João P. Silva The Impact of Branching Heuristics in Propositional Satisfiability Algorithms , 1999 .

[25]  Neil R. Quinn The placement problem as viewed from the physics of classical mechanics , 1975, DAC '75.

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

[27]  Michal Kouril,et al.  SBSAT: a State-Based, BDD-Based Satisfiability Solver , 2003, SAT.

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

[29]  Robert K. Brayton,et al.  Implicit state enumeration of finite state machines using BDD's , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[30]  Bernd Becker,et al.  Conflict-Based Selection of Branching Rules , 2003, SAT.

[31]  In-Ho Moon,et al.  To split or to conjoin: the question in image computation , 2000, DAC.

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

[33]  F. Somenzi,et al.  A New Algorithm for 0-1 Programming Based on Binary Decision Diagrams , 1993 .

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

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

[36]  Fabio Somenzi,et al.  Fine-Grain Conjunction Scheduling for Symbolic Reachability Analysis , 2002, TACAS.

[37]  Eugenio Morreale,et al.  Recursive Operators for Prime Implicant and Irredundant Normal Form Determination , 1970, IEEE Transactions on Computers.

[38]  Paolo Liberatore,et al.  On the complexity of choosing the branching literal in DPLL , 2000, Artif. Intell..

[39]  Edmund M. Clarke,et al.  Representing circuits more efficiently in symbolic model checking , 1991, 28th ACM/IEEE Design Automation Conference.

[40]  Tiziano Villa,et al.  VIS: A System for Verification and Synthesis , 1996, CAV.

[41]  In-Ho Moon,et al.  Border-Block Triangular Form and Conjunction Schedule in Image Computation , 2000, FMCAD.

[42]  Igor L. Markov,et al.  FORCE: a fast and easy-to-implement variable-ordering heuristic , 2003, GLSVLSI '03.