Skip to main content

The Beginning of Model Checking: A Personal Perspective

  • Chapter
25 Years of Model Checking

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5000))

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.

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 29.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 37.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. Akers, S.B.: Binary Decision Diagrams. IEEE Trans. on Computers C-27(6), 509–516 (1978)

    Article  Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  5. Ben-Ari, M., Manna, Z., Pnueli, A.: The Temporal Logic of Branching Time. In: Principles of Programming Languages, POPL 1981, pp. 164–176 (1981)

    Google Scholar 

  6. Bryant, R.: Graph-Based Algorithms for Boolean Function Manipulation. IEEE Trans. Computers 35(8), 677–691 (1986)

    Article  MATH  Google Scholar 

  7. Basu, S.K., Yeh, R.T.: Strong Verification of Programs. IEEE Trans. on Software Engineering SE-1(3), 339–345 (1975)

    MathSciNet  Google Scholar 

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

    Google Scholar 

  9. Burstall, R.M.: Program Proving as Hand Simulation with a Little Induction. In: IFIP Congress, pp. 308–312 (1974)

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Article  Google Scholar 

  12. Clarke, E.M.: Program Invariants as Fixpoints. Computing 21(4), 3–294 (1979)

    Article  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

  15. de Bakker, J.W., Scott, D.: A Theory of Programs (unpublished manuscript, 1969)

    Google Scholar 

  16. Dijkstra, E.W.: Discipline of Programming. Prentice-Hall (1976)

    Google Scholar 

  17. Dijkstra, E.W.: In Reply to Comments. EWD1058 (1989)

    Google Scholar 

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

    Google Scholar 

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

    Article  MATH  MathSciNet  Google Scholar 

  20. Emerson, E.A., Jutla, C.S.: Tree Automata, Mu-calculus, and Determinacy. In: FOCS 1991, pp. 368–377 (1991)

    Google Scholar 

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

    Google Scholar 

  22. Emerson, E.A., Lei, C.-L.: Modalities for Model Checking: Branching Time Strikes Back. Sci. of Comp. Prog. 8(3), 275–306 (1987)

    Article  MATH  MathSciNet  Google Scholar 

  23. Emerson, E.A.: Temporal and Modal Logic. In: Handbook of Theoretical Computer Science, vol. B. North-Holland (1990)

    Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Article  Google Scholar 

  27. Giunchiglia, F., Traverso, P.: Planning as Model Checking. In: ECP 1999, pp. 1–20 (1999)

    Google Scholar 

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

    Google Scholar 

  29. Jean-Claude Fernandez, J., Schwartz, P., Sifakis, J.: An Example of Specification and Verification in Cesar. The Analysis of Concurrent Systems, 199–210 (1983)

    Google Scholar 

  30. Giunchiglia, F., Traverso, P.: Planning as Model Checking. In: ECP 1999. LNCS (LNAI), Springer (1999)

    Google Scholar 

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

    Google Scholar 

  32. Brim, L., Haverkort, B.R., Leucker, M., van de Pol, J. (eds.): FMICS 2006 and PDMC 2006. LNCS, vol. 4346. Springer, Heidelberg (2006)

    Google Scholar 

  33. Hoare, C.A.R.: An Axiomatic Basis for Computer Programming. Commun. ACM 12(10), 576–580 (1969)

    Article  MATH  Google Scholar 

  34. Holzmann, G.J.: On-The-Fly Model Checking. ACM Comput. Surv. 28(4es), 120 (1996)

    Article  Google Scholar 

  35. IEEE-P1850-2005 Standard for Property Specification Language (PSL).

    Google Scholar 

  36. Jackson, D.: Mini-tutorial on Model Checking. In: Third IEEE Intl. Symp. on Requirements Engineering, Annapolis, Maryland, January 6-10 (1997)

    Google Scholar 

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

    Google Scholar 

  38. Kozen, D.: Results on the Propositional Mu-Calculus. Theor. Comput. Sci. 27, 333–354 (1983)

    Article  MATH  MathSciNet  Google Scholar 

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

    Google Scholar 

  40. Knaster, B.: Un théorème sur les fonctions d’ensembles. Ann. Soc. Polon. Math. 6, 1332̆013134 (1928)

    Google Scholar 

  41. Kautz, H., Selman, B.: Planning as Satisfiability. In: Proceedings European Conference on Artificial Intelligence. ECAI (1992)

    Google Scholar 

  42. Kurshan, R.P.: Computer Aided Verification of Coordinating Processes: An Automata-theoretic Approach. Princeton University Press (1994)

    Google Scholar 

  43. Lamport, L.: “Sometimes” is Sometimes ’Not Never’ - On the Temporal Logic of Programs. In: Principles of Programming Languages, POPL 1980, pp. 174–185 (1980)

    Google Scholar 

  44. Lee, C.Y.: Representation of Switching Circuits by Binary-Decision Programs. Bell Systems Technical Journal 38, 985–999 (1959)

    Google Scholar 

  45. Lichtenstein, O., Pnueli, A.: Checking that Finite State Programs meet their Linear Specification. In: Principles of Programming Languages, POPL, pp. 97–107 (1985)

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

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

    Google Scholar 

  51. Park, D.: Concurrency and Automata on Infinite Sequences. Theoretical Computer Science, pp. 167–183 (1981)

    Google Scholar 

  52. Pnueli, A.: The Temporal Logic of Programs. Foundations of Computer Science, FOCS, pp. 46–57 (1977)

    Google Scholar 

  53. Pnueli, A.: The Temporal Semantics of Concurrent Programs. Semantics of Concurrent Computation, pp 1–20 (1979)

    Google Scholar 

  54. Prior, A.: Past, Present, and Future. Oxford University Press (1967)

    Google Scholar 

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

    Google Scholar 

  56. Sunshine, C.A.: Survey of protocol definition and verification techniques. ACM SIGCOMM Computer Communication Review 8(3), 35–41 (1978)

    Article  Google Scholar 

  57. Tarski, A.: A lattice-theoretical fixpoint theorem and its applications. Pac. J. Math. 5, 285–309 (1955)

    MATH  MathSciNet  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

  62. von Bochmann, G.: Finite State Description of Communication Protocols. Computer Networks 2, 361–372 (1978)

    Google Scholar 

  63. Wang, W., Hidvegi, Z., Bailey, A., Whinston, A.: E-Process Design and Assurance Using Model Checking. IEEE Computer 33(10), 48–53 (2000)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Orna Grumberg Helmut Veith

Rights and permissions

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

Publish with us

Policies and ethics