Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1974))

  • 552 Accesses

Abstract

Model checking is an automatic method for verifying correctness of reactive programs. Originally proposed as part of the dissertation work of the author, model checking is based on efficient algorithms searching for the presence or absence of temporal patterns. In fact, model checking rests on a theoretical foundation of basic principles from modal logic, lattice theory, as well as automata theory that permits program reasoning to be completely automated in principle and highly automated in practice. Because of this automation, the practice of model checking is nowadays well-developed, and the range of successful applications is growing. Model checking is used by most major hardware manufacturers to verify microprocessor circuits, while there have been promising advances in its use in software verification as well. The key obstacle to applicability of model checking is, of course, the state explosion problem. This paper discusses part of our ongoing research program to limit state explosion. The relation of theory to practice is also discussed.

This work was supported in part by NSF grant CCR-980-4736 and TARP project 003658-0650-1999.

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. K. Apt and D. Kozen. Limits for automatic verification of finite-state concurrent systems. Information Processing Letters, 15, pages 307–309, 1986.

    Article  MathSciNet  Google Scholar 

  2. M.C. Browne, E.M. Clarke and O. Grumberg. Reasoning about Networks with Many Identical Finite State Processes. Information and Control, 81(1), pages 13–31, April 1989.

    MATH  MathSciNet  Google Scholar 

  3. R. E. Bryant, “Graph-Based Algorithms for Boolean FunctionManipulation” IEEE Transactions on Computers, 35(8): 677–691 (1986).

    Article  MATH  Google Scholar 

  4. E. M. Clarke and E. A. Emerson, “Design and Synthesis of Synchronization Skeletons using Branching Time Temporal Logic”, Logics of Programs Workshop, IBM Yorktown Heights, New York, Springer LNCS no. 131, pp. 52–71, 1981.

    Google Scholar 

  5. E. M. Clarke, R. Enders, T. Filkorn, S. Jha, “Exploiting Symmetry In Temporal Logic Model Checking”, Formal Methods in System Design, vol. 9, no. 1/2, pp. 77–104, Aug. 96.

    Article  Google Scholar 

  6. E. M. Clarke, E. A. Emerson, and A. P. Sistla, “Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Specifications”, ACM Trans. on Prog. Lang. and Sys (TOPLAS) 8(2): 244–263 (1986).

    Article  MATH  Google Scholar 

  7. E. A. Emerson, Branching Time Temporal Logic and the Design of Correct Concurrent Programs, Ph.D. Dissertation, Harvard University, 1981.

    Google Scholar 

  8. E. A. Emerson, E M. Clarke, “Using Branching Time Temporal Logic to Synthesize Synchronization Skeletons”, Science of Computer Programming, 2(3): 241–266(1982)

    Article  MATH  Google Scholar 

  9. E. A. Emerson, J. Y. Halpern: “’ sometimes’ and ‘Not Never’ Revisited: On Branching versus Linear Time Temporal Logic”, Journal of the Assoc. Comp. Mach. (JACM), 33(1): 151–178( 1986).

    Article  MATH  MathSciNet  Google Scholar 

  10. E. A. Emerson, J. Havlicek, and R. J. Trefler, “Virtual Symmetry”, LICS’00, pp. 121–132.

    Google Scholar 

  11. E.A. Emerson and K.S. Namjoshi. Reasoning about Rings. In Conference Record of POPL’ 95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 85–94, 1995.

    Google Scholar 

  12. E.A. Emerson and K.S. Namjoshi. Automatic Verification of Parameterized Synchronous Systems. In Computer Aided Verification, Proceedings of the 8th International Conference. LNCS, Springer-Verlag, 1996.

    Google Scholar 

  13. E. A. Emerson and K. S. Namjoshi, ‘Verification of Parameterized Bus Arbitration Protocol’, Conference on Computer Aided Verification (CAV), pp. 452–463, 1998.

    Google Scholar 

  14. E.A. Emerson and A.P. Sistla,. Symmetry and Model Checking. In Formal Methods in System Design, vol. 9, no. 1/2, pp. 105–131, Aug. 96.

    Article  Google Scholar 

  15. E. A. Emerson and A. P. Sistla, ‘Utilizing Symmetry when Model-Checking under Fairness Assumptions: An Automata-Theoretic Approach’, ACM Trans. on Prog. Lang. and Systems (TOPLAS), pp. 617–638, vol. 19, no. 4, July 1997.

    Article  Google Scholar 

  16. E. A. Emerson and R. J. Trefler, “Model Checking Real-Time Properties of Symmetric Systems”, MFCS 1998: 427–436.

    Google Scholar 

  17. E. A. Emerson, R. J. Trefler, “From Asymmetry to Full Symmetry: New Techniques for Symmetry Reduction in Model Checking”, CHARME 1999: 142–156.

    Google Scholar 

  18. S.M. German and A.P. Sistla. Reasoning about Systems with Many Processes. J. ACM,39(3), July 1992.

    Google Scholar 

  19. C. Ip and D. Dill. Better verification through symmetry. In Formal Methods in System Design, vol. 9, no. 1/2, pp. 41–76, Aug. 1996.

    Google Scholar 

  20. Kamp, J. A. W., “Tense Logic and the Theory of Linear Order’, Ph.D. thesis, University of California, Los Angeles, 19868.

    Google Scholar 

  21. R. P. Kurshan, Computer Aided Verification, Princeton Univ. Press, 1994.

    Google Scholar 

  22. R.P. Kurshan and K. McMillan. A Structural Induction Theorem for Processes. In Proceedings of the Eight Annual ACM Symposium on Principles of Distributed Computing, pages 239–247, 1989.

    Google Scholar 

  23. B. Lubachevsky. An Approach to Automating the Verification of Compact Parallel Coordination Programs I.Acta Informatica 21, 1984.

    Google Scholar 

  24. K. McMillan, Symbolic Model Checking, Ph.D. Dissertation, CMU, 1992.

    Google Scholar 

  25. K. McMillan, Verification of Infinite State Systems by Compositional Model Checking, CHARME’99.

    Google Scholar 

  26. M Pandey and R. E. Bryant, ‘Exploiting Symmetry When Verifying Transitor-Level Circuits by Symbolic Trajectory Evaluation’, CAV 1997: 244–255.

    Google Scholar 

  27. A. Pnueli. The Temporal Logic of Programs. In Proceedings of the eighteenth Symposium on Foundations of Computer Science. 1977.

    Google Scholar 

  28. A. Pnueli, ‘Verification Engineering: A Future Profession’ (A. M. Turing Award Lecture), Sixteenth Annual ACM Symposium on Principles of Distributed Computing (PODC 1990), San Diego, August, 1997; http://www.wisdom.weizmann.ac.il/~amir/turing97.ps.gz

  29. F. Pong and M. Dubois. A New Approach for the Verification of Cache Coherence Protocols. IEEE Transactions on Parallel and Distributed Systems, August 1995.

    Google Scholar 

  30. J-P. Queille and J. Sifakis, ‘Specification and Verification of Concurrent Systems in CESAR’, International Symposium on Programming, Springer LNCS no. 137, pp 337–351, 1982.

    Google Scholar 

  31. A. P. Sistla, Parameterized Verification of Linear Networks Using Automata as Invariants, CAV, 1997, 412–423.

    Google Scholar 

  32. I. Vernier. Specification and Verification of Parameterized Parallel Programs. In Proceedings of the 8th International Symposium on Computer and Information Sciences, Istanbul, Turkey, pages 622–625,1993.

    Google Scholar 

  33. P. Wolper and V. Lovinfosse. Verifying Properties of Large Sets of Processes with Network Invariants. In J. Sifakis(ed) Automatic Verification Metods for Finite State Systems, Springer-Verlag, LNCS 407, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Emerson, E.A. (2000). Model Checking: Theory into Practice. In: Kapoor, S., Prasad, S. (eds) FST TCS 2000: Foundations of Software Technology and Theoretical Computer Science. FSTTCS 2000. Lecture Notes in Computer Science, vol 1974. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44450-5_1

Download citation

  • DOI: https://doi.org/10.1007/3-540-44450-5_1

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41413-1

  • Online ISBN: 978-3-540-44450-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics