Abstract
Model checking provides an automated method for verifying concurrent systems. Correctness specifications are given in temporal logic. The method hinges on an efficient and flexible graph-theoretic reachability algorithm. At the time of its introduction in the early 1980’s, the prevailing paradigm for verification was a manual one of proof-theoretic reasoning using formal axioms and inference rules oriented towards sequential programs. The need to encompass concurrent programs, the desire to avoid the difficulties with manual deductive proofs, and the small model theorem for temporal logic motivated the development of model checking.
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
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.) ETAPS 2001 and 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)
Clarke, E., Biere, A., Cimatti, A., Zhu, Y.: Symbolic Model Checking without BDDs. In: Cleaveland, W.R. (ed.) ETAPS 1999 and 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 1981, 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)
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 1960, pp. 1–12. Stanford Univ. Press (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, IBM Watson Research Center, Yorktown Heights, May 1981. 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), 3–294 (1979)
Daskalopulu, A.: Model Checking Contractual Protocols. In: Breuker, Leenes, Winkels (eds.) Legal Knowledge and Information Systems. JURIX 2000: The 13th Annual Conference, pp. 35–47. IOS Press, Breuker (2000)
Deshmukh, J., Emerson, E.A., Gupta, P.: Automatic Verification of Parameterized Data Structures. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006 and ETAPS 2006. LNCS, vol. 3920, pp. 27–41. Springer, Heidelberg (2006)
de Bakker, J.W., Scott, D.: A Theory of Programs (unpublished manuscript, 1969)
Dijkstra, E.W.: Discipline of Programming. Prentice-Hall (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 1986, 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. In: Handbook of Theoretical Computer Science, vol. B. North-Holland (1990)
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: Y. Vardi, M. (ed.) CAV 1998. LNCS, vol. 1427, pp. 452–463. Springer, Heidelberg (1998)
Allen Emerson, E., Prasad Sistla, A.: 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: ECP 1999, pp. 1–20 (1999)
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)
Jean-Claude Fernandez, J., Schwartz, 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: ECP 1999. LNCS (LNAI), Springer (1999)
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 (October 2006)
Brim, L., Haverkort, B.R., Leucker, M., van de Pol, J. (eds.): FMICS 2006 and PDMC 2006. LNCS, vol. 4346. Springer, Heidelberg (2006)
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, pp. 117–123 (January 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 (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)
Kurshan, R.P.: Computer Aided Verification of Coordinating Processes: An Automata-theoretic Approach. Princeton University Press (1994)
Lamport, L.: “Sometimes” is Sometimes ’Not Never’ - On the Temporal Logic of Programs. In: Principles of Programming Languages, POPL 1980, 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, p.245 (1997) [NASA-GB-01-97]
Kedar, S., Namjoshi, 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, Scotland, vol. 5, Edinburgh University Press, Edinburgh (1969)
Park, D.: Concurrency and Automata on Infinite Sequences. Theoretical Computer Science, pp. 167–183 (1981)
Pnueli, A.: The Temporal Logic of Programs. Foundations of Computer Science, FOCS, pp. 46–57 (1977)
Pnueli, A.: The Temporal Semantics of Concurrent Programs. Semantics of Concurrent Computation, pp 1–20 (1979)
Prior, A.: Past, Present, and Future. Oxford University Press (1967)
Queille, J.-P., Sifakis, J.: Specification and verification of concurrent systems in CESAR. In: Symposium on Programming. LNCS, vol. 137, pp. 337–351. Springer (1982)
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: EDSAC Inaugural Conference, Typescript published in Report of a Conference on High Speed Automatic Calculating Machines, pp. 67–69 (June 24, 1949)
Vardi, M.Y.: Branching vs. Linear Time: Final Showdown. In: Margaria, T., Yi, W. (eds.) ETAPS 2001 and 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)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Emerson, E.A. (2008). The Beginning of Model Checking: A Personal Perspective . In: Grumberg, O., Veith, H. (eds) 25 Years of Model Checking. Lecture Notes in Computer Science, vol 5000. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69850-0_2
Download citation
DOI: https://doi.org/10.1007/978-3-540-69850-0_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-69849-4
Online ISBN: 978-3-540-69850-0
eBook Packages: Computer ScienceComputer Science (R0)