Constraint Solving for Interpolation

  • Andrey Rybalchenko
  • Viorica Sofronie-Stokkermans
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4349)

Abstract

Interpolation is an important component of recent methods for program verification. It provides a natural and effective means for computing separation between the sets of ‘good’ and ‘bad’ states. The existing algorithms for interpolant generation are proof-based: They require explicit construction of proofs, from which interpolants can be computed. Construction of such proofs is a difficult task. We propose an algorithm for the generation of interpolants for the combined theory of linear arithmetic and uninterpreted function symbols that does not require a priori constructed proofs to derive interpolants. It uses a reduction of the problem to constraint solving in linear arithmetic, which allows application of existing highly optimized Linear Programming solvers in black-box fashion. We provide experimental evidence of the practical applicability of our algorithm.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Blanchet, B., et al.: A static analyzer for large safety-critical software. In: PLDI’2003: Programming Language Design and Implementation, 7–14, pp. 196–207. ACM Press, New York (2003)Google Scholar
  2. 2.
    Bradley, A.R., Manna, Z., Sipma, H.B.: Linear ranking with reachability. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 491–504. Springer, Heidelberg (2005)Google Scholar
  3. 3.
    Colón, M., Sankaranarayanan, S., Sipma, H.: Linear invariant generation using non-linear constraint solving. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 420–432. Springer, Heidelberg (2003)Google Scholar
  4. 4.
    Cousot, P.: Proving program invariance and termination by parametric abstraction, lagrangian relaxation and semidefinite programming. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 1–24. Springer, Heidelberg (2005)Google Scholar
  5. 5.
    Craig, W.: Linear reasoning. A new form of the Herbrand-Gentzen theorem. J. Symb. Log. 22(3), 250–268 (1957)MATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    Esparza, J., Kiefer, S., Schwoon, S.: Abstraction refinement with Craig interpolation and symbolic pushdown systems. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006 and ETAPS 2006. LNCS, vol. 3920, pp. 489–503. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  7. 7.
    Henzinger, T.A., et al.: Abstractions from proofs. In: POPL: Principles of Programming Languages, pp. 232–244. ACM Press, New York (2004)CrossRefGoogle Scholar
  8. 8.
    Holzbaur, C.: OFAI clp(q,r) Manual, Edition 1.3.3. Austrian Research Institute for Artificial Intelligence, Vienna. TR-95-09 (1995)Google Scholar
  9. 9.
    Jaffar, J., Michaylov, S.: Methodology and implementation of a CLP system. In: ICLP 1987: Int. Conf. on Logic Programming, vol. 1, MIT Press, Cambridge (1987)Google Scholar
  10. 10.
    Jhala, R., McMillan, K.L.: Interpolant-based transition relation approximation. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 39–51. Springer, Heidelberg (2005)Google Scholar
  11. 11.
    Jhala, R., McMillan, K.L.: A practical and complete approach to predicate refinement. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006 and ETAPS 2006. LNCS, vol. 3920, pp. 459–473. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  12. 12.
    Kapur, D., Majumdar, R., Zarba, C.G.: Interpolation for data structures. In: Robshaw, M. (ed.) FSE 2006. LNCS, vol. 4047, Springer, Heidelberg (2006)Google Scholar
  13. 13.
    Koubarakis, M.: Tractable disjunctions of linear constraints: Basic results and applications to temporal reasoning. Theoretical Computer Science 266(1-2), 311–339 (2001)MATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    Krajícek, J.: Interpolation theorems, lower bounds for proof systems, and independence results for bounded arithmetic. J. Symb. Log. 62(2), 457–486 (1997)MATHCrossRefGoogle Scholar
  15. 15.
    T.I.S. Laboratory SICStus Prolog User’s Manual. Swedish Institute of Computer Science, PO Box 1263 SE-164 29 Kista, Sweden. Release 3.8.7 (October 2001)Google Scholar
  16. 16.
    McMillan, K.L.: Interpolation and SAT-based model checking. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 1–13. Springer, Heidelberg (2003)Google Scholar
  17. 17.
    McMillan, K.L.: An interpolating theorem prover. Theor. Comput. Sci. 345(1), 101–121 (2005)MATHCrossRefMathSciNetGoogle Scholar
  18. 18.
    McMillan, K.L.: Lazy abstraction with interpolants. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 123–136. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  19. 19.
    Meyer, R., Faber, J., Rybalchenko, A.: Model checking duration calculus: A practical approach. In: Barkaoui, K., Cavalcanti, A., Cerone, A. (eds.) ICTAC 2006. LNCS, vol. 4281, pp. 332–346. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  20. 20.
    Podelski, A., Rybalchenko, A.: ARMC: the logical choice for software model checking with abstraction refinement. In: Hanus, M. (ed.) PADL 2007. LNCS, vol. 4354, Springer, Heidelberg (2006)Google Scholar
  21. 21.
    Pudlák, P.: Lower bounds for resolution and cutting plane proofs and monotone computations. J. Symb. Log. 62(3), 981–998 (1997)MATHCrossRefGoogle Scholar
  22. 22.
    Schrijver, A.: Theory of Linear and Integer Programming. John Wiley & Sons, Chichester (1986)MATHGoogle Scholar
  23. 23.
    Sofronie-Stokkermans, V.: Hierarchic reasoning in local theory extensions. In: Nieuwenhuis, R. (ed.) Automated Deduction – CADE-20. LNCS (LNAI), vol. 3632, pp. 219–234. Springer, Heidelberg (2005)Google Scholar
  24. 24.
    Sofronie-Stokkermans, V.: Interpolation in local theory extensions. In: Furbach, U., Shankar, N. (eds.) IJCAR 2006. LNCS (LNAI), vol. 4130, pp. 235–250. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  25. 25.
    Sontag, E.: Real addition and the polynomial hierarchy. Information Processing Letters 20(3), 115–120 (1985)MATHCrossRefMathSciNetGoogle Scholar
  26. 26.
    Yorsh, G., Musuvathi, M.: A combination method for generating interpolants. In: Nieuwenhuis, R. (ed.) Automated Deduction – CADE-20. LNCS (LNAI), vol. 3632, pp. 353–368. Springer, Heidelberg (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Andrey Rybalchenko
    • 1
    • 2
  • Viorica Sofronie-Stokkermans
    • 2
  1. 1.Ecole Polytechnique Fédérale de Lausanne 
  2. 2.Max-Planck-Institut für Informatik, Saarbrücken 

Personalised recommendations