Formal Methods in System Design

, Volume 39, Issue 3, pp 246–260 | Cite as

Cuts from proofs: a complete and practical technique for solving linear inequalities over integers

Article

Abstract

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.

Keywords

Linear inequalities over integers Algorithms Constraint solving 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Cousot P, Halbwachs N (1978) Automatic discovery of linear restraints among variables of a program. ACM, New York, pp 84–97 Google Scholar
  2. 2.
    Pugh W (1992) The Omega test: a fast and practical integer programming algorithm for dependence analysis. Commun ACM Google Scholar
  3. 3.
    Brinkmann R, Drechsler R (2002) RTL-datapath verification using integer linear programming. In: VLSI design, pp 741–746 Google Scholar
  4. 4.
    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 CrossRefGoogle Scholar
  5. 5.
    Dutertre B, De Moura L (2006) The Yices SMT solver. Technical report, SRI International Google Scholar
  6. 6.
    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 Google Scholar
  7. 7.
    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 CrossRefGoogle Scholar
  8. 8.
    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 CrossRefGoogle Scholar
  9. 9.
    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 CrossRefGoogle Scholar
  10. 10.
    Dantzig G (1963) Linear programming and extensions. Princeton University Press, Princeton MATHGoogle Scholar
  11. 11.
    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 Google Scholar
  12. 12.
    Schrijver A (1986) Theory of linear and integer programming. Wiley, New York MATHGoogle Scholar
  13. 13.
    Nemhauser GL, Wolsey L (1988) Integer and combinatorial optimization. Wiley, New York MATHGoogle Scholar
  14. 14.
    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 CrossRefGoogle Scholar
  15. 15.
    http://gmplib.org/: Gnu mp bignum library
  16. 16.
    Cohen H (1993) A course in computational algebraic number theory. Graduate texts in mathematics. Springer, Berlin MATHGoogle Scholar
  17. 17.
    Domich P, Kannan R, Trotter L (1987) J.: Hermite normal form computation using modulo determinant arithmetic. Mathematics of Operations Research 12(1):50–59 CrossRefMATHMathSciNetGoogle Scholar
  18. 18.
    http://www.smtcomp.org: Smt-comp’08
  19. 19.
    http://www.gnu.org/software/glpk/: Glpk (gnu linear programming kit)
  20. 20.
    http://lpsolve.sourceforge.net/5.5/: lp_solve reference guide
  21. 21.
  22. 22.
    Seshia S, Bryant R (2004) Deciding quantifier-free Presburger formulas using parameterized solution bounds Google Scholar
  23. 23.
    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 CrossRefGoogle Scholar
  24. 24.
    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 Google Scholar
  25. 25.
    Craig W (1957) Three uses of the Herbrand-Gentzen theorem in relating model theory and proof theory. J Symb Log 269–285 Google Scholar
  26. 26.
    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 CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  1. 1.Department of Computer ScienceStanford UniversityStanfordUSA

Personalised recommendations