Skip to main content

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

  • 546 Accesses

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.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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. 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

  2. Akers, S.B.: Binary Decision Diagrams. IEEE Trans. on Computers, C-27(6), 509–516 (1978)

    Google Scholar 

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

    Chapter  Google Scholar 

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

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Article  MATH  Google Scholar 

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

    Google Scholar 

  9. Bloem, R., Ravi, K., Somenzi, F.: Symbolic guided search for CTL model checking. In: DAC 2000, pp. 29–34 (2000)

    Google Scholar 

  10. Bryant, R.E.: Graph-Based Algorithms for Boolean Function Manipulation. IEEE Transactions on Computers, C-35(8), 677691 (1986)

    Google Scholar 

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

    Article  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

  15. 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  MATH  Google Scholar 

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

    Article  MATH  Google Scholar 

  17. Cousot, P., Cousot, R.: Refining Model Checking by Abstract Interpretation. Automated Software Engineering: An International Journal 6(1), 69–95 (1999)

    Article  MATH  Google Scholar 

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

    Google Scholar 

  19. Daskalopulu, A.: Model Checking Contractual Protocols. In: Breuker, Leenes, Winkels (eds.) JURIX 2000: The 13th Annual Conference, pp. 35–47. IOS Press, Amsterdam (2000)

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    MATH  Google Scholar 

  23. Dijkstra, E.W.: Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)

    MATH  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

  26. 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  MathSciNet  MATH  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

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

    MATH  Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Article  Google Scholar 

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

    Chapter  Google Scholar 

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

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

    Google Scholar 

  38. Giunchiglia, F., Traverso, P.: Planning as Model Checking. In: Biundo, S., Fox, M. (eds.) ECP 1999. LNCS (LNAI), vol. 1809. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  40. Hansson, H., Jonsson, B.: A Logic for Reasoning about Time and Reliability. Formal Asp. Comput. 6(5), 512–535 (1994)

    Article  MATH  Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Article  MATH  Google Scholar 

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

    Article  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    MATH  Google Scholar 

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

    Google Scholar 

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

    Article  MathSciNet  Google Scholar 

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

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

  60. Park, D.: Fixpoint induction and proofs of program properties. In: Meltzer, B., Michie, D. (eds.) Machine Intelligence, vol. 5. Edinburgh University Press, Edinburgh (1969)

    Google Scholar 

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

    Google Scholar 

  62. 7th International Workshop on Parallel and Distributed Methods in Verification, PDMC 2008, Affiliated to ETAPS 2008, http://pdmc.informatik.tu-muenchen.de/PDMC08/

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

    Google Scholar 

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

    Google Scholar 

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

    Book  MATH  Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Article  Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

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

    MATH  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

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

    Google Scholar 

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

    Article  Google Scholar 

  76. Wikipedia, “Model Checking” (July 30, 2008), http://en.wikipedia.org/wiki/Model_checking

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

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

Publish with us

Policies and ethics