Skip to main content

Counterexample to Induction-Guided Abstraction-Refinement (CTIGAR)

  • Conference paper

Part of the Lecture Notes in Computer Science book series (LNTCS,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.

Keywords

  • Model Check
  • Transition Relation
  • Proof Obligation
  • Abstract Domain
  • Partial Assignment

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  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)

    CrossRef  Google Scholar 

  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. 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)

    CrossRef  Google Scholar 

  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)

    CrossRef  Google Scholar 

  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)

    CrossRef  Google Scholar 

  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)

    CrossRef  Google Scholar 

  7. Biere, A.: Bounded Model Checking. In: Handbook of Satisfiability, pp. 457–481. IOS Press (2009)

    Google Scholar 

  8. Bradley, A.R.: IC3 reference implementation, https://github.com/arbrad/IC3ref/

  9. Bradley, A.R.: k-Step Relative Inductive Generalization. The Computing Research Repository, abs/1003.3649 (2010)

    Google Scholar 

  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)

    CrossRef  Google Scholar 

  11. Bradley, A.R.: Understanding IC3. In: Cimatti, A., Sebastiani, R. (eds.) SAT 2012. LNCS, vol. 7317, pp. 1–14. Springer, Heidelberg (2012)

    CrossRef  Google Scholar 

  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. 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)

    CrossRef  Google Scholar 

  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. 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. 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)

    CrossRef  Google Scholar 

  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. 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)

    CrossRef  Google Scholar 

  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. 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)

    CrossRef  Google Scholar 

  21. Craig, W.: Linear reasoning. A new form of the Herbrand-Gentzen theorem. Journal of Symbolic Logic 22(3), 250–268 (1957)

    CrossRef  MATH  MathSciNet  Google Scholar 

  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)

    CrossRef  Google Scholar 

  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. 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. 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)

    CrossRef  MATH  MathSciNet  Google Scholar 

  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. Gupta, A., Rybalchenko, A.: InvGen Benchmarks Suite, http://pub.ist.ac.at/~agupta/invgen/

  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. 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. 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. 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)

    CrossRef  Google Scholar 

  32. Karr, M.: Affine Relationships Among Variables of a Program. Acta Informatica 6, 133–151 (1976)

    CrossRef  MATH  MathSciNet  Google Scholar 

  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)

    CrossRef  Google Scholar 

  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)

    CrossRef  Google Scholar 

  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)

    CrossRef  Google Scholar 

  36. McMillan, K.L.: An Interpolating Theorem Prover. Theoretical Computer Science 345(1), 101–121 (2005)

    CrossRef  MATH  MathSciNet  Google Scholar 

  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)

    CrossRef  Google Scholar 

  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)

    CrossRef  Google Scholar 

  39. Terence Parr. ANTLR4, http://www.antlr.org/

  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. 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. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Birgmeier, J., Bradley, A.R., Weissenbacher, G. (2014). Counterexample to Induction-Guided Abstraction-Refinement (CTIGAR). In: Biere, A., Bloem, R. (eds) Computer Aided Verification. CAV 2014. Lecture Notes in Computer Science, vol 8559. Springer, Cham. https://doi.org/10.1007/978-3-319-08867-9_55

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-08867-9_55

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-08866-2

  • Online ISBN: 978-3-319-08867-9

  • eBook Packages: Computer ScienceComputer Science (R0)