Skip to main content

Counterexamples Revisited: Principles, Algorithms, Applications

  • Chapter
Verification: Theory and Practice

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2772))

Abstract

Algorithmic counterexample generation is a central feature of model checking which sets the method apart from other approaches such as theorem proving. The practical value of counterexamples to the verification engineer is evident, and for many years, counterexample generation algorithms have been employed in model checking systems, even though they had not been subject to an adequate fundamental investigation. Recent advances in model checking technology such as counterexample-guided abstraction refinement have put strong emphasis on counterexamples, and have lead to renewed interest both in fundamental and pragmatic aspects of counterexample generation. In this paper, we survey several key contributions to the subject including symbolic algorithms, results about the graph-theoretic structure of counterexamples, and applications to automated abstraction as well as software verification.

Irrefutability is not a virtue of a theory (as people often think) but a vice. Karl R. Popper

This research was sponsored by the Semiconductor Research Corporation (SRC) under contract no. 99-TJ-684, the National Science Foundation (NSF) under grant no. CCR-9803774, the Office of Naval Research (ONR), the Naval Research Laboratory (NRL) under contract no. N00014-01-1-0796, and by the Defense Advanced Research Projects Agency, the Army Research Office (ARO) under contract no. DAAD19-01-1-0485, the General Motors Collaborative Research Lab at CMU, the Austrian Science Fund Project N Z29-N04, and the EU Research and Training Network GAMES. The views and conclusions contained in this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of SRC, NSF, ONR, NRL, DOD, ARO, or the U.S. government.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. F. Balarin and A. L. Sangiovanni-Vincentelli. An iterative approach to language containment. In Computer-Aided Verification, 1993.

    Google Scholar 

  2. T. Ball, M. Naik, and S. K. Rajamani. From symptom to cause: Localizing erros in counterexample traces. In Annual ACM Symposium on Principles of Programming Languages, 2003.

    Google Scholar 

  3. T. Ball and S. K. Rajamani. Getting abstract explanations of spurious counterexamples in C programs, 2002. Microsoft Technical Report MSR-TR-2002-09.

    Google Scholar 

  4. S. Barner, D. Geist, and A. Gringauze. Symbolic localization reducation with reconstruction layering and backtracking. In CAV 2002, volume 2404 of LNCS, pages 65-77, 2002.

    Google Scholar 

  5. M. Ben-Ari, Z. Manna, and A. Pnueli. The temporal logic of branching time. Acta Inf., 20:207–226, 1983. Full version of POPL’81 paper.

    Article  MATH  MathSciNet  Google Scholar 

  6. A. Biere, A. Cimatti, E. Clarke, M. Fujita, and Y. Zhu. Symbolic model checking using SAT procedures instead of BDDs. In Design Automation Conference, pages 317-320, 1999.

    Google Scholar 

  7. A. Biere, A. Cimatti, E. Clarke, and Y. Zhu. Symbolic model checking without BDDs. In TACAS’99, number 1579 in LNCS. Springer-Verlag, 1999.

    Google Scholar 

  8. R. E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Trans. Comput., C-35(8):677–691, Aug. 1986.

    Article  Google Scholar 

  9. F. Buccafurri, T. Eiter, G. Gottlob, and N. Leone. On ACTL formulas having deterministic counterexamples. Journal of Computer and System Sciences, 62(3):463–515, 2001.

    Article  MATH  MathSciNet  Google Scholar 

  10. J. R. Burch, E. M. Clarke, K. L. McMillan, D. L. Dill, and L. J. Hwang. Symbolic model checking: 1020 states and beyond. Information and Computation, 98(2):142–170, 1992.

    Article  MATH  MathSciNet  Google Scholar 

  11. A. Cimatti, E. Clarke, F. Giunchiglia, and M. Roveri. NuSMV: a new symbolic model checker. Software Tools for Technology Transfer, 1998.

    Google Scholar 

  12. E. Clarke, S. Bose, M. C. Browne, and O. Grumberg. The design and verification of finite state hardware controllers. In Int. Symposium on VLSI Technology, Systems, and Applications, pages 53-61, 1987.

    Google Scholar 

  13. E. Clarke, S. Chaki, S. Jha, and H. Veith. Strategy-guided abstraction refinement, 2003.

    Google Scholar 

  14. E. Clarke and I. A. Draghicescu. Expressibility results for linear time and branching time logics. In Linear Time, Branching Time, and Partial Order in Logics and Models for Concurrency, volume 354, pages 428-437. Springer-Verlag: Lecture Notes in Computer Science, 1988.

    Google Scholar 

  15. E. Clarke and E. A. Emerson. Synthesis of synchronization skeletons for branching time temporal logic. In Logic of Programs: Workshop, LNCS, 1981.

    Google Scholar 

  16. E. Clarke, A. Fehnker, Z. Han, B. H. Krogh, O. Stursberg, and M. Theobald. Verification of hybrid systems based on counterexample-guided abstraction refinement. In TACAS’03, pages 192-207, 2003.

    Google Scholar 

  17. E. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement. In Computer Aided Verification, pages 154-169, 2000. Extended version to appear in J. ACM.

    Google Scholar 

  18. E. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Progress on the state explosion problem in model checking. In Informatics, 10 Years Back, 10 Years Ahead, volume 2000 of LNCS, pages 176-194, 2001.

    Google Scholar 

  19. E. Clarke, O. Grumberg, and D. E. Long. Model checking and abstraction. ACM Transactions on Programming Languages and Systems, 16(5):1512–1542, September 1994.

    Article  Google Scholar 

  20. E. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, 1999.

    Google Scholar 

  21. E. Clarke, A. Gupta, J. Kukula, and O. Strichman. SAT based abstraction — refinement using ILP and machine learning techniques. In E. Brinksma and K. Larsen, editors, Computer-Aided Verification, volume 2404 of LNCS, pages 265-279, Copenhagen, Denmark, July 2002. Springer.

    Google Scholar 

  22. E. Clarke, S. Jha, Y. Lu, and H. Veith. Tree-like counterexamples in model checking. In Proc. Logic in Computer Science (LICS), 2002.

    Google Scholar 

  23. E. Clarke, D. Kroening, J. Ouaknine, and O. Strichman. Completeness and complexity of bounded model checking. 2003.

    Google Scholar 

  24. F. Copty, L. Fix, R. Fraer, E. Giunchiglia, G. Kamhi, A. Tacchella, and M. Y. Vardi. Benefits of bounded model checking at an industrial setting. In Computer-Aided Verification, pages 436-453, 2001.

    Google Scholar 

  25. P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. ACM Symposium of Programming Language, pages 238-252, 1977.

    Google Scholar 

  26. S. Das and D. Dill. Successive approximation of abstract transition relations. In LICS, pages 51-60, 2001.

    Google Scholar 

  27. S. Das and D. Dill. Counter-example based predicate discovery in predicate abstraction. In Formal Methods in Computer-Aided Design, pages 19-32, 2002.

    Google Scholar 

  28. E.M. Clarke, O. Grumberg, K.L. McMillan, and X. Zhao. Efficient Generation of Counterexamples and Witnesses in Symbolic Model Checking. In 32nd Design Automation Conference (DAC 95), pages 427-432, San Francisco, CA, USA, 1995.

    Google Scholar 

  29. R. Giacobazzi and E. Quintarelli. Incompleteness, counterexamples and refinements in abstract model checking. In SAS’01, pages 356-373, 2001.

    Google Scholar 

  30. M. Glusman, G. Kamhi, S. Mador-Haim, R. Fraer, and M. Vardi. Multiple-counterexample guided iterative abstraction refinement: An industrial evaluation. In TACAS’03, pages 176-191, 2003.

    Google Scholar 

  31. E. Grädel. Private Communication, 2002.

    Google Scholar 

  32. S. Graf and H. Saidi. Construction of abstract state graphs with PVS. In Computer-Aided Verification, June 1997.

    Google Scholar 

  33. A. Groce and W. Visser. What went wrong: Explaining counterexamples. In SPIN Workshop, 2003.

    Google Scholar 

  34. A. Gurfinkel and M. Chechik. Generating counterexamples for multi-valued model checking. In FME, 2003.

    Google Scholar 

  35. A. Gurfinkel and M. Chechik. Proof-like counterexamples. In TACAS, 2003.

    Google Scholar 

  36. T. A. Henzinger, R. Jhala, and R. Majumdar. Counterexample guided control. In ICALP, 2003.

    Google Scholar 

  37. R. Hojati, R. K. Brayton, and R. P. Kurshan. BDD-based debugging of designs using language containment and fair CTL. In Proc. International Conference on Computer Aided Verification (CAV), LNCS, 1993.

    Google Scholar 

  38. G. Holzmann. Design and Validation of Computer Protocols. Prentice Hall, 1991.

    Google Scholar 

  39. G. Holzmann. The model checker Spin. IEEE Trans. on Software Engineering, 23(5):279–295, 1997.

    Article  MathSciNet  Google Scholar 

  40. R. Hossley and C. Rackoff. The emptiness problem for automata on infinite trees. In FOCS’72, pages 121-124, 1972.

    Google Scholar 

  41. H. Jin, K. Ravi, and F. Somenzi. Fate and free will in error traces. In TACAS, volume 2280 of LNCS, pages 445-459, 2002.

    Google Scholar 

  42. O. Kupferman and M. Vardi. Vacuity detection in temporal model checking. In Formal Aspect of System Design, pages 82-96, 1999.

    Google Scholar 

  43. O. Kupferman and M. Y. Vardi. Module checking. In Proc. 8th Int’l. Conf. on Computer-Aided Verification, Lecture Notes in Computer Science 1102, pages 75-86. Springer-Verlag, 1996.

    Google Scholar 

  44. R. P. Kurshan. Computer-Aided Verification of Coordinating Processes. Princeton University Press, 1994.

    Google Scholar 

  45. Y. Lakhnech, S. Bensalem, S. Berezin, and S. Owre. Incremental verification by abstraction. In TACAS’01, pages 98-112, 2001.

    Google Scholar 

  46. M. Maidl. The common fragment of CTL and LTL. In Proc. 41th Symp. on Foundations of Computer Science (FOCS), pages 643-652, 2000.

    Google Scholar 

  47. Z. Manna and A. Pnueli. Temporal Verifications of Reactive Systems — Safety. Springer-Verlag, 1995.

    Google Scholar 

  48. K. L. McMillan. Symbolic Model Checking. Kluwer Academic Publishers, 1993.

    Google Scholar 

  49. M. Moskewicz, C. Madigan, Y. Zhao, L. Zhang, and S. Malik. CHAFF: engineering an efficient SAT solver. In DAC, 2001.

    Google Scholar 

  50. K. S. Namjoshi. Certifying model checkers. In Computer-Aided Verification, pages 2-13, 2001.

    Google Scholar 

  51. C. Pasareanu, M. Dwyer, and W. Visser. Finding feasible counter-examples when model checking abstracted Java programs. In TACAS’01, pages 284-298, 2001.

    Google Scholar 

  52. J. Quielle and J. Sifakis. Specification and verification of concurrent systems in cesar. In Proceedings of the Fifth International Symposium in Programming, 1981.

    Google Scholar 

  53. N. Shankar and M. Sorea. Counterexample-driven model checking, 2003.

    Google Scholar 

  54. O. Sheyner, S. Jha, and J. Wing. Automated generation and analysis of attack graphs. In IEEE Symposium on Security and Privacy, pages 273-284, 2002.

    Google Scholar 

  55. S. Shoman and O. Grumberg. A game-based framework for CTL counter-examples and 3-valued abstraction refinement. In CAV 2003, 2003.

    Google Scholar 

  56. A. S. Sistla and E. Clarke. The complexity of propositional linear temporal logics. J. Assoc. Comput. Mach., 32(3):733–749, 1985.

    Article  MATH  MathSciNet  Google Scholar 

  57. P. Sistla. Private Communication, 2002.

    Google Scholar 

  58. L. Tan and R. Cleaveland. Evidence-based model checking. In Computer-Aided Verification, pages 455-470, 2002.

    Google Scholar 

  59. M. Y. Vardi and P. Wolper. Reasoning about infinite computations. Information and Computation, 115(1):1–37, 1994.

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Clarke, E., Veith, H. (2003). Counterexamples Revisited: Principles, Algorithms, Applications. In: Dershowitz, N. (eds) Verification: Theory and Practice. Lecture Notes in Computer Science, vol 2772. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39910-0_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-39910-0_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-21002-3

  • Online ISBN: 978-3-540-39910-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics