Journal of Automated Reasoning

, Volume 47, Issue 4, pp 341–367 | Cite as

An Interpolating Sequent Calculus for Quantifier-Free Presburger Arithmetic

  • Angelo Brillout
  • Daniel Kroening
  • Philipp Rümmer
  • Thomas Wahl
Article

Abstract

Craig interpolation has become a versatile tool in formal verification, used for instance to generate program assertions that serve as candidates for loop invariants. In this paper, we consider Craig interpolation for quantifier-free Presburger arithmetic (QFPA). Until recently, quantifier elimination was the only available interpolation method for this theory, which is, however, known to be potentially costly and inflexible. We introduce an interpolation approach based on a sequent calculus for QFPA that determines interpolants by annotating the steps of an unsatisfiability proof with partial interpolants. We prove our calculus to be sound and complete. We have extended the Princess theorem prover to generate interpolating proofs, and applied it to a large number of publicly available Presburger arithmetic benchmarks. The results document the robustness and efficiency of our interpolation procedure. Finally, we compare the procedure against alternative interpolation methods, both for QFPA and linear rational arithmetic.

Keywords

Sequent calculus Presburger arithmetic Craig interpolation 

Mathematics Subject Classification (2010)

03B70 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Beyer, D., Zufferey, D., Majumdar, R.: CSIsat: interpolation for LA+EUF. In: CAV. LNCS, vol. 5123, pp. 304–308. Springer (2008)Google Scholar
  2. 2.
    Brillout, A.: Approximating and interpolating theories of arithmetic for software verification. Ph.D. thesis, ETH Zürich (2011)Google Scholar
  3. 3.
    Brillout, A., Kroening, D., Rümmer, P., Wahl, T.: An interpolating sequent calculus for quantifier-free Presburger arithmetic. In: Proceedings, International Joint Conference on Automated Reasoning (IJCAR). LNCS, vol. 6173, pp. 384–399. Springer (2010)Google Scholar
  4. 4.
    Bruttomesso, R., Pek, E., Sharygina, N., Tsitovich, A.: The OpenSMT solver. In: TACAS, LNCS, pp. 150–153. Springer (2010)Google Scholar
  5. 5.
    Cimatti, A., Griggio, A., Sebastiani, R.: Interpolant generation for UTVPI. In: Schmidt, R.A. (ed.) CADE, LNCS, vol. 5663, pp. 167–182. Springer (2009)Google Scholar
  6. 6.
    Craig, W.: Linear reasoning. A new form of the Herbrand–Gentzen theorem. J. Symb. Log. 22(3), 250–268 (1957)CrossRefMATHMathSciNetGoogle Scholar
  7. 7.
    Dutertre, B., de Moura, L.: Integrating Simplex with DPLL(T). Tech. Rep. SRI-CSL-06-01, SRI International (2006)Google Scholar
  8. 8.
    Fitting, M.C.: First-Order Logic and Automated Theorem Proving, 2nd edn. Springer (1996)Google Scholar
  9. 9.
    Griggio, A., Le, T.T.H., Sebastiani, R.: Efficient interpolant generation in satisfiability modulo linear integer arithmetic. In: TACAS, LNCS, vol. 6605, pp. 143–157. Springer (2011)Google Scholar
  10. 10.
    Jain, H., Clarke, E., Grumberg, O.: Efficient interpolation for linear diophantine (dis)equations and linear modular equations. In: CAV, LNCS, pp. 254–267. Springer (2008)Google Scholar
  11. 11.
    Kannan, R., Bachem, A.: Polynomial algorithms for computing the Smith and Hermite normal forms of an integer matrix. SIAM J. Comput. 8(4), 499–507 (1979)CrossRefMATHMathSciNetGoogle Scholar
  12. 12.
    Kapur, D., Majumdar, R., Zarba, C.G.: Interpolation for data structures. In: SIGSOFT ’06/FSE-14, pp. 105–116. ACM (2006)Google Scholar
  13. 13.
    Kroening, D., Leroux, J., Rümmer, P.: Interpolating quantifier-free Presburger arithmetic. In: Proceedings, LPAR. LNCS, vol. 6397, pp. 489–503. Springer (2010)Google Scholar
  14. 14.
    Lynch, C., Tang, Y.: Interpolants for linear arithmetic in SMT. In: ATVA. LNCS, pp. 156–170. Springer (2008)Google Scholar
  15. 15.
    McMillan, K.L.: An interpolating theorem prover. Theor. Comp. Sci. 345(1), 101–121 (2005)CrossRefMATHMathSciNetGoogle Scholar
  16. 16.
    McMillan, K.L.: Lazy abstraction with interpolants. In: Ball, T., Jones, R.B. (eds.) Computer Aided Verification (CAV). LNCS, vol. 4144, pp. 123–136. Springer (2006)Google Scholar
  17. 17.
    Pugh, W.: The Omega test: a fast and practical integer programming algorithm for dependence analysis. Commun. ACM 8, 102–114 (1992)CrossRefGoogle Scholar
  18. 18.
    Rümmer, P.: A sequent calculus for integer arithmetic with counterexample generation. In: Verification Workshop (VERIFY). CEUR Workshop Proceedings, vol. 259 (2007)Google Scholar
  19. 19.
    Rümmer, P.: Calculi for program incorrectness and arithmetic. Ph.D. thesis, University of Gothenburg (2008)Google Scholar
  20. 20.
    Rümmer, P.: A constraint sequent calculus for first-order logic with linear integer arithmetic. In: Proceedings, LPAR. LNCS, vol. 5330, pp. 274–289. Springer (2008)Google Scholar
  21. 21.
    Rybalchenko, A., Sofronie-Stokkermans, V.: Constraint solving for interpolation. In: Proceedings, VMCAI. LNCS, vol. 4349, pp. 346–362. Springer (2007)Google Scholar
  22. 22.
    Schrijver, A.: Theory of Linear and Integer Programming. Wiley (1986)Google Scholar

Copyright information

© Springer Science+Business Media B.V. 2011

Authors and Affiliations

  • Angelo Brillout
    • 1
  • Daniel Kroening
    • 2
  • Philipp Rümmer
    • 3
  • Thomas Wahl
    • 2
  1. 1.ETH ZurichZurichSwitzerland
  2. 2.Computer Science DepartmentOxford UniversityOxfordUK
  3. 3.Department of Information TechnologyUppsala UniversityUppsalaSweden

Personalised recommendations