Journal of Automated Reasoning

, Volume 57, Issue 1, pp 37–65 | Cite as

Complete Instantiation-Based Interpolation

  • Nishant Totla
  • Thomas WiesEmail author


Craig interpolation has been a valuable tool in program analysis and verification. Modern SMT solvers implement interpolation procedures for the theories that are most commonly used in these applications. However, many application-specific theories remain unsupported, which limits the class of problems to which interpolation-based techniques apply. In this paper, we present a generic framework to build new interpolation procedures via a reduction to existing interpolation procedures. We consider the case where an application-specific theory can be formalized as an extension of a base theory with additional symbols and axioms. Our technique uses finite instantiation of the extension axioms to reduce an interpolation problem in the theory extension to one in the base theory. We identify a model-theoretic criterion that allows us to detect the cases where our technique is complete. We discuss specific theories that are relevant in program verification and that satisfy this criterion. In particular, we obtain complete interpolation procedures for theories of arrays and linked lists. The latter is the first complete interpolation procedure for a theory that supports reasoning about complex shape properties of heap-allocated data structures.


Craig interpolation Program verification Satisfiability modulo theories Local theory extensions Amalgamation 



We thank the anonymous reviewers for their valuable comments. This work was in part supported by the National Science Foundation Grant CCF-1320583.


  1. 1.
    Alberti, F., Bruttomesso, R., Ghilardi, S., Ranise, S., Sharygina, N.: Lazy abstraction with interpolants for arrays. In: LPAR, LNCS, vol. 7180. Springer, pp. 46–61 (2012)Google Scholar
  2. 2.
    Bacsich, P.: Amalgamation properties and interpolation theorems for equational theories. Algebra Univ. 5, 45–55 (1975)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Barnett, M., Leino, K.R.M.: To goto where no statement has gone before. In: VSTTE, LNCS, vol. 6217, pp. 157–168 (2010)Google Scholar
  4. 4.
    Beyer, D., Henzinger, T.A., Théoduloz, G.: Lazy shape analysis. In: CAV, LNCS, vol. 4144. Springer, pp. 532–546 (2006)Google Scholar
  5. 5.
    Beyer, D., Zufferey, D., Majumdar, R.: CSIsat: Interpolation for LA+EUF. In: CAV, LNCS, vol. 5123, pp. 304–308 (2008)Google Scholar
  6. 6.
    Brillout, A., Kroening, D., Rümmer, P., Wahl, T.: An interpolating sequent calculus for quantifier-free Presburger arithmetic. J. Autom. Reason. 47(4), 341–367 (2011)MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Brillout, A., Kroening, D., Rümmer, P., Wahl, T.: Beyond quantifier-free interpolation in extensions of Presburger arithmetic. In: VMCAI, LNCS, vol. 6538. Springer, pp. 88–102 (2011)Google Scholar
  8. 8.
    Bruttomesso, R., Ghilardi, S., Ranise, S.: Rewriting-based quantifier-free interpolation for a theory of arrays. In: RTA, LIPIcs, vol. 10, pp. 171–186 (2011)Google Scholar
  9. 9.
    Bruttomesso, R., Ghilardi, S., Ranise, S.: From strong amalgamability to modularity of quantifier-free interpolation. In: IJCAR, LNCS, vol. 7364. Springer, pp. 118–133 (2012)Google Scholar
  10. 10.
    Christ, J., Hoenicke, J., Nutz, A.: Proof tree preserving interpolation. In: TACAS, LNCS, vol. 7795. Springer, pp. 124–138 (2013)Google Scholar
  11. 11.
    Craig, W.: Three uses of the Herbrand–Gentzen theorem in relating model theory and proof theory. J. Symb. Log. 22(3), 269–285 (1957)MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Dräger, K., Kupriyanov, A., Finkbeiner, B., Wehrheim, H.: SLAB: a certifying model checker for infinite-state concurrent systems. In: TACAS, LNCS, vol. 6015. Springer, pp. 271–274 (2010)Google Scholar
  13. 13.
    Ermis, E., Schäf, M., Wies, T.: Error invariants. In: FM, LNCS, vol. 7436. Springer, pp. 187–201 (2012)Google Scholar
  14. 14.
    Filliâtre, J.-C., Marché, C.: The Why/Krakatoa/Caduceus platform for deductive program verification. In: CAV, LNCS, vol. 4590. Springer, pp. 173–177 (2007)Google Scholar
  15. 15.
    Fuchs, A., Goel, A., Grundy, J., Krstic, S., Tinelli, C.: Ground interpolation for the theory of equality. In: TACAS, LNCS, vol. 5505. Springer, pp. 413–427 (2009)Google Scholar
  16. 16.
    Goel, A., Krstic, S., Tinelli, C.: Ground interpolation for combined theories. In: CADE, Lecture Notes in Computer Science, vol. 5663. Springer, pp. 183–198 (2009)Google Scholar
  17. 17.
    Griggio, A., Le, T.T.H., Sebastiani, R.: Efficient interpolant generation in satisfiability modulo linear integer arithmetic. In: TACAS, LNCS, vol. 6605. Springer, pp. 143–157 (2011)Google Scholar
  18. 18.
    Heizmann, M., Hoenicke, J., Podelski, A.: Nested interpolants. In: POPL. ACM, pp. 471–482 (2010)Google Scholar
  19. 19.
    Henzinger, T.A., Jhala, R., Majumdar, R., McMillan, K.L.L: Abstractions from proofs. In: 31st POPL (2004)Google Scholar
  20. 20.
    Hoder, K., Kovács, L., Voronkov, A.: Interpolation and symbol elimination in vampire. In: IJCAR, LNCS, vol. 6173. Springer, pp. 188–195 (2010)Google Scholar
  21. 21.
    Ihlemann, C.: Reasoning in Combinations of Theories. PhD thesis, Saarland University (2010)Google Scholar
  22. 22.
    Ihlemann, C., Jacobs, S., Sofronie-Stokkermans, V.: On local reasoning in verification. In: TACAS, pp. 265–281 (2008)Google Scholar
  23. 23.
    Jhala, R., McMillan, K.L.: Interpolant-based transition relation approximation. Log. Methods Comput. Sci. 3(4), 1–17 (2007)Google Scholar
  24. 24.
    Jónsson, B.: Universal relational systems. Math. Scand. 4, 193–208 (1956)MathSciNetzbMATHGoogle Scholar
  25. 25.
    Kapur, D., Majumdar, R., Zarba, C.G.: Interpolation for data structures. In: SIGSOFT FSE. ACM, pp. 105–116 (2006)Google Scholar
  26. 26.
    Kroening, D., Weissenbacher, G.: Interpolation-based software verification with wolverine. In: CAV, LNCS, vol. 6806. Springer, pp. 573–578 (2011)Google Scholar
  27. 27.
    Lahiri, S.K., Qadeer, S.: Back to the future: revisiting precise program verification using SMT solvers. In: POPL. ACM, pp. 171–182 (2008)Google Scholar
  28. 28.
    McCarthy, J.: Towards a mathematical science of computation. In: IFIP Congress, pp. 21–28 (1962)Google Scholar
  29. 29.
    McMillan, K.L.: Interpolation and SAT-based model checking. In: CAV, LNCS, vol. 2725. Springer, pp. 1–13 (2003)Google Scholar
  30. 30.
    McMillan, K.L.: An interpolating theorem prover. Theor. Comput. Sci. 345(1), 101–121 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  31. 31.
    McMillan, K.L.: Lazy abstraction with interpolants. In: CAV, LNCS, vol. 4144. Springer, pp. 123–136 (2006)Google Scholar
  32. 32.
    McMillan, KL.: Quantified invariant generation using an interpolating saturation prover. In: TACAS, LNCS, vol. 4963. Springer, pp. 413–427 (2008)Google Scholar
  33. 33.
    Nelson, G.: Verifying reachability invariants of linked structures. In: POPL. ACM, pp. 38–47 (1983)Google Scholar
  34. 34.
    Podelski, A., Wies, T.: Counterexample-guided focus. In: POPL. ACM, pp. 249–260 (2010)Google Scholar
  35. 35.
    Rybalchenko, A., Sofronie-Stokkermans, V.: Constraint solving for interpolation. In: VMCAI, LNCS, vol. 4349. Springer, pp. 346–362 (2007)Google Scholar
  36. 36.
    Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. ACM TOPLAS 24(3), 217–298 (2002)CrossRefGoogle Scholar
  37. 37.
    Sofronie-Stokkermans, V.: Hierarchic reasoning in local theory extensions. In: CADE, pp. 219–234 (2005)Google Scholar
  38. 38.
    Sofronie-Stokkermans, V.: Interpolation in local theory extensions. Log. Methods Comput. Sci. 4(4), 1–31 (2008)Google Scholar
  39. 39.
    Sofronie-Stokkermans, V.: Interpolation in local theory extensions. CoRR, abs/0806.4553 (2008)Google Scholar
  40. 40.
    Totla, N., Wies, T.: Complete instantiation-based interpolation. In: POPL. ACM (2013, to appear)Google Scholar
  41. 41.
    Wies, T., Muñiz, M., Kuncak, V.: An efficient decision procedure for imperative tree data structures. In: CADE, LNCS, vol. 6803. Springer, pp. 476–491 (2011)Google Scholar
  42. 42.
    Yorsh, G., Musuvathi, M.: A combination method for generating interpolants. In: CADE, LNCS, vol. 3632, pp. 353–368 (2005)Google Scholar

Copyright information

© Springer Science+Business Media Dordrecht 2016

Authors and Affiliations

  1. 1.University of California, BerkeleyBerkeleyUSA
  2. 2.Courant Institute of Mathematical SciencesNew York UniversityNew YorkUSA

Personalised recommendations