Skip to main content
Log in

From Pre-Historic to Post-Modern Symbolic Model Checking

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

Symbolic model checking, which enables the automatic verification of large systems, proceeds by calculating expressions that represent state sets. Traditionally, symbolic model-checking tools are based on backward state traversal; their basic operation is the function pre, which, given a set of states, returns the set of all predecessor states. This is because specifiers usually employ formalisms with future-time modalities, which are naturally evaluated by iterating applications of pre. It has been shown experimentally that symbolic model checking can perform significantly better if it is based, instead, on forward state traversal; in this case, the basic operation is the function post, which, given a set of states, returns the set of all successor states. This is because forward state traversal can ensure that only parts of the state space that are reachable from an initial state and relevant for the satisfaction or violation of the specification are explored; that is, errors can be detected as soon as possible.

In this paper, we investigate which specifications can be checked by symbolic forward state traversal. We formulate the problems of symbolic backward and forward model checking by means of two μ-calculi. The pre-μ calculus is based on the pre operation, and the post-μ calculus is based on the post operation. These two μ-calculi induce query logics, which augment fixpoint expressions with a boolean emptiness query. Using query logics, we are able to relate and compare the symbolic backward and forward approaches. In particular, we prove that all ω-regular (linear-time) specifications can be expressed as post-μ queries, and therefore checked using symbolic forward state traversal. On the other hand, we show that there are simple branching-time specifications that cannot be checked in this way.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. G. Bhat and R. Cleaveland, “Efficient model checking via the equational µ-calculus,” in Proc. 11th Annual Symposium on Logic in Computer Science, IEEE Computer Society Press, 1996, pp. 304–312.

  2. R.K. Brayton, G.D. Hachtel, A.L. Sangiovanni-Vincentelli, F. Somenzi, A. Aziz, S.-T. Cheng, S. Edwards, S. Khatri, Y. Kukimoto, A. Pardo, S. Qadeer, R.K. Ranjan, S. Sarwary, T.R. Shiple, G.M. Swamy, and T. Villa, “VIS: A system for verification and synthesis,” in CAV 96: Computer Aided Verification, Lecture Notes in Computer Science 1102, Springer-Verlag, 1996, pp. 428–432.

  3. M.C. Browne, E.M. Clarke, and O. Grumberg, “Characterizing finite Kripke structures in propositional temporal logic,” Theoretical Computer Science, Vol. 59, pp. 115–131, 1988.

    Google Scholar 

  4. R.E. Bryant, “Graph-based algorithms for boolean function manipulation,” IEEE Transactions on Computers, Vol. C-35, No. 8, pp. 677–691, 1986.

    Google Scholar 

  5. J.R. Burch, E.M. Clarke, K.L. McMillan, D.L. Dill, and L.J. Hwang, “Symbolic model checking: 1020 states and beyond,” Information and Computation, Vol. 98, No. 2, pp. 142–170, 1992.

    Google Scholar 

  6. E.M. Clarke and I.A. Draghicescu, “Expressibility results for linear-time and branching-time logics,” in Workshop on Linear Time, Branching Time, and Partial Order in Logics and Models for Concurrency, Lecture Notes in Computer Science 354, Springer-Verlag, 1988, pp. 428–437.

  7. E.M. Clarke and E.A. Emerson, “Design and synthesis of synchronization skeletons using branching-time temporal logic,” in Workshop on Logic of Programs, Lecture Notes in Computer Science 131, Springer-Verlag, 1981, pp. 52–71.

  8. E.M. Clarke, O. Grumberg, and K. Hamaguchi, “Another look at LTL model checking,” in CAV 94: Computer Aided Verification, Lecture Notes in Computer Science 818, Springer-Verlag, 1994, pp. 415–427.

  9. E.M. Clarke, O. Grumberg, and D.E. Long, “Verification tools for finite-state concurrent systems,” in A Decade of Concurrency: Reflections and Perspectives, Lecture Notes in Computer Science 803, Springer-Verlag, 1994, pp. 124–175.

  10. R. Cleaveland, M. Klein, and B. Steffen, “Faster model checking for the modal µ-calculus,” in CAV 92: Computer Aided Verification, Lecture Notes in Computer Science 663, Springer-Verlag, 1992, pp. 410–422.

  11. M. Dam, “CTL and ECTL as fragments of the modal µ-calculus,” Theoretical Computer Science, Vol. 126, pp. 77–96, 1994.

    Google Scholar 

  12. D.L. Dill, “The Murϕ verification system,” in CAV 96: Computer Aided Verification, Lecture Notes in Computer Science 1102, Springer-Verlag, 1996, pp. 390–393.

  13. E.A. Emerson and C. Lei, “Efficient model checking in fragments of the propositional µ-calculus,” in Proc. First Annual Symposium on Logic in Computer Science, IEEE Computer Society Press, 1986, pp. 267–278.

  14. R. Gerth, D. Peled, M.Y. Vardi, and P. Wolper, “Simple on-the-fly automatic verification of linear temporal logic,” in Protocol Specification, Testing, and Verification, Chapman & Hall, 1995, pp. 3–18.

  15. P. Godefroid, in Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem, Lecture Notes in Computer Science 1032, Springer-Verlag, 1996.

  16. O. Grumberg and R.P. Kurshan, “How linear can branching time be?” in ICTL 94: International Conference on Temporal Logic, Lecture Notes in Artificial Intelligence 827, Springer-Verlag, 1994, pp. 180–194.

  17. G.J. Holzmann, Design and Validation of Computer Protocols, Prentice-Hall, 1991.

  18. G. Holzmann, D. Peled, and M. Yannakakis, “On nested depth-first search,” Second SPIN Workshop, American Mathematical Society, 1996.

  19. H. Iwashita and T. Nakata, “Forward model checking techniques oriented to buggy designs,” in ICCAD 97: International Conference on Computer Aided Design, IEEE Computer Society Press, 1997, pp. 400–404.

  20. H. Iwashita, T. Nakata, and F. Hirose, “CTL model checking based on forward state traversal,” in ICCAD 96: International Conference on Computer Aided Design, IEEE Computer Society Press, 1996, pp. 82–87.

  21. D. Kozen, “Results on the propositional µ-calculus,” Theoretical Computer Science, Vol. 27, No. 3, pp. 333–354, 1983.

    Google Scholar 

  22. O. Kupferman and A. Pnueli, “Once and for all,” in Proc. 10th IEEE Symposium on Logic in Computer Science, IEEE Computer Society Press, 1995, pp. 25–35.

  23. O.Kupferman and M.Y.Vardi, “Freedom, weakness, and determinism: From linear time to branching time,” in Proc. 13th Annual Symposium on Logic in Computer Science, IEEE Computer Society Press, 1998, pp. 81–92.

  24. O. Lichtenstein, A. Pnueli, and L.D. Zuck, “The glory of the past,” in Logics of Programs, Lecture Notes in Computer Science 193, Springer-Verlag, 1985, pp. 196–218.

  25. Z. Manna and A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems: Specification, Springer-Verlag, 1992.

  26. K.L. McMillan, Symbolic Model Checking: An Approach to the State-Explosion Problem, Kluwer Academic Publishers, 1993.

  27. D. Peled, “Combining partial order reductions with on-the-fly model checking,” in CAV 94: Computer Aided Verification, Lecture Notes in Computer Science 818, Springer-Verlag, 1994.

  28. J. Queille and J. Sifakis, “Specification and verification of concurrent systems in CESAR,” in Fifth International Symposium on Programming, Lecture Notes in Computer Science 137, Springer-Verlag, 1981, pp. 337–351.

  29. M.Y. Vardi, “Reasoning about the past with two-way automata,” in ICALP 98: International Colloquium on Automata, Languages, and Programming, Lecture Notes in Computer Science 1443, Springer-Verlag, 1998, pp. 628–641.

  30. M.Y. Vardi and P.Wolper, “Reasoning about infinite computations,” Information and Computation, Vol. 115, No. 1, pp. 1–37, 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Henzinger, T.A., Kupferman, O. & Qadeer, S. From Pre-Historic to Post-Modern Symbolic Model Checking. Formal Methods in System Design 23, 303–327 (2003). https://doi.org/10.1023/A:1026228213080

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1026228213080

Navigation