Counterexample to Induction-Guided Abstraction-Refinement (CTIGAR)

  • Johannes Birgmeier
  • Aaron R. Bradley
  • Georg Weissenbacher
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8559)

Abstract

Typical CEGAR-based verification methods refine the abstract domain based on full counterexample traces. The finite state model checking algorithm IC3 introduced the concept of discovering, generalizing from, and thereby eliminating individual state counterexamples to induction (CTIs). This focus on individual states suggests a simpler abstraction-refinement scheme in which refinements are performed relative to single steps of the transition relation, thus reducing the expense of refinement and eliminating the need for full traces. Interestingly, this change in refinement focus leads to a natural spectrum of refinement options, including when to refine and which type of concrete single-step query to refine relative to. Experiments validate that CTI-focused abstraction refinement, or CTIGAR, is competitive with existing CEGAR-based tools.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Albarghouthi, A., McMillan, K.L.: Beautiful Interpolants. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 313–329. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  2. 2.
    Cimatti, A., Griggio, A., Schaafsma, B.J., Sebastiani, R.: The MathSAT5 SMT Solver. In: Piterman, N., Smolka, S.A. (eds.) TACAS 2013. LNCS, vol. 7795, pp. 93–107. Springer, Heidelberg (2013)Google Scholar
  3. 3.
    Ball, T., Cook, B., Das, S., Rajamani, S.K.: Refining Approximations in Software Predicate Abstraction. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 388–403. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  4. 4.
    Ball, T., Cook, B., Levin, V., Rajamani, S.K.: SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft. In: Boiten, E.A., Derrick, J., Smith, G.P. (eds.) IFM 2004. LNCS, vol. 2999, pp. 1–20. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  5. 5.
    Ball, T., Podelski, A., Rajamani, S.K.: Boolean and Cartesian abstraction for model checking C programs. Software Tools for Technology Transfer (STTT) 5(1), 49–58 (2003)CrossRefGoogle Scholar
  6. 6.
    Beyer, D., Keremoglu, M.E.: CPAchecker: A Tool for Configurable Software Verification. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 184–190. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  7. 7.
    Biere, A.: Bounded Model Checking. In: Handbook of Satisfiability, pp. 457–481. IOS Press (2009)Google Scholar
  8. 8.
    Bradley, A.R.: IC3 reference implementation, https://github.com/arbrad/IC3ref/
  9. 9.
    Bradley, A.R.: k-Step Relative Inductive Generalization. The Computing Research Repository, abs/1003.3649 (2010)Google Scholar
  10. 10.
    Bradley, A.R.: SAT-Based Model Checking Without Unrolling. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol. 6538, pp. 70–87. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  11. 11.
    Bradley, A.R.: Understanding IC3. In: Cimatti, A., Sebastiani, R. (eds.) SAT 2012. LNCS, vol. 7317, pp. 1–14. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  12. 12.
    Bradley, A.R., Manna, Z.: Checking Safety by Inductive Generalization of Counterexamples to Induction. In: Formal Methods in Computer-Aided Design (FMCAD), pp. 173–180. IEEE (2007)Google Scholar
  13. 13.
    Bruttomesso, R., Cimatti, A., Franzén, A., Griggio, A., Sebastiani, R.: The mathSAT 4 SMT solver. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 299–303. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  14. 14.
    Cabodi, G., Nocco, S., Quer, S.: Interpolation sequences revisited. In: Design Automation and Test in Europe (DATE), pp. 316–322. IEEE (2011)Google Scholar
  15. 15.
    Chockler, H., Ivrii, A., Matsliah, A., Moran, S., Nevo, Z.: Incremental Formal Verification of Hardware. In: Formal Methods in Computer-Aided Design (FMCAD), pp. 135–143. IEEE (2011)Google Scholar
  16. 16.
    Cimatti, A., Griggio, A.: Software Model Checking via IC3. In: Madhusudan, P., Seshia, S.A. (eds.) CAV 2012. LNCS, vol. 7358, pp. 277–293. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  17. 17.
    Cimatti, A., Griggio, A., Mover, S., Tonetta, S.: IC3 Modulo Theories via Implicit Predicate Abstraction. In: Ábrahám, E., Havelund, K. (eds.) TACAS 2014. LNCS, vol. 8413, pp. 46–61. Springer, Heidelberg (2014)Google Scholar
  18. 18.
    Clarke, E.M., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-Guided Abstraction Refinement. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 154–169. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  19. 19.
    Clarke, E.M., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-Guided Abstraction Refinement for Symbolic Model Checking. Journal of the ACM 50(5) (September 2003)Google Scholar
  20. 20.
    Clarke, E., Kroning, D., Lerda, F.: A Tool for Checking ANSI-C Programs. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 168–176. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  21. 21.
    Craig, W.: Linear reasoning. A new form of the Herbrand-Gentzen theorem. Journal of Symbolic Logic 22(3), 250–268 (1957)CrossRefMATHMathSciNetGoogle Scholar
  22. 22.
    de Moura, L., Bjørner, N.: Z3: An efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  23. 23.
    Donaldson, A.F., Haller, L., Kroening, D., Rümmer, P.: Software Verification Using k-Induction. In: Yahav, E. (ed.) SAS 2011. LNCS, vol. 6887, pp. 351–368. Springer, Heidelberg (2011)Google Scholar
  24. 24.
    Een, N., Mishchenko, A., Brayton, R.: Efficient Implementation of Property Directed Reachability. In: Formal Methods in Computer-Aided Design (FMCAD), pp. 125–134. IEEE (2011)Google Scholar
  25. 25.
    Ernst, M.D., Perkins, J.H., Guo, P.J., McCamant, S., Pacheco, C., Tschantz, M.S., Xiao, C.: The Daikon System for Dynamic Detection of Likely Invariants. Science of Computer Programming 69(1-3), 35–45 (2007)CrossRefMATHMathSciNetGoogle Scholar
  26. 26.
    Gulavani, B.S., Chakraborty, S., Nori, A.V., Rajamani, S.K.: Dagger Benchmarks Suite, http://www.cfdvs.iitb.ac.in/~bhargav/dagger.php
  27. 27.
    Gupta, A., Rybalchenko, A.: InvGen Benchmarks Suite, http://pub.ist.ac.at/~agupta/invgen/
  28. 28.
    Hassan, Z., Bradley, A.R., Somenzi, F.: Better Generalization in IC3. In: Formal Methods in Computer-Aided Design (FMCAD). IEEE (2013)Google Scholar
  29. 29.
    Henzinger, T.A., Jhala, R., Majumdar, R., McMillan, K.L.: Abstractions from Proofs. In: Principles of Programming Languages (POPL), pp. 232–244. ACM (2004)Google Scholar
  30. 30.
    Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Lazy Abstraction. In: Principles of Programming Languages (POPL), pp. 58–70. ACM (2002)Google Scholar
  31. 31.
    Hoder, K., Bjørner, N.: Generalized Property Directed Reachability. In: Cimatti, A., Sebastiani, R. (eds.) SAT 2012. LNCS, vol. 7317, pp. 157–171. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  32. 32.
    Karr, M.: Affine Relationships Among Variables of a Program. Acta Informatica 6, 133–151 (1976)CrossRefMATHMathSciNetGoogle Scholar
  33. 33.
    Kindermann, R., Junttila, T., Niemelä, I.: SMT-Based Induction Methods for Timed Systems. In: Jurdziński, M., Ničković, D. (eds.) FORMATS 2012. LNCS, vol. 7595, pp. 171–187. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  34. 34.
    Lahiri, S.K., Nieuwenhuis, R., Oliveras, A.: SMT Techniques for Fast Predicate Abstraction. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 424–437. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  35. 35.
    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)CrossRefGoogle Scholar
  36. 36.
    McMillan, K.L.: An Interpolating Theorem Prover. Theoretical Computer Science 345(1), 101–121 (2005)CrossRefMATHMathSciNetGoogle Scholar
  37. 37.
    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
  38. 38.
    Müller-Olm, M., Seidl, H.: A Note on Karr’s algorithm. In: Díaz, J., Karhumäki, J., Lepistö, A., Sannella, D. (eds.) ICALP 2004. LNCS, vol. 3142, pp. 1016–1028. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  39. 39.
    Terence Parr. ANTLR4, http://www.antlr.org/
  40. 40.
    Sharma, R., Gupta, S., Hariharan, B., Aiken, A., Liang, P., Nori, A.V.: A Data Driven Approach for Algebraic Loop Invariants. In: Felleisen, M., Gardner, P. (eds.) ESOP 2013. LNCS, vol. 7792, pp. 574–592. Springer, Heidelberg (2013)Google Scholar
  41. 41.
    Vizel, Y., Grumberg, O., Shoham, S.: Lazy Abstraction and SAT-Based Reachability in Hardware Model Checking. In: Formal Methods in Computer-Aided Design (FMCAD), pp. 173–181. IEEE (2012)Google Scholar
  42. 42.
    Welp, T., Kuehlmann, A.: QF_BV Model Checking with Property Directed Reachability. In: Design Automation and Test in Europe (DATE), pp. 791–796. EDA Consortium (2013)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Johannes Birgmeier
    • 1
  • Aaron R. Bradley
    • 2
  • Georg Weissenbacher
    • 1
  1. 1.Vienna University of TechnologyAustria
  2. 2.Mentor GraphicsUSA

Personalised recommendations