Abstract

Interpolation means finding intermediate formulae between given formulae. When formulae decorate program locations, and describe sets of program states, interpolation may enable a program analyzer to discover information about intermediate locations and states. This mechanism has an increasing number of applications, that are relevant to program analysis and synthesis. We study interpolation in theorem proving decision procedures based on the DPLL(\({\cal T}\)) paradigm. We survey interpolation systems for DPLL, equality sharing and DPLL(\({\cal T}\)), reconstructing from the literature their completeness proofs, and clarifying the requirements for interpolation in the presence of equality.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Bonacina, M.P.: On theorem proving for program checking – Historical perspective and recent developments. In: Fernandez, M. (ed.) Proc. of the 12th Int. Symp. on Principles and Practice of Declarative Programming, pp. 1–11. ACM Press, New York (2010)Google Scholar
  2. 2.
    Bonacina, M.P., Dershowitz, N.: Abstract canonical inference. ACM Trans. on Computational Logic 8(1), 180–208 (2007)MathSciNetCrossRefGoogle Scholar
  3. 3.
    Bonacina, M.P., Johansson, M.: On theorem proving with interpolation for program checking. In: Technical report, Dipartimento di Informatica. Università degli Studi di Verona (April 2011)Google Scholar
  4. 4.
    Bonacina, M.P., Lynch, C.A., de Moura, L.: On deciding satisfiability by theorem proving with speculative inferences. Journal of Automated Reasoning, 1–29 (in press); (Published online December 22, 2010) doi:10.1007/s10817-010-9213-yGoogle Scholar
  5. 5.
    Bradley, A.R., Manna, Z. (eds.): The Calculus of Computation – Decision Procedures with Applications to Verification. Springer, Heidelberg (2007)MATHGoogle Scholar
  6. 6.
    Brillout, A., Kroening, D., Rümmer, P., Wahl, T.: An Interpolating Sequent Calculus for Quantifier-Free Presburger Arithmetic. In: Giesl, J., Hähnle, R. (eds.) IJCAR 2010. LNCS, vol. 6173, pp. 384–399. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  7. 7.
    Brillout, A., Kroening, D., Rümmer, P., Wahl, T.: Program verification via Craig interpolation for Presburger arithmetic with arrays. Notes of the 6th Int. Verification Workshop (2010), http://www.philipp.ruemmer.org/
  8. 8.
    Bruttomesso, R., Ghilardi, S., Ranise, S.: Rewriting-based quantifier-free interpolation for a theory of arrays. In: Proc. of the 22nd Int. Conf. on Rewriting Techniques and Applications, LIPICS. Leibniz-Zentrum für Informatik, Dagsthul Publishing (2011)Google Scholar
  9. 9.
    Bruttomesso, R., Rollini, S., Sharygina, N., Tsitovich, A.: Flexible interpolation generation in satisfiability modulo theories. In: Proc. of the 14th Int. Conf. on Computer-Aided Design, pp. 770–777. IEEE Computer Society Press, Los Alamitos (2010)Google Scholar
  10. 10.
    Chadha, R., Plaisted, D.A.: On the mechanical derivation of loop invariants. Journal of Symbolic Computation 15(5-6), 705–744 (1993)MathSciNetCrossRefMATHGoogle Scholar
  11. 11.
    Cimatti, A., Griggio, A., Sebastiani, R.: Efficient Interpolant Generation in Satisfiability Modulo Theories. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 397–412. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  12. 12.
    Cimatti, A., Griggio, A., Sebastiani, R.: Interpolant Generation for UTVPI. In: Schmidt, R. (ed.) CADE-22. LNCS (LNAI), vol. 5663, pp. 167–182. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  13. 13.
    de Moura, L., Bjørner, N.: Model-based theory combination. In: Krstić, S., Oliveras, A. (eds.) CAV 2007. ENTCS, vol. 198(2), pp. 37–49. Elsevier, Amsterdam (2008)Google Scholar
  14. 14.
    D’Silva, V.: Propositional Interpolation and Abstract Interpretation. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 185–204. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  15. 15.
    D’Silva, V., Kroening, D., Purandare, M., Weissenbacher, G.: Interpolant Strength. In: Barthe, G., Hermenegildo, M. (eds.) VMCAI 2010. LNCS, vol. 5944, pp. 129–145. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  16. 16.
    Fuchs, A., Goel, A., Grundy, J., Krstić, S., Tinelli, C.: Ground Interpolation for the Theory of Equality. In: Kowalewski, S., Philippou, A. (eds.) TACAS 2009. LNCS, vol. 5505, pp. 413–427. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  17. 17.
    Goel, A., Krstić, S., Tinelli, C.: Ground Interpolation for Combined Theories. In: Schmidt, R. (ed.) CADE-22. LNCS, vol. 5663, pp. 183–198. Springer, Heidelberg (2009)Google Scholar
  18. 18.
    Henzinger, T.A., Jhala, R., Majumdar, R., McMillan, K.L.: Abstractions from proofs. In: Leroy, X. (ed.) Proc. of the 31st ACM SIGACT-SIGPLAN Symp. on Principles of Programming Languages, pp. 232–244. ACM Press, New York (2004)Google Scholar
  19. 19.
    Hoder, K., Kovács, L., Voronkov, A.: Interpolation and Symbol Elimination in Vampire. In: Giesl, J., Hähnle, R. (eds.) IJCAR 2010. LNCS (LNAI), vol. 6173, pp. 188–195. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  20. 20.
    Huang, G.: Constructing Craig interpolation formulas. In: Proc. of the 1st Annual Int. Conf. on Computing and Combinatorics, pp. 181–190. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  21. 21.
    Kapur, D., Majumdar, R., Zarba, C.G.: Interpolation for data structures. In: Devambu, P. (ed.) Proc. of the 14th ACM SIGSOFT Symp. on the Foundations of Software Engineering, ACM Press, New York (2006)Google Scholar
  22. 22.
    Kovács, L., Voronkov, A.: Finding loop invariants for programs over arrays using a theorem prover. In: Chechik, M., Wirsing, M. (eds.) FASE 2009. LNCS, vol. 5503, pp. 470–485. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  23. 23.
    Kovács, L., Voronkov, A.: Interpolation and Symbol Elimination. In: Schmidt, R. (ed.) CADE-22. LNCS (LNAI), vol. 5663, pp. 199–213. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  24. 24.
    Krajíček, J.: Interpolation theorems, lower bounds for proof systems, and independence results for bounded arithmetic. Journal of Symbolic Logic 62(2), 457–486 (1997)MathSciNetCrossRefMATHGoogle Scholar
  25. 25.
    McMillan, K.L.: Interpolation and SAT-Based Model Checking. In: Hunt, W.J., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 1–13. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  26. 26.
    McMillan, K.L.: An interpolating theorem prover. Theoretical Computer Science 345(1), 101–121 (2005)MathSciNetCrossRefMATHGoogle Scholar
  27. 27.
    McMillan, K.L.: Quantified Invariant Generation Using an Interpolating Saturation Prover. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 413–427. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  28. 28.
    McMillan, K.L.: Lazy Annotation for Program Testing and Verification. In: Cook, B., Jackson, P., Touili, T. (eds.) CAV 2010. LNCS, vol. 6174, pp. 104–118. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  29. 29.
    Nelson, G., Oppen, D.C.: Simplification by cooperating decision procedures. ACM Trans. on Programming Languages and Systems 1(2), 245–257 (1979)CrossRefMATHGoogle Scholar
  30. 30.
    Nelson, G., Oppen, D.C.: Fast decision procedures based on congruence closure. Journal of the ACM 27(2), 356–364 (1980)MathSciNetCrossRefMATHGoogle Scholar
  31. 31.
    Nieuwenhuis, R., Oliveras, A., Tinelli, C.: Solving SAT and SAT modulo theories: From an abstract Davis–Putnam–Logemann–Loveland procedure to DPLL(T). Journal of the ACM 53(6), 937–977 (2006)MathSciNetCrossRefMATHGoogle Scholar
  32. 32.
    Pudlàk, P.: Lower bounds for resolution and cutting plane proofs and monotone computations. Journal of Symbolic Logic 62(3), 981–998 (1997)MathSciNetCrossRefMATHGoogle Scholar
  33. 33.
    Sebastiani, R.: Lazy satisfiability modulo theory. Journal on Satisfiability, Boolean Modelling and Computation 3, 141–224 (2006)MATHGoogle Scholar
  34. 34.
    Shankar, N.: Automated deduction for verification. ACM Computing Surveys 41(4), 40–96 (2009)CrossRefGoogle Scholar
  35. 35.
    Yorsh, G., Musuvathi, M.: A Combination Method for Generating Interpolants. In: Nieuwenhuis, R. (ed.) CADE 2005. LNCS (LNAI), vol. 3632, pp. 353–368. Springer, Heidelberg (2005); Early version in MSR-TR-2004-108 (October 2004)CrossRefGoogle Scholar
  36. 36.
    Zhang, L., Malik, S.: Validating SAT solvers using an independent resolution-based checker: practical implementations and other applications. In: Proc. of the Conf. on Design Automation and Test in Europe, pp. 10880–10885. IEEE Computer Society Press, Los Alamitos (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Maria Paola Bonacina
    • 1
  • Moa Johansson
    • 1
  1. 1.Dipartimento di InformaticaUniversità degli Studi di VeronaVeronaItaly

Personalised recommendations