SDSAT: Tight Integration of Small Domain Encoding and Lazy Approaches in a Separation Logic Solver

Existing Separation Logic (a.k.a Difference Logic, DL) solvers can be broadly classified as eager or lazy, each with its own merits and de-merits. We propose a novel Separation 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 separation 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 Separation Logic formula is not transformed into an equi-satisfiable Boolean formula in one 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 can not 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.

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

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

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

[4]  Leo Joskowicz,et al.  Solving Systems of Difference Constraints Incrementally , 1999, Algorithmica.

[5]  David L. Dill,et al.  Validity Checking for Combinations of Theories with Equality , 1996, FMCAD.

[6]  Dorit S. Hochbaum,et al.  Approximation Algorithms for NP-Hard Problems , 1996 .

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

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

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

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

[11]  Chao Wang,et al.  Deciding Separation Logic Formulae by SAT and Incremental Negative Cycle Elimination , 2005, LPAR.

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

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

[14]  Randal E. Bryant,et al.  Formal Verification of Digital Circuits Using Symbolic Ternary System Models , 1990, CAV.

[15]  Marco Bozzano,et al.  An Incremental and Layered Procedure for the Satisfiability of Linear Arithmetic Logic , 2005, TACAS.

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

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

[18]  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).

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

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

[21]  Amir Pnueli,et al.  The small model property: how small can it be? , 2002 .

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

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

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

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

[26]  Amir Pnueli,et al.  Erratum ("The small model property: how small can it be?" Volume 178, Number 1 [2002], pages 279-293) , 2003, Inf. Comput..

[27]  Andrew V. Goldberg,et al.  Negative-Cycle Detection Algorithms , 1996, ESA.

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

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

[30]  R. K. Shyamasundar,et al.  Introduction to algorithms , 1996 .

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

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