Skip to main content

Advertisement

Log in

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

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  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. Pugh W (1992) The Omega test: a fast and practical integer programming algorithm for dependence analysis. Commun ACM

  3. Brinkmann R, Drechsler R (2002) RTL-datapath verification using integer linear programming. In: VLSI design, pp 741–746

    Google Scholar 

  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

    Chapter  Google Scholar 

  5. Dutertre B, De Moura L (2006) The Yices SMT solver. Technical report, SRI International

  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

  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

    Chapter  Google Scholar 

  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

    Chapter  Google Scholar 

  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

    Chapter  Google Scholar 

  10. Dantzig G (1963) Linear programming and extensions. Princeton University Press, Princeton

    MATH  Google Scholar 

  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. Schrijver A (1986) Theory of linear and integer programming. Wiley, New York

    MATH  Google Scholar 

  13. Nemhauser GL, Wolsey L (1988) Integer and combinatorial optimization. Wiley, New York

    MATH  Google Scholar 

  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

    Chapter  Google Scholar 

  15. http://gmplib.org/: Gnu mp bignum library

  16. Cohen H (1993) A course in computational algebraic number theory. Graduate texts in mathematics. Springer, Berlin

    MATH  Google Scholar 

  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

    Article  MATH  MathSciNet  Google Scholar 

  18. http://www.smtcomp.org: Smt-comp’08

  19. http://www.gnu.org/software/glpk/: Glpk (gnu linear programming kit)

  20. http://lpsolve.sourceforge.net/5.5/: lp_solve reference guide

  21. http://www.ilog.com/products/cplex/: Cplex

  22. Seshia S, Bryant R (2004) Deciding quantifier-free Presburger formulas using parameterized solution bounds

  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

    Chapter  Google Scholar 

  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. Craig W (1957) Three uses of the Herbrand-Gentzen theorem in relating model theory and proof theory. J Symb Log 269–285

  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

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Isil Dillig.

Additional information

This work was supported by grants from NSF and DARPA (CCF-0430378, CNS-0716695).

Rights and permissions

Reprints and permissions

About this article

Cite this article

Dillig, I., Dillig, T. & Aiken, A. Cuts from proofs: a complete and practical technique for solving linear inequalities over integers. Form Methods Syst Des 39, 246–260 (2011). https://doi.org/10.1007/s10703-011-0127-z

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-011-0127-z

Keywords

Navigation