A Practical Approach to Satisability Modulo Linear Integer Arithmetic

We present a detailed description of a theory solver for Linear Integer Arithmetic (LA(Z)) in a lazy SMT context. Rather than focusing on a single technique that guarantees theoretical completeness, the solver makes extensive use of layering and heuristics for combining different techniques in order to achieve good performance in practice. The viability of our approach is demonstrated by an empirical evaluation on a wide range of benchmarks, showing significant performance improvements over current state-of-the-art solvers.

[1]  Bruno Dutertre,et al.  Integrating Simplex with DPLL(T ) , 2006 .

[2]  Alexander Schrijver,et al.  Theory of linear and integer programming , 1986, Wiley-Interscience series in discrete mathematics and optimization.

[3]  Isil Dillig,et al.  Cuts from proofs: a complete and practical technique for solving linear inequalities over integers , 2009, Formal Methods Syst. Des..

[4]  Alberto Griggio,et al.  An Effective SMT Engine for Formal Verification , 2009 .

[5]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[6]  Marco Bozzano,et al.  MathSAT: Tight Integration of SAT and Mathematical Decision Procedures , 2005, Journal of Automated Reasoning.

[7]  Cesare Tinelli,et al.  Splitting on Demand in SAT Modulo Theories , 2006, LPAR.

[8]  Daniel Kroening,et al.  Interpolating Quantifier-Free Presburger Arithmetic , 2010, LPAR.

[9]  Roberto Bruttomesso,et al.  The OpenSMT Solver , 2010, TACAS.

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

[11]  Cesare Tinelli,et al.  Solving SAT and SAT Modulo Theories: From an abstract Davis--Putnam--Logemann--Loveland procedure to DPLL(T) , 2006, JACM.

[12]  Cesare Tinelli,et al.  Satisfiability Modulo Theories , 2021, Handbook of Satisfiability.

[13]  Z. Hanna,et al.  A Lazy and Layered SMT ( B V ) Solver for Hard Industrial Verification Problems ⋆ , 2007 .

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

[15]  Albert Oliveras,et al.  SAT Modulo the Theory of Linear Arithmetic: Exact, Inexact and Commercial Solvers , 2008, SAT.

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

[17]  William Pugh,et al.  The Omega test: A fast and practical integer programming algorithm for dependence analysis , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[18]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[19]  Tobias Achterberg,et al.  Constraint integer programming , 2007 .

[20]  Fabio Somenzi,et al.  Efficient Term-ITE Conversion for Satisfiability Modulo Theories , 2009, SAT.

[21]  Herbert B. Enderton,et al.  A mathematical introduction to logic , 1972 .

[22]  A. Storjohann Algorithms for matrix canonical forms , 2000 .

[23]  Marco Bozzano,et al.  Encoding RTL Constructs for MathSAT: a Preliminary Report , 2006, Electron. Notes Theor. Comput. Sci..

[24]  Albert Oliveras,et al.  The Barcelogic SMT Solver , 2008, CAV.