Abstract
Craig interpolation has been a valuable tool for formal methods with interesting applications 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 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. We have implemented this procedure in a prototype on top of existing SMT solvers and used it to automatically infer loop invariants of list-manipulating programs.
Supplemental Material
- F. Alberti, R. Bruttomesso, S. Ghilardi, S. Ranise, and N. Sharygina. Lazy abstraction with interpolants for arrays. In LPAR, volume 7180 of LNCS, pages 46--61. Springer, 2012. Google Scholar
Digital Library
- P. Bacsich. Amalgamation properties and interpolation theorems for equational theories. Algebra Universalis, 5:45--55, 1975.Google Scholar
Cross Ref
- M. Barnett and K. R. M. Leino. To goto where no statement has gone before. In VSTTE, volume 6217 of LNCS, pages 157--168, 2010. Google Scholar
Digital Library
- C. Barrett, A. Stump, and C. Tinelli. The SMT-LIB Standard: Version 2.0, 2010.Google Scholar
- D. Beyer, T. A. Henzinger, and G. Théoduloz. Lazy shape analysis. In CAV, volume 4144 of LNCS, pages 532--546. Springer, 2006. Google Scholar
Digital Library
- D. Beyer, D. Zufferey, and R. Majumdar. CSIsat: Interpolation for LAGoogle Scholar
- EUF. In CAV, volume 5123 of LNCS, pages 304--308, 2008.Google Scholar
- R. Bornat. Proving Pointer Programs in Hoare Logic. In MPC, volume 1837 of LNCS, pages 102--126. Springer, 2000. Google Scholar
Digital Library
- A. Brillout, D. Kroening, P. Rümmer, and T. Wahl. An Interpolating Sequent Calculus for Quantifier-Free Presburger Arithmetic. J. Autom. Reasoning, 47(4):341--367, 2011. Google Scholar
Digital Library
- A. Brillout, D. Kroening, P. Rümmer, and T. Wahl. Beyond Quantifier-Free Interpolation in Extensions of Presburger Arithmetic. In VMCAI, volume 6538 of LNCS, pages 88--102. Springer, 2011. Google Scholar
Digital Library
- R. Bruttomesso, S. Ghilardi, and S. Ranise. Rewriting-based quantifier-free interpolation for a theory of arrays. In RTA, volume 10 of LIPIcs, pages 171--186, 2011.Google Scholar
- R. Bruttomesso, S. Ghilardi, and S. Ranise. From strong amalgamability to modularity of quantifier-free interpolation. In IJCAR, volume 7364 of LNCS, pages 118--133. Springer, 2012. Google Scholar
Digital Library
- P. Cousot, R. Cousot, and L. Mauborgne. The reduced product of abstract domains and the combination of decision procedures. In FOSSACS, volume 6604 of LNCS, pages 456--472. Springer, 2011. Google Scholar
Digital Library
- W. Craig. Three uses of the Herbrand-Gentzen theorem in relating model theory and proof theory. The Journal of Symbolic Logic, 22(3):269--285, 1957.Google Scholar
Cross Ref
- L. de Moura and N. Bjørner. Z3: An efficient SMT solver. In TACAS, pages 337--340, 2008. Google Scholar
Digital Library
- K. Dr\"ager, A. Kupriyanov, B. Finkbeiner, and H. Wehrheim. SLAB: A Certifying Model Checker for Infinite-State Concurrent Systems. In TACAS, volume 6015 of LNCS, pages 271--274. Springer, 2010. Google Scholar
Digital Library
- V. D'Silva, D. Kroening, M. Purandare, and G. Weissenbacher. Interpolant strength. In VMCAI, volume 5944 of LNCS, pages 129--145. Springer, 2010. Google Scholar
Digital Library
- E. Ermis, M. Sch\"af, and T. Wies. Error invariants. In FM, volume 7436 of LNCS, pages 187--201. Springer, 2012.Google Scholar
- J.-C. Filliâtre and C. Marché. The Why/Krakatoa/Caduceus Platform for Deductive Program Verification. In CAV, volume 4590 of LNCS, pages 173--177. Springer, 2007. Google Scholar
Digital Library
- A. Fuchs, A. Goel, J. Grundy, S. Krstic, and C. Tinelli. Ground interpolation for the theory of equality. In TACAS, volume 5505 of LNCS, pages 413--427. Springer, 2009. Google Scholar
Digital Library
- Y. Ge and L. M. de Moura. Complete instantiation for quantified formulas in satisfiabiliby modulo theories. In CAV, volume 5643 of LNCS, pages 306--320. Springer, 2009. Google Scholar
Digital Library
- A. Goel, S. Krstic, and C. Tinelli. Ground interpolation for combined theories. In CADE, volume 5663 of Lecture Notes in Computer Science, pages 183--198. Springer, 2009. Google Scholar
Digital Library
- A. Griggio. A Practical Approach to Satisfiability Modulo Linear Integer Arithmetic. JSAT, 8:1--27, January 2012.Google Scholar
- A. Griggio, T. T. H. Le, and R. Sebastiani. Efficient interpolant generation in satisfiability modulo linear integer arithmetic. In TACAS, volume 6605 of LNCS, pages 143--157. Springer, 2011. Google Scholar
Digital Library
- M. Heizmann, J. Hoenicke, and A. Podelski. Nested interpolants. In POPL, pages 471--482. ACM, 2010. Google Scholar
Digital Library
- T. A. Henzinger, R. Jhala, R. Majumdar, and K. L. McMillan. Abstractions from proofs. In 31st POPL, 2004. Google Scholar
Digital Library
- K. Hoder, L. Kovács, and A. Voronkov. Interpolation and symbol elimination in vampire. In IJCAR, volume 6173 of LNCS, pages 188--195. Springer, 2010. Google Scholar
Digital Library
- K. Hoder, L. Kovács, and A. Voronkov. Playing in the grey area of proofs. In POPL, pages 259--272. ACM, 2012. Google Scholar
Digital Library
- C. Ihlemann, S. Jacobs, and V. Sofronie-Stokkermans. On local reasoning in verification. In TACAS, pages 265--281, 2008. Google Scholar
Digital Library
- S. Jacobs. Incremental instance generation in local reasoning. In CAV, volume 5643 of LNCS, pages 368--382. Springer, 2009. Google Scholar
Digital Library
- R. Jhala and K. L. McMillan. A practical and complete approach to predicate refinement. In TACAS, volume 3920 of LNCS, pages 459--473. Springer, 2006. Google Scholar
Digital Library
- R. Jhala and K. L. McMillan. Interpolant-based transition relation approximation. Logical Methods in Computer Science, 3(4), 2007.Google Scholar
- B. Jónsson. Universal relational systems. Math. Scand., 4:193--208, 1956.Google Scholar
Cross Ref
- D. Kapur, R. Majumdar, and C. G. Zarba. Interpolation for data structures. In SIGSOFT FSE, pages 105--116. ACM, 2006. Google Scholar
Digital Library
- D. Kroening and G. Weissenbacher. Interpolation-Based Software Verification with Wolverine. In CAV, volume 6806 of LNCS, pages 573--578. Springer, 2011. Google Scholar
Digital Library
- S. K. Lahiri and S. Qadeer. Back to the future: revisiting precise program verification using SMT solvers. In POPL, pages 171--182. ACM, 2008. Google Scholar
Digital Library
- J. McCarthy. Towards a mathematical science of computation. In IFIP Congress, pages 21--28, 1962.Google Scholar
- K. L. McMillan. Interpolation and SAT-Based Model Checking. In CAV, volume 2725 of LNCS, pages 1--13. Springer, 2003.Google Scholar
- K. L. McMillan. An interpolating theorem prover. Theor. Comput. Sci., 345(1):101--121, 2005. Google Scholar
Digital Library
- K. L. McMillan. Lazy abstraction with interpolants. In CAV, volume 4144 of LNCS, pages 123--136. Springer, 2006. Google Scholar
Digital Library
- K. L. McMillan. Quantified invariant generation using an interpolating saturation prover. In TACAS, volume 4963 of LNCS, pages 413--427. Springer, 2008. Google Scholar
Digital Library
- G. Nelson. Verifying reachability invariants of linked structures. In POPL, pages 38--47. ACM, 1983. Google Scholar
Digital Library
- A. Podelski and T. Wies. Counterexample-guided focus. In POPL, pages 249--260. ACM, 2010. Google Scholar
Digital Library
- T. W. Reps, S. Sagiv, and G. Yorsh. Symbolic implementation of the best transformer. In VMCAI, volume 2937 of LNCS, pages 252--266. Springer, 2004.Google Scholar
- A. Rybalchenko and V. Sofronie-Stokkermans. Constraint solving for interpolation. In VMCAI, volume 4349 of LNCS, pages 346--362. Springer, 2007. Google Scholar
Digital Library
- M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. ACM TOPLAS, 24(3):217--298, 2002. Google Scholar
Digital Library
- V. Sofronie-Stokkermans. Hierarchic reasoning in local theory extensions. In CADE, pages 219--234, 2005. Google Scholar
Digital Library
- V. Sofronie-Stokkermans. Interpolation in local theory extensions. Logical Methods in Computer Science, 4(4), 2008.Google Scholar
- N. Totla and T. Wies. Complete instantiation-based interpolation. Technical Report TR2012--950, New York University, 2012.Google Scholar
- T. Wies, M. Mu\ niz, and V. Kuncak. An efficient decision procedure for imperative tree data structures. In CADE, volume 6803 of LNCS, pages 476--491. Springer, 2011. Google Scholar
Digital Library
- G. Yorsh and M. Musuvathi. A combination method for generating interpolants. In CADE, volume 3632 of LNCS, pages 353--368, 2005. Google Scholar
Digital Library
Index Terms
Complete instantiation-based interpolation
Recommendations
Complete instantiation-based interpolation
POPL '13: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesCraig interpolation has been a valuable tool for formal methods with interesting applications in program analysis and verification. Modern SMT solvers implement interpolation procedures for the theories that are most commonly used in these applications. ...
Complete Instantiation-Based Interpolation
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 ...
C-shaped G2 Hermite interpolation with circular precision based on cubic PH curve interpolation
Based on the technique of C-shaped G^1 Hermite interpolation by a cubic Pythagorean-hodograph (PH) curve, we present a simple method for C-shaped G^2 Hermite interpolation by a rational cubic Bezier curve. The method reproduces a circular arc when the ...







Comments