Skip to main content
Log in

Efficient Craig interpolation for linear Diophantine (dis)equations and linear modular equations

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

Abstract

The use of Craig interpolants has enabled the development of powerful hardware and software model checking techniques. Efficient algorithms are known for computing interpolants in rational and real linear arithmetic. We focus on subsets of integer linear arithmetic. Our main results are polynomial time algorithms for obtaining interpolants for conjunctions of linear Diophantine equations, linear modular equations (linear congruences), and linear Diophantine disequations. We also present an interpolation result for conjunctions of mixed integer linear equations. We show the utility of the proposed interpolation algorithms for discovering modular/divisibility predicates in a counterexample guided abstraction refinement (CEGAR) framework. This has enabled verification of simple programs that cannot be checked using existing CEGAR based model checkers.

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

Access this article

Subscribe and save

Springer+
from $39.99 /Month
  • Starting from 10 chapters or articles per month
  • Access and download chapters and articles from more than 300k books and 2,500 journals
  • Cancel anytime
View plans

Buy Now

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

Instant access to the full article PDF.

Similar content being viewed by others

Explore related subjects

Discover the latest articles and news from researchers in related subjects, suggested using machine learning.

References

  1. BLAST 2.4 website. http://mtc.epfl.ch/software-tools/blast/

  2. SATABS 1.9 website. http://www.verify.ethz.ch/satabs/

  3. VCEGAR 1.3 website. http://www.cs.cmu.edu/~modelcheck/vcegar/

  4. Yices 1.0.11 website. http://yices.csl.sri.com/

  5. Bachem A, von Randow R (1979) Integer theorems of Farkas lemma type. In: Methods of operations research, vol 32, pp 19–28. Report No. 78118

  6. Bockmayr A, Weispfenning V (2001) Solving numerical constraints. In: Robinson A, Voronkov A (eds) Handbook of automated reasoning, pp 751–842

  7. Bozzano M, Bruttomesso R, Cimatti A, Franzén A, Hanna Z, Khasidashvili Z, Palti A, Sebastiani R (2006) Encoding RTL constructs for MathSAT: a preliminary report. Electron Notes Theor Comput Sci 144(2):3–14

    Article  Google Scholar 

  8. Brillout A, Kroening D, Wahl T (2008) Craig interpolation for quantifier-free Presburger arithmetic. In: CoRR. 0811.3521

  9. Cimatti A, Griggio A, Sebastiani R (2008) Efficient interpolation in satisfiability modulo theories. In: TACAS

  10. Clarke E, Grumberg O, Jha S, Lu Y, Veith H (2003) Counterexample-guided abstraction refinement for symbolic model checking. J ACM 50(5)

  11. Craig W (1957) Linear reasoning. A new form of the Herbrand-Gentzen theorem. J Symb Log 22(3):250–268

    Article  MATH  MathSciNet  Google Scholar 

  12. Dutertre B, de Moura LM (2006) A fast linear-arithmetic solver for DPLL(T). In: CAV, pp 81–94

  13. Henzinger TA, Jhala R, Majumdar R, McMillan KL (2004) Abstractions from proofs. In: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on principles of programming languages. ACM, New York, pp 232–244

    Chapter  Google Scholar 

  14. Jain H, Clarke EM, Grumberg O (2008) Efficient Craig interpolation for linear Diophantine (dis)equations and linear modular equations. In: 20th international conference on computer aided verification (CAV)

  15. Jhala R, McMillan KL (2006) A practical and complete approach to predicate refinement. In: TACAS, pp 459–473

  16. Kapur D, Majumdar R, Zarba CG (2006) Interpolation for data structures. In: SIGSOFT ’06/FSE-14. ACM, New York, pp 105–116

    Chapter  Google Scholar 

  17. Kroening D, Weissenbacher G (2007) Lifting propositional interpolants to the word-level. In: FMCAD. IEEE, New York, pp 85–89

    Google Scholar 

  18. McMillan KL (2003) Interpolation and SAT-based model checking. In: CAV, pp 1–13

  19. McMillan KL (2004) An interpolating theorem prover. In: Tools and algorithms for the construction and analysis of systems (TACAS), pp 16–30

  20. McMillan KL (2006) Lazy abstraction with interpolants. In: CAV, pp 123–136

  21. Müller-Olm M, Seidl H (2007) Analysis of modular arithmetic. ACM Trans Program Lang Syst 29(5):29

    Article  Google Scholar 

  22. Nelson G, Oppen DC (1979) Simplification by cooperating decision procedures. ACM Trans Program Lang Syst 1(2):245–257

    Article  MATH  Google Scholar 

  23. Presburger M (1930) Über die Vollständigkeit eines gewissen Systems der Arithmetik ganzer Zahlen, in welchem die Addition als einzige Operation hervortritt. In: Sprawozdanie z I kongresu metematyków slowiańskich, Warszawa, 1929, pp 92–101, 395. Annotated English version in [27]

  24. Pudlák P (1997) Lower bounds for resolution and cutting plane proofs and monotone computations. J Symb Log 62(3):981–998

    Article  MATH  Google Scholar 

  25. Rybalchenko A, Sofronie-Stokkermans V (2007) Constraint solving for interpolation. In: VMCAI, pp 346–362

  26. Schrijver A (1986) Theory of linear and integer programming. Wiley, New York

    MATH  Google Scholar 

  27. Stansifer R (1984) Presburger’s article on integer arithmetic: remarks and translation. Technical Report TR84-639, Cornell University Computer Science Department

  28. Storjohann A, Labahn G (1996) Asymptotically fast computation of Hermite normal forms of integer matrices. In: ISSAC ’96: proceedings of the 1996 international symposium on Symbolic and algebraic computation, pp 259–266

  29. The PARI Group. PARI/GP, version 2.3.2, 2006. http://pari.math.u-bordeaux.fr/

  30. Yorsh G, Musuvathi M (2005) A combination method for generating interpolants. In: CADE, pp 353–368

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Himanshu Jain.

Additional information

This paper is an extended version of [14]. This research was sponsored by the Gigascale Systems Research Center (GSRC), Semiconductor Research Corporation (SRC), the National Science Foundation (NSF), the Office of Naval Research (ONR), the Naval Research Laboratory (NRL), the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), and the General Motors Collaborative Research Lab at CMU. The views and conclusions contained in this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of GSRC, SRC, NSF, ONR, NRL, DARPA, ARO, GM, or the U.S. government.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Jain, H., Clarke, E.M. & Grumberg, O. Efficient Craig interpolation for linear Diophantine (dis)equations and linear modular equations. Form Methods Syst Des 35, 6–39 (2009). https://doi.org/10.1007/s10703-009-0069-x

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-009-0069-x

Keywords