SDSAT: Tight Integration of Small Domain Encoding and Lazy Approaches in Solving Difference Logic

Existing difference logic (DL) solvers can be broadly classified as eager or lazy, each with its own merits and de-merits. We propose a novel difference logic solver SDSAT that combines the strengths of both these approaches and provides a robust performance over a wide set of benchmarks. The solver SDSAT works in two phases: allocation and solve. In the allocation phase, it allocates non-uniform adequate ranges for variables appearing in difference predicates. This phase is similar to previous small domain encoding approaches, but uses a novel algorithm Nu-SMOD with 1-2 orders of magnitude improvement in performance and smaller ranges for variables. Furthermore, the difference logic formula is not transformed into an equi-satisfiable Boolean formula in a single step, but rather done lazily in the following phase. In the solve phase, SDSAT uses a lazy refinement approach to search for a satisfying model within the allocated ranges. Thus, any partially DL-theory consistent model can be discarded if it cannot be satisfied within the allocated ranges. Note the crucial difference: in eager approaches, such a partially consistent model is not allowed in the first place, while in lazy approaches such a model is never discarded. Moreover, we dynamically refine the allocated ranges and search for a feasible solution within the updated ranges. This combined approach benefits from both the smaller search space (as in eager approaches) and also from the theory-specific graph-based algorithms (characteristic of lazy approaches). Experimental results show that our method is robust and always better than or comparable to state of-the art solvers using similar eager or lazy techniques.

[1]  M. H. van Emden,et al.  Interval arithmetic: From principles to implementation , 2001, JACM.

[2]  Natarajan Shankar,et al.  ICS: Integrated Canonizer and Solver , 2001, CAV.

[3]  Chao Wang,et al.  Predicate learning and selective theory deduction for a difference logic solver , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[4]  Enrico Giunchiglia,et al.  TSAT++: an Open Platform for Satisfiability Modulo Theories , 2005, Electron. Notes Theor. Comput. Sci..

[5]  Wilhelm Ackermann,et al.  Solvable Cases Of The Decision Problem , 1954 .

[6]  Sanjit A. Seshia,et al.  Modeling and Verifying Systems Using a Logic of Counter Arithmetic with Lambda Expressions and Uninterpreted Functions , 2002, CAV.

[7]  Amir Pnueli,et al.  The Small Model Property: How Small Can It Be? , 2002, Inf. Comput..

[8]  Aarti Gupta,et al.  SDSAT: Tight Integration of Small Domain Encoding and Lazy Approaches in a Separation Logic Solver , 2006, TACAS.

[9]  Albert Oliveras,et al.  DPLL(T) with Exhaustive Theory Propagation and Its Application to Difference Logic , 2005, CAV.

[10]  Karem A. Sakallah,et al.  A Scalable Method for Solving Satisfiability of Integer Linear Arithmetic Logic , 2005, SAT.

[11]  Shuvendu K. Lahiri,et al.  Interpolant based Decision Procedure for Quantifier-Free Presburger Arithmetic , 2007, J. Satisf. Boolean Model. Comput..

[12]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[13]  Junehwa Song,et al.  Solving Difference Constraints Incrementally , 1995 .

[14]  David L. Dill,et al.  CVC: A Cooperating Validity Checker , 2002, CAV.

[15]  Kwang-Ting Cheng,et al.  An efficient finite-domain constraint solver for circuits , 2004, Proceedings. 41st Design Automation Conference, 2004..

[16]  Bernd Finkbeiner,et al.  Satisfiability Checking with Difference Constraints , 2005 .

[17]  Vipin Kumar,et al.  Algorithms for Constraint-Satisfaction Problems: A Survey , 1992, AI Mag..

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

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

[20]  Shuvendu K. Lahiri,et al.  Deciding CLU Logic Formulas via Boolean and Pseudo-Boolean Encodings , 2002 .

[21]  Sanjit A. Seshia,et al.  A hybrid SAT-based decision procedure for separation logic with uninterpreted functions , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[22]  Oded Maler,et al.  Fast and Flexible Difference Constraint Propagation for DPLL(T) , 2006, SAT.

[23]  Joonyoung Kim,et al.  SATIRE: A new incremental satisfiability engine , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[24]  Fabio Somenzi,et al.  Finite Instantiations for Integer Difference Logic , 2006, 2006 Formal Methods in Computer Aided Design.

[25]  Navendu Jain,et al.  Verification of Timed Automata via Satisfiability Checking , 2002, FTRTFT.

[26]  Dorit S. Hochba,et al.  Approximation Algorithms for NP-Hard Problems , 1997, SIGA.

[27]  V. Pratt Two Easy Theories Whose Combination is Hard , 2002 .

[28]  Sharad Malik,et al.  The Quest for Efficient Boolean Satisfiability Solvers , 2002, CAV.

[29]  B. E. Eckbo,et al.  Appendix , 1826, Epilepsy Research.

[30]  Joël Ouaknine,et al.  Abstraction-Based Satisfiability Solving of Presburger Arithmetic , 2004, CAV.

[31]  Ofer Strichman,et al.  Deciding Separation Formulas with SAT , 2002, CAV.

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

[33]  Bruno Dutertre,et al.  A Fast Linear-Arithmetic Solver for DPLL(T) , 2006, CAV.

[34]  Andrew V. Goldberg,et al.  Negative-cycle detection algorithms , 1996, Math. Program..

[35]  Aart J. C. Bik,et al.  Implementation of fourier - motzkin elimina - tion , 1994 .

[36]  Egon Balas,et al.  The Shifting Bottleneck Procedure for Job Shop Scheduling , 1988 .

[37]  Marco Bozzano,et al.  The MathSAT 3 System , 2005, CADE.

[38]  Amir Pnueli,et al.  Range Allocation for Separation Logic , 2004, CAV.