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.
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
BLAST 2.4 website. http://mtc.epfl.ch/software-tools/blast/
SATABS 1.9 website. http://www.verify.ethz.ch/satabs/
VCEGAR 1.3 website. http://www.cs.cmu.edu/~modelcheck/vcegar/
Yices 1.0.11 website. http://yices.csl.sri.com/
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
Bockmayr A, Weispfenning V (2001) Solving numerical constraints. In: Robinson A, Voronkov A (eds) Handbook of automated reasoning, pp 751–842
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
Brillout A, Kroening D, Wahl T (2008) Craig interpolation for quantifier-free Presburger arithmetic. In: CoRR. 0811.3521
Cimatti A, Griggio A, Sebastiani R (2008) Efficient interpolation in satisfiability modulo theories. In: TACAS
Clarke E, Grumberg O, Jha S, Lu Y, Veith H (2003) Counterexample-guided abstraction refinement for symbolic model checking. J ACM 50(5)
Craig W (1957) Linear reasoning. A new form of the Herbrand-Gentzen theorem. J Symb Log 22(3):250–268
Dutertre B, de Moura LM (2006) A fast linear-arithmetic solver for DPLL(T). In: CAV, pp 81–94
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
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)
Jhala R, McMillan KL (2006) A practical and complete approach to predicate refinement. In: TACAS, pp 459–473
Kapur D, Majumdar R, Zarba CG (2006) Interpolation for data structures. In: SIGSOFT ’06/FSE-14. ACM, New York, pp 105–116
Kroening D, Weissenbacher G (2007) Lifting propositional interpolants to the word-level. In: FMCAD. IEEE, New York, pp 85–89
McMillan KL (2003) Interpolation and SAT-based model checking. In: CAV, pp 1–13
McMillan KL (2004) An interpolating theorem prover. In: Tools and algorithms for the construction and analysis of systems (TACAS), pp 16–30
McMillan KL (2006) Lazy abstraction with interpolants. In: CAV, pp 123–136
Müller-Olm M, Seidl H (2007) Analysis of modular arithmetic. ACM Trans Program Lang Syst 29(5):29
Nelson G, Oppen DC (1979) Simplification by cooperating decision procedures. ACM Trans Program Lang Syst 1(2):245–257
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]
Pudlák P (1997) Lower bounds for resolution and cutting plane proofs and monotone computations. J Symb Log 62(3):981–998
Rybalchenko A, Sofronie-Stokkermans V (2007) Constraint solving for interpolation. In: VMCAI, pp 346–362
Schrijver A (1986) Theory of linear and integer programming. Wiley, New York
Stansifer R (1984) Presburger’s article on integer arithmetic: remarks and translation. Technical Report TR84-639, Cornell University Computer Science Department
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
The PARI Group. PARI/GP, version 2.3.2, 2006. http://pari.math.u-bordeaux.fr/
Yorsh G, Musuvathi M (2005) A combination method for generating interpolants. In: CADE, pp 353–368
Author information
Authors and Affiliations
Corresponding author
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
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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10703-009-0069-x