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.
Similar content being viewed by others
References
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)
Bacsich, P.: Amalgamation properties and interpolation theorems for equational theories. Algebra Univ. 5, 45–55 (1975)
Barnett, M., Leino, K.R.M.: To goto where no statement has gone before. In: VSTTE, LNCS, vol. 6217, pp. 157–168 (2010)
Beyer, D., Henzinger, T.A., Théoduloz, G.: Lazy shape analysis. In: CAV, LNCS, vol. 4144. Springer, pp. 532–546 (2006)
Beyer, D., Zufferey, D., Majumdar, R.: CSIsat: Interpolation for LA+EUF. In: CAV, LNCS, vol. 5123, pp. 304–308 (2008)
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)
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)
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)
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)
Christ, J., Hoenicke, J., Nutz, A.: Proof tree preserving interpolation. In: TACAS, LNCS, vol. 7795. Springer, pp. 124–138 (2013)
Craig, W.: Three uses of the Herbrand–Gentzen theorem in relating model theory and proof theory. J. Symb. Log. 22(3), 269–285 (1957)
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)
Ermis, E., Schäf, M., Wies, T.: Error invariants. In: FM, LNCS, vol. 7436. Springer, pp. 187–201 (2012)
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)
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)
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)
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)
Heizmann, M., Hoenicke, J., Podelski, A.: Nested interpolants. In: POPL. ACM, pp. 471–482 (2010)
Henzinger, T.A., Jhala, R., Majumdar, R., McMillan, K.L.L: Abstractions from proofs. In: 31st POPL (2004)
Hoder, K., Kovács, L., Voronkov, A.: Interpolation and symbol elimination in vampire. In: IJCAR, LNCS, vol. 6173. Springer, pp. 188–195 (2010)
Ihlemann, C.: Reasoning in Combinations of Theories. PhD thesis, Saarland University (2010)
Ihlemann, C., Jacobs, S., Sofronie-Stokkermans, V.: On local reasoning in verification. In: TACAS, pp. 265–281 (2008)
Jhala, R., McMillan, K.L.: Interpolant-based transition relation approximation. Log. Methods Comput. Sci. 3(4), 1–17 (2007)
Jónsson, B.: Universal relational systems. Math. Scand. 4, 193–208 (1956)
Kapur, D., Majumdar, R., Zarba, C.G.: Interpolation for data structures. In: SIGSOFT FSE. ACM, pp. 105–116 (2006)
Kroening, D., Weissenbacher, G.: Interpolation-based software verification with wolverine. In: CAV, LNCS, vol. 6806. Springer, pp. 573–578 (2011)
Lahiri, S.K., Qadeer, S.: Back to the future: revisiting precise program verification using SMT solvers. In: POPL. ACM, pp. 171–182 (2008)
McCarthy, J.: Towards a mathematical science of computation. In: IFIP Congress, pp. 21–28 (1962)
McMillan, K.L.: Interpolation and SAT-based model checking. In: CAV, LNCS, vol. 2725. Springer, pp. 1–13 (2003)
McMillan, K.L.: An interpolating theorem prover. Theor. Comput. Sci. 345(1), 101–121 (2005)
McMillan, K.L.: Lazy abstraction with interpolants. In: CAV, LNCS, vol. 4144. Springer, pp. 123–136 (2006)
McMillan, KL.: Quantified invariant generation using an interpolating saturation prover. In: TACAS, LNCS, vol. 4963. Springer, pp. 413–427 (2008)
Nelson, G.: Verifying reachability invariants of linked structures. In: POPL. ACM, pp. 38–47 (1983)
Podelski, A., Wies, T.: Counterexample-guided focus. In: POPL. ACM, pp. 249–260 (2010)
Rybalchenko, A., Sofronie-Stokkermans, V.: Constraint solving for interpolation. In: VMCAI, LNCS, vol. 4349. Springer, pp. 346–362 (2007)
Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. ACM TOPLAS 24(3), 217–298 (2002)
Sofronie-Stokkermans, V.: Hierarchic reasoning in local theory extensions. In: CADE, pp. 219–234 (2005)
Sofronie-Stokkermans, V.: Interpolation in local theory extensions. Log. Methods Comput. Sci. 4(4), 1–31 (2008)
Sofronie-Stokkermans, V.: Interpolation in local theory extensions. CoRR, abs/0806.4553 (2008)
Totla, N., Wies, T.: Complete instantiation-based interpolation. In: POPL. ACM (2013, to appear)
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)
Yorsh, G., Musuvathi, M.: A combination method for generating interpolants. In: CADE, LNCS, vol. 3632, pp. 353–368 (2005)
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
Corresponding author
Rights and permissions
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10817-016-9371-7