Cuts from proofs: a complete and practical technique for solving linear inequalities over integers
Tóm tắt
We propose a novel, sound, and complete Simplex-based algorithm for solving linear inequalities over integers. Our algorithm, which can be viewed as a semantic generalization of the branch-and-bound technique, systematically discovers and excludes entire subspaces of the solution space containing no integer points. Our main insight is that by focusing on the defining constraints of a vertex, we can compute a proof of unsatisfiability for the intersection of the defining constraints and use this proof to systematically exclude subspaces of the feasible region with no integer points. We show experimentally that our technique significantly outperforms the top four competitors in the QF-LIA category of the SMT-COMP ’08 when solving conjunctions of linear inequalities over integers.
Tài liệu tham khảo
Cousot P, Halbwachs N (1978) Automatic discovery of linear restraints among variables of a program. ACM, New York, pp 84–97
Pugh W (1992) The Omega test: a fast and practical integer programming algorithm for dependence analysis. Commun ACM
Brinkmann R, Drechsler R (2002) RTL-datapath verification using integer linear programming. In: VLSI design, pp 741–746
Amon T, Borriello G, Hu T, Liu J (1997) Symbolic timing verification of timing diagrams using Presburger formulas. In: DAC ’97: Proceedings of the 34th annual conference on design automation. ACM, New York, pp 226–231
Dutertre B, De Moura L (2006) The Yices SMT solver. Technical report, SRI International
De Moura L, Bjørner N (2008) Z3: An efficient SMT solver. Tools and algorithms for the construction and analysis of systems, April 2008, pp 337–340
Barrett C, Tinelli C (2007) CVC3. In: Damm W, Hermanns H (eds) Proceedings of the 19th international conference on computer aided verification. Lecture notes in computer science, vol 4590. Springer, Berlin, pp 298–302
Bruttomesso R, Cimatti A, Franzén A, Griggio A, Sebastiani R (2008) The MathSAT4 SMT solver. In: Proceedings of the 20th international conference on computer aided verification. Springer, Berlin/Heidelberg, pp 299–303
Bofill M, Nieuwenhuis R, Oliveras A, Rodríguez-Carbonell E, Rubio A (2008) The Barcelogic smt solver. In: Proceedings of the 20th international conference on computer aided verification. Springer, Berlin/Heidelberg, pp 294–298
Dantzig G (1963) Linear programming and extensions. Princeton University Press, Princeton
Ganesh V, Berezin S, Dill D (2002) Deciding Presburger arithmetic by model checking and comparisons with other methods. In: FMCAD ’02: Proceedings of the 4th international conference on formal methods in computer-aided design. Springer, London, pp 171–186
Schrijver A (1986) Theory of linear and integer programming. Wiley, New York
Nemhauser GL, Wolsey L (1988) Integer and combinatorial optimization. Wiley, New York
Storjohann A, Labahn G (1996) Asymptotically fast computation of Hermite normal forms of integer matrices. In: Proc int’l symp on symbolic and algebraic computation: ISSAC ’96. ACM Press, New York, pp 259–266
http://gmplib.org/: Gnu mp bignum library
Cohen H (1993) A course in computational algebraic number theory. Graduate texts in mathematics. Springer, Berlin
Domich P, Kannan R, Trotter L (1987) J.: Hermite normal form computation using modulo determinant arithmetic. Mathematics of Operations Research 12(1):50–59
http://www.smtcomp.org: Smt-comp’08
http://www.gnu.org/software/glpk/: Glpk (gnu linear programming kit)
http://lpsolve.sourceforge.net/5.5/: lp_solve reference guide
http://www.ilog.com/products/cplex/: Cplex
Seshia S, Bryant R (2004) Deciding quantifier-free Presburger formulas using parameterized solution bounds
Jain H, Clarke E, Grumberg O (2008) Efficient Craig interpolation for linear Diophantine (dis)equations and linear modular equations. In: Proceedings of the 20th international conference on computer aided verification. Springer, Berlin/Heidelberg, pp 254–267
Wolper P, Boigelot B (1995) An automata-theoretic approach to Presburger arithmetic constraints. In: Proceedings of the symposium on static analysis (SAS), pp 21–32
Craig W (1957) Three uses of the Herbrand-Gentzen theorem in relating model theory and proof theory. J Symb Log 269–285
McMillan KL (2005) Applications of Craig interpolants in model checking. In: Proceedings of tools and algorithms for the construction and analysis of systems (TACAS), pp 1–12