Acta Informatica

, Volume 53, Issue 4, pp 387–424 | Cite as

Guiding Craig interpolation with domain-specific abstractions

  • Jérôme Leroux
  • Philipp RümmerEmail author
  • Pavle Subotić
Original Article


Craig interpolation is a standard method to construct and refine abstractions in model checking. To obtain abstractions that are suitable for the verification of software programs or hardware designs, model checkers rely on theorem provers to find the right interpolants, or interpolants containing the right predicates, in a generally infinite lattice of interpolants for any given interpolation problem. We present a semantic and solver-independent framework for systematically exploring interpolant lattices, based on the notion of interpolation abstraction. We discuss how interpolation abstractions can be constructed for a variety of logics, and how they can be applied in the context of software model checking.



We thank Hossein Hojjat and Viktor Kuncak for discussions, and for assistance with the implementation in Eldarica. We are also grateful for helpful comments from the referees.


  1. 1.
    Albarghouthi, A., McMillan, K.L.: Beautiful interpolants. In: CAV, pp. 313–329 (2013)Google Scholar
  2. 2.
    Alberti, F., Bruttomesso, R., Ghilardi, S., Ranise, S., Sharygina, N.: Lazy abstraction with interpolants for arrays. In: LPAR (2012)Google Scholar
  3. 3.
    Bardin, S., Finkel, A., Leroux, J., Petrucci, L.: Fast: acceleration from theory to practice. Int. J. Softw. Tools Technol. Transf. 10(5), 401–424 (2008)CrossRefGoogle Scholar
  4. 4.
    Beyer, D., Henzinger, T.A., Majumdar, R., Rybalchenko, A.: Invariant synthesis for combined theories. In: VMCAI. Springer, Berlin (2007)Google Scholar
  5. 5.
    Beyer, D., Keremoglu, M.E.: CPAchecker: a tool for configurable software verification. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV, LNCS, vol. 6806, pp. 184–190. Springer, Berlin (2011). doi: 10.1007/978-3-642-22110-1_16
  6. 6.
    Beyer, D., Keremoglu, M.E., Wendler, P.: Predicate abstraction with adjustable-block encoding. In: Bloem, R., Sharygina, N. (eds.) FMCAD, pp. 189–197. IEEE (2010)Google Scholar
  7. 7.
    Beyer, D., Zufferey, D., Majumdar, R.: CSIsat: Interpolation for LA+EUF. In: CAV, LNCS, vol. 5123, pp. 304–308. Springer, Berlin (2008)Google Scholar
  8. 8.
    Bouajjani, A., Bozga, M., Habermehl, P., Iosif, R., Moro, P., Vojnar, T.: Programs with lists are counter automata. In: CAV, pp. 517–531 (2006)Google Scholar
  9. 9.
    Bozga, M., Habermehl, P., Iosif, R., Konečný, F., Vojnar, T.: Automatic verification of integer array programs. In: CAV, pp. 157–172 (2009)Google Scholar
  10. 10.
    Brillout, A., Kroening, D., Rümmer, P., Wahl, T.: An interpolating sequent calculus for quantifier-free Presburger arithmetic. In: Proceedings, IJCAR, LNCS. Springer, Berlin (2010)Google Scholar
  11. 11.
    Brillout, A., Kroening, D., Rümmer, P., Wahl, T.: Beyond quantifier-free interpolation in extensions of Presburger arithmetic. In: VMCAI, LNCS. Springer, Berlin (2011)Google Scholar
  12. 12.
    Caniart, N., Fleury, E., Leroux, J., Zeitoun, M.: Accelerating interpolation-based model-checking. In: TACAS, pp. 428–442 (2008)Google Scholar
  13. 13.
    Chaudhuri, S., Farzan, A., Kincaid, Z.: Consistency analysis of decision-making programs. In: Jagannathan, S., Sewell, P. (eds.) POPL, pp. 555–568. ACM (2014). doi: 10.1145/2535838.2535858
  14. 14.
    Cimatti, A., Griggio, A., Mover, S., Tonetta, S.: IC3 modulo theories via implicit predicate abstraction. In: Ábrahám, E., Havelund, K. (eds.) TACAS, LNCS, vol. 8413, pp. 46–61. Springer, Berlin (2014)Google Scholar
  15. 15.
    Craig, W.: Linear reasoning. A new form of the Herbrand-Gentzen theorem. J. Symb. Logic 22(3), 250–268 (1957)Google Scholar
  16. 16.
    Davey, B.A., Priestley, H.A.: Introduction to Lattices and Order, 2nd edn. Cambridge University Press, Cambridge (2002)CrossRefzbMATHGoogle Scholar
  17. 17.
    Dillig, I., Dillig, T., Li, B., McMillan, K.L.: Inductive invariant generation via abductive inference. In: Hosking, A.L., Eugster, P.T., Lopes, C.V. (eds.) OOPSLA, pp. 443–456. ACM (2013)Google Scholar
  18. 18.
    D’Silva, V., Kroening, D., Purandare, M., Weissenbacher, G.: Interpolant strength. In: VMCAI, pp. 129–145 (2010)Google Scholar
  19. 19.
    Esparza, J., Nielsen, M.: Decidability issues for Petri nets—a survey. Bull. Eur. Assoc. Theor. Comput. Sci. 52, 245–262 (1994)zbMATHGoogle Scholar
  20. 20.
    Felsing, D., Grebing, S., Klebanov, V., Ulbrich, M., Rümmer, P.: Automating regression verification. In: ASE (2014)Google Scholar
  21. 21.
    Flanagan, C., Leino, K.R.M.: Houdini, an annotation assistant for ESC/Java. In: FME, pp. 500–517 (2001)Google Scholar
  22. 22.
    Fribourg, L.: Petri nets, flat languages and linear arithmetic. In: Alpuente, M. (ed.) Proceedings of the WFLP’2000, pp. 344–365 (2000)Google Scholar
  23. 23.
    Ganty, P., Majumdar, R.: Algorithmic Verification of Asynchronous Programs. CoRR abs/1011.0551 (2010)Google Scholar
  24. 24.
    Garey, M.R., Johnson, D.S.: Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman, San Francisco (1979)zbMATHGoogle Scholar
  25. 25.
    Graf, S., Saidi, H.: Construction of abstract state graphs with PVS. In: CAV, pp. 72–83 (1997)Google Scholar
  26. 26.
    Grebenshchikov, S., Lopes, N.P., Popeea, C., Rybalchenko, A.: Synthesizing software verifiers from proof rules. In: PLDI (2012)Google Scholar
  27. 27.
    Harrison, J.: Handbook of Practical Logic and Automated Reasoning. Cambridge University Press, Cambridge (2009)CrossRefzbMATHGoogle Scholar
  28. 28.
    Henzinger, T.A., Jhala, R., Majumdar, R., McMillan, K.L.: Abstractions from proofs. In: 31st POPL (2004)Google Scholar
  29. 29.
    Henzinger, T.A., Jhala, R., Majumdar, R., McMillan, K.L.: Abstractions from proofs. In: POPL, pp. 232–244. ACM (2004)Google Scholar
  30. 30.
    Hoder, K., Bjørner, N.: Generalized property directed reachability. In: SAT, pp. 157–171 (2012)Google Scholar
  31. 31.
    Hoder, K., Kovács, L., Voronkov, A.: Playing in the grey area of proofs. In: POPL, pp. 259–272 (2012)Google Scholar
  32. 32.
    Hojjat, H., Iosif, R., Konecný, F., Kuncak, V., Rümmer, P.: Accelerating interpolants. In: ATVA, pp. 187–202 (2012)Google Scholar
  33. 33.
    Hojjat, H., Konecný, F., Garnier, F., Iosif, R., Kuncak, V., Rümmer, P.: A verification toolkit for numerical transition systems—tool paper. In: FM, pp. 247–251 (2012)Google Scholar
  34. 34.
    Hojjat, H., Rümmer, P., Subotic, P., Yi, W.: Horn clauses for communicating timed systems. In: Workshop on Horn Clauses for Verification and Synthesis (2014)Google Scholar
  35. 35.
    Hopcroft, J.E., Pansiot, J.J.: On the reachability problem for 5-dimensional vector addition systems. Theor. Comput. Sci. 8, 135–159 (1979)MathSciNetCrossRefzbMATHGoogle Scholar
  36. 36.
    Jhala, R., McMillan, K.L.: A practical and complete approach to predicate refinement. In: TACAS, pp. 459–473 (2006)Google Scholar
  37. 37.
    Kosaraju, S.R.: Decidability of reachability in vector addition systems (preliminary version). In: Proceedings of the STOC’82, pp. 267–281. ACM (1982)Google Scholar
  38. 38.
    Lambert, J.L.: A structure to decide reachability in Petri nets. Theor. Comput. Sci. 99(1), 79–104 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  39. 39.
    Leroux, J.: The general vector addition system reachability problem by Presburger inductive invariants. In: Proceedings of the LICS 2009, pp. 4–13. IEEE Computer Society (2009)Google Scholar
  40. 40.
    Leroux, J.: Vector addition system reachability problem: a short self-contained proof. In: Proceedings of the POPL’11 (POPL’11), pp. 307–316. ACM (2011)Google Scholar
  41. 41.
    Marques-Silva, J., Janota, M., Belov, A.: Minimal sets over monotone predicates in boolean formulae. In: CAV, pp. 592–607 (2013)Google Scholar
  42. 42.
    Mayr, E.W.: An algorithm for the general Petri net reachability problem. In: Proceedings of the STOC’81, pp. 238–246. ACM (1981)Google Scholar
  43. 43.
    McMillan, K.L.: Lazy abstraction with interpolants. In: CAV (2006)Google Scholar
  44. 44.
    McMillan, K.L.: Quantified invariant generation using an interpolating saturation prover. In: TACAS, pp. 413–427 (2008)Google Scholar
  45. 45.
    Popeea, C., Chin, W.: Dual analysis for proving safety and finding bugs. Sci. Comput. Program. 78(4), 390–411 (2013). doi: 10.1016/j.scico.2012.07.004
  46. 46.
    Rollini, S., Bruttomesso, R., Sharygina, N.: An efficient and flexible approach to resolution proof reduction. In: HVC, pp. 182–196 (2010)Google Scholar
  47. 47.
    Rollini, S.F., Alt, L., Fedyukovich, G., Hyvärinen, A.E.J., Sharygina, N.: Periplo: A framework for producing effective interpolants in sat-based software verification. In: McMillan, K.L., Middeldorp, A., Voronkov, A. (eds.) LPAR, LNCS, vol. 8312, pp. 683–693. Springer, Berlin (2013). doi: 10.1007/978-3-642-45221-5
  48. 48.
    Rollini, S.F., Sery, O., Sharygina, N.: Leveraging interpolant strength in model checking. In: CAV, pp. 193–209 (2012)Google Scholar
  49. 49.
    Rümmer, P., Hojjat, H., Kuncak, V.: Classifying and solving Horn clauses for verification. In: Cohen, E., Rybalchenko, A. (eds.) Verified Software: Theories, Tools, Experiments—5th International Conference (VSTTE), LNCS, vol. 8164, pp. 1–21. Springer, Berlin (2013)Google Scholar
  50. 50.
    Rümmer, P., Hojjat, H., Kuncak, V.: Disjunctive interpolants for Horn-clause verification. In: Computer Aided Verification (CAV), LNCS, vol. 8044, pp. 347–363. Springer, Berlin (2013)Google Scholar
  51. 51.
    Rümmer, P., Subotić, P.: Exploring interpolants. In: Formal Methods in Computer-Aided Design (FMCAD), pp. 69–76. IEEE (2013)Google Scholar
  52. 52.
    Rybalchenko, A., Sofronie-Stokkermans, V.: Constraint solving for interpolation. In: Proceedings of the VMCAI, LNCS, vol. 4349, pp. 346–362. Springer, Berlin (2007)Google Scholar
  53. 53.
    Seghir, M.N.: A lightweight approach for loop summarization. In: ATVA, pp. 351–365 (2011)Google Scholar
  54. 54.
    Smrcka, A., Vojnar, T.: Verifying parametrised hardware designs via counter automata. In: Haifa Verification Conference, pp. 51–68 (2007)Google Scholar
  55. 55.
    Srivastava, S., Gulwani, S.: Program verification using templates over predicate abstraction. In: PLDI, pp. 223–234 (2009)Google Scholar
  56. 56.
    Tonetta, S.: Abstract model checking without computing the abstraction. In: Cavalcanti, A., Dams, D. (eds.) FM, LNCS, vol. 5850, pp. 89–105. Springer, Berlin (2009)Google Scholar
  57. 57.
    Totla, N., Wies, T.: Complete instantiation-based interpolation. In: Giacobazzi, R., Cousot, R. (eds.) POPL, pp. 537–548. ACM (2013)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  • Jérôme Leroux
    • 1
  • Philipp Rümmer
    • 2
    Email author
  • Pavle Subotić
    • 2
  1. 1.Univ. BordeauxTalenceFrance
  2. 2.Uppsala UniversityUppsalaSweden

Personalised recommendations