Abstract
Model checking was introduced in the early 1980’s to provide a practical automated method for verifying concurrent systems. Model checking has had substantive impact on program verification. For the first time industrial strength systems are being verified on a routine basis. As time has progressed, the term model checking has acquired slightly different shades of meaning. In this paper we these consider variant aspects of model checking, elucidating some often overlooked and subtle distinctions.
This work was supported in part by National Science Foundation grants CCR-009-8141 & CCR-020-5483 and funding from Fujitsu Labs of America.
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
Association for Turing Machinery, 2007 Turing Award awarded to E.M. Clarke, E.A. Emerson, J. Sifakis; Full Citation (for founding .... the field of Model Checking) (2007); http://awards.acm.org/homepage.cfm?awd=140
Akers, S.B.: Binary Decision Diagrams. IEEE Trans. on Computers, C-27(6), 509–516 (1978)
Amla, N., Emerson, E.A., Namjoshi, K.S., Trefler, R.J.: Assume-Guarantee Based Compositional Reasoning for Synchronous Timing Diagrams. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, pp. 465–479. Springer, Heidelberg (2001)
Birch, J., Clarke, E., MacMillan, K., Dill, D., Hwang, L.: Symbolic Model Checking: 1020 States and Beyond. In: Logic in Computer Science, LICS, pp. 428–439 (1990)
Biere, A., Cimatti, A., Clarke, E., Zhu, Y.: Symbolic Model Checking without BDDs. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, pp. 193–207. Springer, Heidelberg (1999)
Ben-Ari, M., Manna, Z., Pnueli, A.: The Temporal Logic of Branching Time. In: Principles of Programming Languages, POPL, pp. 164–176 (1981)
Bryant, R.: Graph-Based Algorithms for Boolean Function Manipulation. IEEE Trans. Computers 35(8), 677–691 (1986)
Basu, S.K., Yeh, R.T.: Strong Verification of Programs. IEEE Trans. on Software Engineering, SE-1(3), 339–345 (1975)
Bloem, R., Ravi, K., Somenzi, F.: Symbolic guided search for CTL model checking. In: DAC 2000, pp. 29–34 (2000)
Bryant, R.E.: Graph-Based Algorithms for Boolean Function Manipulation. IEEE Transactions on Computers, C-35(8), 677691 (1986)
Burch, J.R., Clarke, E.M., Long, D.E., McMillan, K.L., Dill, D.L.: Symbolic model checking for sequential circuit verification. IEEE Trans. on CAD of Integrated Circuits and Systems 13(4), 401–424 (1993/1994)
Buchi, J.R.: On a Decision Method in Restricted Second Order Arithmetic. In: Proc. of Int’l. Congress on Logic Method, and Philosophy of Science, pp. 1–12. Stanford Univ. Press (1960/1962)
Burstall, R.M.: Program Proving as Hand Simulation with a Little Induction. In: IFIP Congress, pp. 308–312 (1974)
Clarke, E.M., Emerson, E.A.: The Design and Synthesis of Synchronization Skeletons Using Temporal Logic. In: Proceedings of the Workshop on Logics of Programs. LNCS, vol. 131, pp. 52–71. Springer, New York (1981)
Clarke, E.M., Emerson, E.A., Sistla, A.P.: Automatic Verification of Finite State Concurrent Systems Using Temporal Logic Specifications. ACM Trans. Prog. Lang. and Sys. 2(8), 244–263 (1986)
Clarke, E.M.: Program Invariants as Fixpoints. Computing 21(4), 273–294 (1979)
Cousot, P., Cousot, R.: Refining Model Checking by Abstract Interpretation. Automated Software Engineering: An International Journal 6(1), 69–95 (1999)
Cousot, P.: On Completeness in Abstract Model Checking from the Viewpoint of Abstract Interpretation. In: Reunion Workshop on Implementations of Logic, Saint Gilles, Reunion Island, November 11 (2000)
Daskalopulu, A.: Model Checking Contractual Protocols. In: Breuker, Leenes, Winkels (eds.) JURIX 2000: The 13th Annual Conference, pp. 35–47. IOS Press, Amsterdam (2000)
Deshmukh, J., Emerson, E.A., Gupta, P.: Automatic verification of parameterized data structures. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006. LNCS, vol. 3920, pp. 27–41. Springer, Heidelberg (2006)
de Bakker, J.W., Scott, D.: A Theory of Programs (1969) (unpublished manuscript)
de Roever, W.-P., de Boer, F.S., Hannemann, U., Hooman, J., Lakhnech, Y., Poel, M., Zwiers, J.: Concurrency Verification: Introduction to Compositional and Noncompositional Methods, xxiv+776 pages. Cambridge University Press, Cambridge (2001)
Dijkstra, E.W.: Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)
Dijkstra, E.W.: In Reply to Comments. EWD1058 (1989)
Emerson, E.A., Clarke, E.M.: Characterizing Correctness Properties of Parallel Programs Using Fixpoints. In: de Bakker, J.W., van Leeuwen, J. (eds.) ICALP 1980. LNCS, vol. 85, pp. 169–181. Springer, Heidelberg (1980)
Emerson, E.A., Halpern, J.Y.: “’Sometimes’ and ‘Not Never’ revisited: on branching versus linear time temporal logic. J. ACM 33(1), 151–178 (1986)
Emerson, E.A., Jutla, C.S.: Tree Automata, Mu-calculus, and Determinacy. In: FOCS 1991, pp. 368–377 (1991)
Emerson, E.A., Lei, C.-L.: Efficient Model Checking in Fragments of the Propositional Mu-Calculus. In: Logic in Computer Science, LICS, pp. 267–278 (1986)
Emerson, E.A., Lei, C.-L.: Modalities for Model Checking: Branching Time Strikes Back. Sci. of Comp. Prog. 8(3), 275–306 (1987)
Emerson, E.A.: Temporal and Modal Logic. Handbook of Theoretical Computer Science, vol. B. North-Holland, Amsterdam (1990)
Emerson, E.A., Mok, A.K., Sistla, A.P., Srinivasan, J.: Quantitative Temporal Reasoning. In: Clarke, E., Kurshan, R.P. (eds.) CAV 1990. LNCS, vol. 531, pp. 136–145. Springer, Heidelberg (1991)
Emerson, E.A., Namjoshi, K.S.: Automatic Verification of Parameterized Synchronous Systems. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 87–98. Springer, Heidelberg (1996)
Emerson, E.A., Namjoshi, K.S.: Verification of a Parameterized Bus Arbitration Protocol. In: Vardi, M.Y. (ed.) CAV 1998. LNCS, vol. 1427, pp. 452–463. Springer, Heidelberg (1998)
Emerson, E.A., Sistla, A.P.: Utilizing Symmetry when Model-Checking under Fairness Assumptions: An Automata-Theoretic Approach. ACM Trans. Program. Lang. Syst. 19(4), 617–638 (1997)
Giunchiglia, F., Traverso, P.: Planning as Model Checking. In: Biundo, S., Fox, M. (eds.) ECP 1999. LNCS, vol. 1809, pp. 1–20. Springer, Heidelberg (2000)
Floyd, R.W.: Assigning meanings to programs. In: Schwartz, J.T. (ed.) Proceedings of a Symposium in Applied Mathematics. Mathematical Aspects of Computer Science, vol. 19, pp. 19–32 (1967)
Fernandez, J.-C., Schwartz, J.P., Sifakis, J.: An Example of Specification and Verification in Cesar. The Analysis of Concurrent Systems, 199–210 (1983)
Giunchiglia, F., Traverso, P.: Planning as Model Checking. In: Biundo, S., Fox, M. (eds.) ECP 1999. LNCS (LNAI), vol. 1809. Springer, Heidelberg (2000)
Grosu, R., Smolka, S.A.: Monte Carlo Model Checking. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 271–286. Springer, Heidelberg (2005)
Hansson, H., Jonsson, B.: A Logic for Reasoning about Time and Reliability. Formal Asp. Comput. 6(5), 512–535 (1994)
Heath, J., Kwiatowska, M., Norman, G., Parker, D., Tymchysyn, O.: Probabilistic Model Checking of Complex Biological Pathways. In: Priami, C. (ed.) CMSB 2006. LNCS (LNBI), vol. 4210, pp. 32–47. Springer, Heidelberg (2006)
Brim, L., Haverkort, B.R., Leucker, M., van de Pol, J. (eds.): FMICS 2006 and PDMC 2006. LNCS, vol. 4346. Springer, Heidelberg (2007)
Hoare, C.A.R.: An Axiomatic Basis for Computer Programming. Commun. ACM 12(10), 576–580 (1969)
Holzmann, G.J.: On-The-Fly Model Checking. ACM Comput. Surv. 28(4es), 120 (1996)
IEEE-P1850-2005 Standard for Property Specification Language (PSL)
Jackson, D.: Mini-tutorial on Model Checking. In: Third IEEE Intl. Symp. on Requirements Engineering, Annapolis, Maryland, January 6-10 (1997)
Jurdenski, M., Paterson, M., Zwick, U.: A Deterministic Subexponential Algorithm for Parity Games. In: ACM-SIAM Symp. on Algorthms for Discrete Systems, January 2006, pp. 117–123 (2006)
Kozen, D.: Results on the Propositional Mu-Calculus. Theor. Comput. Sci. 27, 333–354 (1983)
Kleene, S.C.: Representation of Events in Nerve Nets and Finite Automata. In: McCarthy, J., Shannon, C. (eds.) Automata Studies, pp. 3–42. Princeton Univ. Press, Princeton (1956)
Knaster, B.: Un théorème sur les fonctions d’ensembles. Ann. Soc. Polon. Math. 6, 1332̆013134 (1928)
Kautz, H., Selman, B.: Planning as Satisfiability. In: Proceedings European Conference on Artificial Intelligence, ECAI 1992 (1992)
Kurshan, R.P.: Computer Aided Verification of Coordinating Processes: An Automata-theoretic Approach. Princeton Univ. Press, Princeton (1994)
Lamport, L.: “’Sometimes’ is Sometimes ’Not Never’ ”- On the Temporal Logic of Programs. In: Principles of Programming Languages, POPL, pp. 174–185 (1980)
Lee, C.Y.: Representation of Switching Circuits by Binary-Decision Programs. Bell Systems Technical Journal 38, 985–999 (1959)
Lichtenstein, O., Pnueli, A.: Checking that Finite State Programs meet their Linear Specification. In: Principles of Programming Languages, POPL, pp. 97–107 (1985)
Long, D.E., Browne, A., Clarke, E.M., Jha, S., Marero, W.: An improved Algorithm for the Evaluation of Fixpoint Expressions. In: Dill, D.L. (ed.) CAV 1994. LNCS, vol. 818, pp. 338–350. Springer, Heidelberg (1994)
Formal Methods Specification and Analysis Guidebook for the Verification of Software and Computer Systems, vol. II, A Practioners Companion, [NASA-GB-01-97], 245 p. (1997)
Namjoshi, K.S., Kurshan, R.P.: Syntactic Program Transformations for Automatic Abstraction. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 435–449. Springer, Heidelberg (2000)
National Institute of Standards and Technology, US Department of Commerce, Software Errors Cost U.S. Economy $59.5 Billion Annually, NIST News Release, June 28 (2002), http://www.nist.gov/public_affairs/releases/n02-10.htm
Park, D.: Fixpoint induction and proofs of program properties. In: Meltzer, B., Michie, D. (eds.) Machine Intelligence, vol. 5. Edinburgh University Press, Edinburgh (1969)
Park, D.: Concurrency and Automata on Infinite Sequences. Theoretical Computer Science, 167–183 (1981)
7th International Workshop on Parallel and Distributed Methods in Verification, PDMC 2008, Affiliated to ETAPS 2008, http://pdmc.informatik.tu-muenchen.de/PDMC08/
Pnueli, A.: The Temporal Logic of Programs. In: Foundations of Computer Science, FOCS, pp. 46–57 (1977)
Pnueli, A.: The Temporal Semantics of Concurrent Programs. Semantics of Concurrent Computation, 1–20 (1979)
Prior, A.: Past, Present, and Future. Oxford University Press, Oxford (1967)
Queille, J.-P., Sifakis, J.: Specification and verification of concurrent systems in CESAR. In: Dezani-Ciancaglini, M., Montanari, U. (eds.) Programming 1982. LNCS, vol. 137, pp. 337–351. Springer, Heidelberg (1982)
Sokolsky, O., Smolka, S.: Incremental model checking in the modal -calculus. In: Dill, D. (ed.) CAV 1994. LNCS, vol. 818, pp. 352–363. Springer, Heidelberg (1994)
Sunshine, C.A.: Survey of protocol definition and verification techniques. ACM SIGCOMM Computer Communication Review 8(3), 35–41 (1978)
Tarski, A.: A lattice-theoretical fixpoint theorem and its applications. Pac. J. Math. 5, 285–309 (1955)
Turing, A.M.: On Computable Numbers, with an Application to the Entscheidungproblem. Proc. London Math. Society 2(42), 230–265 (1936); A Correction, ibid 43, 544–546
Turing, A.M.: Checking a Large Routine. In: Paper for the EDSAC Inaugural Conference. Typescript published in Report of a Conference on High Speed Automatic Calculating Machines, June 24, pp. 67–69 (1949)
Vardi, M.Y.: Branching vs. Linear Time: Final Showdown. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, pp. 1–22. Springer, Heidelberg (2001)
Vardi, M.Y., Wolper, P.: An Automata-Theoretic Approach to Automatic Program Verification (Preliminary Report). In: Logic in Computer Science, LICS, pp. 332–344 (1986)
von Bochmann, G.: Finite State Description of Communication Protocols. Computer Networks 2, 361–372 (1978)
Wang, W., Hidvegi, Z., Bailey, A., Whinston, A.: E-Process Design and Assurance Using Model Checking. IEEE Computer 33(10), 48–53 (2000)
Wikipedia, “Model Checking” (July 30, 2008), http://en.wikipedia.org/wiki/Model_checking
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Emerson, E.A. (2010). Meanings of Model Checking. In: Dams, D., Hannemann, U., Steffen, M. (eds) Concurrency, Compositionality, and Correctness. Lecture Notes in Computer Science, vol 5930. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11512-7_15
Download citation
DOI: https://doi.org/10.1007/978-3-642-11512-7_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-11511-0
Online ISBN: 978-3-642-11512-7
eBook Packages: Computer ScienceComputer Science (R0)