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.
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
K. Apt and D. Kozen. Limits for automatic verification of finite-state concurrent systems. Information Processing Letters, 15, pages 307–309, 1986.
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.
R. E. Bryant, “Graph-Based Algorithms for Boolean FunctionManipulation” IEEE Transactions on Computers, 35(8): 677–691 (1986).
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.
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.
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).
E. A. Emerson, Branching Time Temporal Logic and the Design of Correct Concurrent Programs, Ph.D. Dissertation, Harvard University, 1981.
E. A. Emerson, E M. Clarke, “Using Branching Time Temporal Logic to Synthesize Synchronization Skeletons”, Science of Computer Programming, 2(3): 241–266(1982)
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).
E. A. Emerson, J. Havlicek, and R. J. Trefler, “Virtual Symmetry”, LICS’00, pp. 121–132.
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.
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.
E. A. Emerson and K. S. Namjoshi, ‘Verification of Parameterized Bus Arbitration Protocol’, Conference on Computer Aided Verification (CAV), pp. 452–463, 1998.
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.
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.
E. A. Emerson and R. J. Trefler, “Model Checking Real-Time Properties of Symmetric Systems”, MFCS 1998: 427–436.
E. A. Emerson, R. J. Trefler, “From Asymmetry to Full Symmetry: New Techniques for Symmetry Reduction in Model Checking”, CHARME 1999: 142–156.
S.M. German and A.P. Sistla. Reasoning about Systems with Many Processes. J. ACM,39(3), July 1992.
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.
Kamp, J. A. W., “Tense Logic and the Theory of Linear Order’, Ph.D. thesis, University of California, Los Angeles, 19868.
R. P. Kurshan, Computer Aided Verification, Princeton Univ. Press, 1994.
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.
B. Lubachevsky. An Approach to Automating the Verification of Compact Parallel Coordination Programs I.Acta Informatica 21, 1984.
K. McMillan, Symbolic Model Checking, Ph.D. Dissertation, CMU, 1992.
K. McMillan, Verification of Infinite State Systems by Compositional Model Checking, CHARME’99.
M Pandey and R. E. Bryant, ‘Exploiting Symmetry When Verifying Transitor-Level Circuits by Symbolic Trajectory Evaluation’, CAV 1997: 244–255.
A. Pnueli. The Temporal Logic of Programs. In Proceedings of the eighteenth Symposium on Foundations of Computer Science. 1977.
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
F. Pong and M. Dubois. A New Approach for the Verification of Cache Coherence Protocols. IEEE Transactions on Parallel and Distributed Systems, August 1995.
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.
A. P. Sistla, Parameterized Verification of Linear Networks Using Automata as Invariants, CAV, 1997, 412–423.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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