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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
F. Balarin and A. L. Sangiovanni-Vincentelli. An iterative approach to language containment. In Computer-Aided Verification, 1993.
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.
T. Ball and S. K. Rajamani. Getting abstract explanations of spurious counterexamples in C programs, 2002. Microsoft Technical Report MSR-TR-2002-09.
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.
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.
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.
A. Biere, A. Cimatti, E. Clarke, and Y. Zhu. Symbolic model checking without BDDs. In TACAS’99, number 1579 in LNCS. Springer-Verlag, 1999.
R. E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Trans. Comput., C-35(8):677–691, Aug. 1986.
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.
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.
A. Cimatti, E. Clarke, F. Giunchiglia, and M. Roveri. NuSMV: a new symbolic model checker. Software Tools for Technology Transfer, 1998.
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.
E. Clarke, S. Chaki, S. Jha, and H. Veith. Strategy-guided abstraction refinement, 2003.
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.
E. Clarke and E. A. Emerson. Synthesis of synchronization skeletons for branching time temporal logic. In Logic of Programs: Workshop, LNCS, 1981.
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.
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.
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.
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.
E. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, 1999.
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.
E. Clarke, S. Jha, Y. Lu, and H. Veith. Tree-like counterexamples in model checking. In Proc. Logic in Computer Science (LICS), 2002.
E. Clarke, D. Kroening, J. Ouaknine, and O. Strichman. Completeness and complexity of bounded model checking. 2003.
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.
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.
S. Das and D. Dill. Successive approximation of abstract transition relations. In LICS, pages 51-60, 2001.
S. Das and D. Dill. Counter-example based predicate discovery in predicate abstraction. In Formal Methods in Computer-Aided Design, pages 19-32, 2002.
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.
R. Giacobazzi and E. Quintarelli. Incompleteness, counterexamples and refinements in abstract model checking. In SAS’01, pages 356-373, 2001.
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.
E. Grädel. Private Communication, 2002.
S. Graf and H. Saidi. Construction of abstract state graphs with PVS. In Computer-Aided Verification, June 1997.
A. Groce and W. Visser. What went wrong: Explaining counterexamples. In SPIN Workshop, 2003.
A. Gurfinkel and M. Chechik. Generating counterexamples for multi-valued model checking. In FME, 2003.
A. Gurfinkel and M. Chechik. Proof-like counterexamples. In TACAS, 2003.
T. A. Henzinger, R. Jhala, and R. Majumdar. Counterexample guided control. In ICALP, 2003.
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.
G. Holzmann. Design and Validation of Computer Protocols. Prentice Hall, 1991.
G. Holzmann. The model checker Spin. IEEE Trans. on Software Engineering, 23(5):279–295, 1997.
R. Hossley and C. Rackoff. The emptiness problem for automata on infinite trees. In FOCS’72, pages 121-124, 1972.
H. Jin, K. Ravi, and F. Somenzi. Fate and free will in error traces. In TACAS, volume 2280 of LNCS, pages 445-459, 2002.
O. Kupferman and M. Vardi. Vacuity detection in temporal model checking. In Formal Aspect of System Design, pages 82-96, 1999.
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.
R. P. Kurshan. Computer-Aided Verification of Coordinating Processes. Princeton University Press, 1994.
Y. Lakhnech, S. Bensalem, S. Berezin, and S. Owre. Incremental verification by abstraction. In TACAS’01, pages 98-112, 2001.
M. Maidl. The common fragment of CTL and LTL. In Proc. 41th Symp. on Foundations of Computer Science (FOCS), pages 643-652, 2000.
Z. Manna and A. Pnueli. Temporal Verifications of Reactive Systems — Safety. Springer-Verlag, 1995.
K. L. McMillan. Symbolic Model Checking. Kluwer Academic Publishers, 1993.
M. Moskewicz, C. Madigan, Y. Zhao, L. Zhang, and S. Malik. CHAFF: engineering an efficient SAT solver. In DAC, 2001.
K. S. Namjoshi. Certifying model checkers. In Computer-Aided Verification, pages 2-13, 2001.
C. Pasareanu, M. Dwyer, and W. Visser. Finding feasible counter-examples when model checking abstracted Java programs. In TACAS’01, pages 284-298, 2001.
J. Quielle and J. Sifakis. Specification and verification of concurrent systems in cesar. In Proceedings of the Fifth International Symposium in Programming, 1981.
N. Shankar and M. Sorea. Counterexample-driven model checking, 2003.
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.
S. Shoman and O. Grumberg. A game-based framework for CTL counter-examples and 3-valued abstraction refinement. In CAV 2003, 2003.
A. S. Sistla and E. Clarke. The complexity of propositional linear temporal logics. J. Assoc. Comput. Mach., 32(3):733–749, 1985.
P. Sistla. Private Communication, 2002.
L. Tan and R. Cleaveland. Evidence-based model checking. In Computer-Aided Verification, pages 455-470, 2002.
M. Y. Vardi and P. Wolper. Reasoning about infinite computations. Information and Computation, 115(1):1–37, 1994.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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