Skip to main content

Part of the book series: Control Engineering ((CONTRENGIN))

Errors in safety-critical systems such as embedded controllers may have drastic consequences and can even endanger human life. It is therefore crucially important to verify the correctness of such systems in a logically precise manner during system design itself. This chapter is an introduction to model checking—an automated and practically successful approach for the formal verification of the correctness of hardware and software systems.

The aim of this chapter is to introduce those important lines of research which transformed model checking from a method of primarily theoretical interest into a powerful tool for the analysis of computer hardware and soft ware. We shall focus in particular on those subjects which have shaped our thinking about model checking in the verification group of Carnegie Mellon University, most notably symbolic model checking and abstraction. The development of symbolic model checker [6, 24] was arguably a turning point in the formal methods field. Employing a combination of binary decision diagrams and fixed-point algorithms, the symbolic model verifier (SMV) became the first model checker to verify models with hundreds of Boolean variables and a tool to benchmark new ideas for more than a decade. Thus, after a brief theoretical introduction into logical foundations of model checking in Section 2, we will describe the methodology behind SMV in Section 3.1; we also cover bounded model checking, a more recent orthogonal symbolic model checking paradigm which is based on SAT solvers. Sections 3.2 and 3.3 finally are devoted to abstraction, the key principle underlying the big advances in software verification during the last few years. The focus in these sections will be on counterexample-guided abstraction refinement as well as predicate abstraction, both of which constitute key features of modern software verification tools.

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 229.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 299.99
Price excludes VAT (USA)
  • Durable hardcover 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. R. Alur, K. Etessami, and P. Madhusudan. A Temporal Logic of Nested Calls and Returns. In Proc. Tools and Algorithms for the Construction and Analysis of Systems (TACAS), volume 2988 of LNCS, pages 467-481, 2004.

    Google Scholar 

  2. T. Ball and S. K. Rajamani. Automatically Validating Temporal Safety Prop-erties of Interfaces. In Proc. Model Checking Software, 8th International SPIN Workshop, volume 2057 of LNCS, pages 103-122, 2001.

    Google Scholar 

  3. A. Biere, A. Cimatti, E. Clarke, M. Fujita, and Y. Zhu. Symbolic model checking using SAT procedures instead of BDDs. In Proc. 36th Conference on Design Automation (DAC), pages 317-320, 1999.

    Google Scholar 

  4. A. Bouajjani, B. Jonsson, M. Nilsson, and T. Touili. Regular Model Checking. In Proc. 12th Int. Conf. Computer Aided Verification (CAV), volume 1855 of LNCS, pages 403-418, 2000.

    Google Scholar 

  5. R.E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers 35(8), pages 677-691, 1986.

    Article  MATH  Google Scholar 

  6. J. R. Burch, E. M. Clarke, K. L. McMillan, D. L. Dill, and L. J. Hwang. Symbolic Model Checking: 1020 States and Beyond. In Proceedings of the Fifth Annual IEEE Symposium on Logic in Computer Science, 1990.

    Google Scholar 

  7. S. Chaki, E. Clarke, A. Groce, S. Jha, and H. Veith. Modular Verification of Software Components in C. In Proc. 25th Int. Conference on Software Engi-neering (ICSE), pages 385-395, 2003. Extended version in IEEE Transactions on Software Engineering, 2004.

    Google Scholar 

  8. E. Clarke and E. A. Emerson. Design and synthesis of synchronization skeletons using branching time temporal logic. In Logics of Programs: Workshop, volume 131 of LNCS, pages 52-71, 1981.

    Google Scholar 

  9. E. Clarke, T. Filkorn, S. Jha. Exploiting Symmetry In Temporal Logic Model Checking. Proc. Computer Aided Verification (CAV), volume 697 of LNCS, pages 450-462, 1996.

    Google Scholar 

  10. E. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement. In Proc. 12th Int. Conf. Computer Aided Verification (CAV), volume 1855 of LNCS, pages 154-169, 2000. Extended version in J. ACM 50 (5): 752-794, 2003.

    Google Scholar 

  11. E. Clarke, O. Grumberg, and D. Long. Model checking and abstraction. ACM Transactions on Programming Languages and Systems, 16(5):1512-1542, September 1994.

    Article  Google Scholar 

  12. E. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, Cambridge, MA, 1999.

    Google Scholar 

  13. E. Clarke and H. Schlingloff. Model checking. In J. Robinson and A. Voronkov, editors, Handbook of Automated Reasoning, pages 1367-1522. Elsevier, Amster-dam, 2000.

    Google Scholar 

  14. P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proc. Symposium on Principles of Programming Languages (POPL), pages 238-252,1977.

    Google Scholar 

  15. E. Emerson. Temporal and modal logic. In J. van Leeuven, editor, Handbook of Theoretical Computer Science, Vol. B., pages 995-1072. Elsevier, Amsterdam, 1990.

    Google Scholar 

  16. E.A. Emerson and A.P. Sistla. Symmetry and model checking. Proc. Computer Aided Verification (CAV), volume 697 of LNCS, pages 463-478, 1996.

    Google Scholar 

  17. J. Esparza, D. Hansel, P. Rossmanith, and S. Schwoon. Efficient Algorithms for Model Checking Pushdown Systems. In Proc. 12th Int. Conf. Computer Aided Verification (CAV), volume 1855 of LNCS, pages 232-247, 2000.

    Google Scholar 

  18. P. Godefroid. Using partial orders to improve automatic verification methods. In Proc. Computer Aided Verification (CAV), volume 531 of LNCS, pages 176-185, 1990.

    Google Scholar 

  19. S. Graf and H. Saidi. Construction of Abstract State Graphs with PVS. In Proc. Computer Aided Verification (CAV), volume 1254 of LNCS, pages 72-83, 1997.

    Google Scholar 

  20. T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy Abstraction. In Proc. ACM SIGPLAN-SIGACT Conference on Principles of Programming Languages, pages 58-70, 2002.

    Google Scholar 

  21. G. J. Holzmann. The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley, Reading, MA, 2003.

    Google Scholar 

  22. M. Huth and M. Ryan. Logic in Computer Science: Modelling and Reasoning about Systems. Cambridge University Press, London, 1999.

    Google Scholar 

  23. R. P. Kurshan. Computer-Aided Verification of Coordinating Processes. Prince-ton University Press, Princeton, NJ, 1994.

    Google Scholar 

  24. K. McMillan. Symbolic Model Checking: An Approach to the State Explosion Problem. Kluwer Academic Publishers, Dordrecht, 1993.

    MATH  Google Scholar 

  25. A. Pnueli. The temporal logic of programs. In Proc. 18th Symposium on Foun-dations of Computer Science (FOCS), pages 46-67, 1977.

    Google Scholar 

  26. J. Queille and J. Sifakis. Specification and verification of concurrent systems in CESAR. In Proc. 5th Int. Symposium in Programming, volume 137 of LNCS, pages 337-351, 1982.

    Google Scholar 

  27. M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. In Proc. ACM Transactions on Programming Languages and Systems 24, 3, pages 217-298, 2002.

    Article  Google Scholar 

  28. C. Stirling. Bisimulation, Modal Logic and Model Checking Games. Logic Journal of the IGPL, 7(1), pages 103-124, 1999.

    Article  MATH  MathSciNet  Google Scholar 

  29. A. Tiwari and G. Khanna. Series of Abstractions for Hybrid Systems. In Proc. 5th Int. Workshop on Hybrid Systems: Computation and Control (HSCC 2002), volume 2289 of LNCS, pages 465-478, 2002.

    Google Scholar 

  30. M. Y. Vardi and P. Wolper. Reasoning about infinite computations. In Infor-mation and Computation, 115(1): pages 1-37, 1994.

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Birkhäuser Boston

About this chapter

Cite this chapter

Clarke, E., Fehnker, A., Jha, S.K., Veith, H. (2005). Temporal Logic Model Checking. In: Hristu-Varsakelis, D., Levine, W.S. (eds) Handbook of Networked and Embedded Control Systems. Control Engineering. Birkhäuser Boston. https://doi.org/10.1007/0-8176-4404-0_23

Download citation

  • DOI: https://doi.org/10.1007/0-8176-4404-0_23

  • Publisher Name: Birkhäuser Boston

  • Print ISBN: 978-0-8176-3239-7

  • Online ISBN: 978-0-8176-4404-8

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics