Skip to main content
Log in

Complete Instantiation-Based Interpolation

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

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.

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

Access this article

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

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

References

  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)

  2. Bacsich, P.: Amalgamation properties and interpolation theorems for equational theories. Algebra Univ. 5, 45–55 (1975)

    Article  MathSciNet  MATH  Google Scholar 

  3. Barnett, M., Leino, K.R.M.: To goto where no statement has gone before. In: VSTTE, LNCS, vol. 6217, pp. 157–168 (2010)

  4. Beyer, D., Henzinger, T.A., Théoduloz, G.: Lazy shape analysis. In: CAV, LNCS, vol. 4144. Springer, pp. 532–546 (2006)

  5. Beyer, D., Zufferey, D., Majumdar, R.: CSIsat: Interpolation for LA+EUF. In: CAV, LNCS, vol. 5123, pp. 304–308 (2008)

  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)

    Article  MathSciNet  MATH  Google Scholar 

  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)

  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)

  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)

  10. Christ, J., Hoenicke, J., Nutz, A.: Proof tree preserving interpolation. In: TACAS, LNCS, vol. 7795. Springer, pp. 124–138 (2013)

  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)

    Article  MathSciNet  MATH  Google Scholar 

  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)

  13. Ermis, E., Schäf, M., Wies, T.: Error invariants. In: FM, LNCS, vol. 7436. Springer, pp. 187–201 (2012)

  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)

  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)

  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)

  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)

  18. Heizmann, M., Hoenicke, J., Podelski, A.: Nested interpolants. In: POPL. ACM, pp. 471–482 (2010)

  19. Henzinger, T.A., Jhala, R., Majumdar, R., McMillan, K.L.L: Abstractions from proofs. In: 31st POPL (2004)

  20. Hoder, K., Kovács, L., Voronkov, A.: Interpolation and symbol elimination in vampire. In: IJCAR, LNCS, vol. 6173. Springer, pp. 188–195 (2010)

  21. Ihlemann, C.: Reasoning in Combinations of Theories. PhD thesis, Saarland University (2010)

  22. Ihlemann, C., Jacobs, S., Sofronie-Stokkermans, V.: On local reasoning in verification. In: TACAS, pp. 265–281 (2008)

  23. Jhala, R., McMillan, K.L.: Interpolant-based transition relation approximation. Log. Methods Comput. Sci. 3(4), 1–17 (2007)

  24. Jónsson, B.: Universal relational systems. Math. Scand. 4, 193–208 (1956)

    MathSciNet  MATH  Google Scholar 

  25. Kapur, D., Majumdar, R., Zarba, C.G.: Interpolation for data structures. In: SIGSOFT FSE. ACM, pp. 105–116 (2006)

  26. Kroening, D., Weissenbacher, G.: Interpolation-based software verification with wolverine. In: CAV, LNCS, vol. 6806. Springer, pp. 573–578 (2011)

  27. Lahiri, S.K., Qadeer, S.: Back to the future: revisiting precise program verification using SMT solvers. In: POPL. ACM, pp. 171–182 (2008)

  28. McCarthy, J.: Towards a mathematical science of computation. In: IFIP Congress, pp. 21–28 (1962)

  29. McMillan, K.L.: Interpolation and SAT-based model checking. In: CAV, LNCS, vol. 2725. Springer, pp. 1–13 (2003)

  30. McMillan, K.L.: An interpolating theorem prover. Theor. Comput. Sci. 345(1), 101–121 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  31. McMillan, K.L.: Lazy abstraction with interpolants. In: CAV, LNCS, vol. 4144. Springer, pp. 123–136 (2006)

  32. McMillan, KL.: Quantified invariant generation using an interpolating saturation prover. In: TACAS, LNCS, vol. 4963. Springer, pp. 413–427 (2008)

  33. Nelson, G.: Verifying reachability invariants of linked structures. In: POPL. ACM, pp. 38–47 (1983)

  34. Podelski, A., Wies, T.: Counterexample-guided focus. In: POPL. ACM, pp. 249–260 (2010)

  35. Rybalchenko, A., Sofronie-Stokkermans, V.: Constraint solving for interpolation. In: VMCAI, LNCS, vol. 4349. Springer, pp. 346–362 (2007)

  36. Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. ACM TOPLAS 24(3), 217–298 (2002)

    Article  Google Scholar 

  37. Sofronie-Stokkermans, V.: Hierarchic reasoning in local theory extensions. In: CADE, pp. 219–234 (2005)

  38. Sofronie-Stokkermans, V.: Interpolation in local theory extensions. Log. Methods Comput. Sci. 4(4), 1–31 (2008)

  39. Sofronie-Stokkermans, V.: Interpolation in local theory extensions. CoRR, abs/0806.4553 (2008)

  40. Totla, N., Wies, T.: Complete instantiation-based interpolation. In: POPL. ACM (2013, to appear)

  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)

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

Download references

Acknowledgments

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

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Thomas Wies.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Totla, N., Wies, T. Complete Instantiation-Based Interpolation. J Autom Reasoning 57, 37–65 (2016). https://doi.org/10.1007/s10817-016-9371-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10817-016-9371-7

Keywords

Navigation