Skip to main content
Log in

Generating Model Checkers from Algebraic Specifications

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

Abstract

There is a great deal of research aimed toward the development of temporal logics and model checking algorithms which can be used to verify properties of systems. In this paper, we present a methodology and supporting tools which allow researchers and practitioners to automatically generate model checking algorithms for temporal logics from algebraic specifications. These tools are extensions of algebraic compiler generation tools and are used to specify model checkers as mappings of the form \({\mathcal{M}}{\mathcal{C}}:L_s \to L_t\), where L s is a temporal logic source language and L t is a target language representing sets of states of a model M, such that \({\mathcal{M}}{\mathcal{C}}\left( {f \in L_s } \right) = \left\{ {s \in M\left| s \right| = f} \right\}\). The algebraic specifications for a model checker define the logic source language, the target language representing sets of states in a model, and the embedding of the source language into the target language. Since users can modify and extend existing specifications or write original specifications, new model checking algorithms for new temporal logics can be easily and quickly developed; this allows the user more time to experiment with the logic and its model checking algorithm instead of developing its implementation. Here we show how this algebraic framework can be used to specify model checking algorithms for CTL, a real-time CTL, CTL*, and a custom extension called CTL e that makes use of propositions labeling the edges as well as the nodes of a model. We also show how the target language can be changed to a language of binary decision diagrams to generate symbolic model checkers from algebraic specifications.

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. R. Alur, C. Courcoubetis, and D. Dill, “Model-checking for real-time systems,” in IEEE Fifth Annual Symposium on Logic in Computer Science, IEEE Computer Society Press, 1990, pp. 414-425.

  2. J.R. Burch, E.M. Clarke, D.E. Long, K.L. McMillan, and D.L. Dill, “Symbolic model checking for sequential circuit verification,” IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,Vol. 13, No. 4, pp. 401-424, 1994.

    Google Scholar 

  3. J.R. Burch, E.M. Clarke, and K.L. McMillan, “Symbolic model checking 1020 states and beyond,” Information and Computation, Vol. 98, pp. 142-170, 1992.

    Google Scholar 

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

    Google Scholar 

  5. R.M. Burstall and P.J. Landin, “Programs and their proofs: An algebraic approach,” Machine Intelligence, Vol. 4, pp. 17-43, 1969.

    Google Scholar 

  6. S.V. Campos and E.M. Clarke, “Real-time symbolic model checking for discrete time models,” in Theories and Experiences for Real-Time System Development, World Scientific, Singapore, 1994, pp. 129-145.

    Google Scholar 

  7. S.C. Campos, E. Clarke, and M. Minea, “Analysis of real-time systems using symbolic techniques,” in C. Heitmeyer and D. Mandrioli (Eds.), Formal Methods for Real-Time Computing, John Wiley & Sons, New York, 1996, pp. 217-235.

    Google Scholar 

  8. E.M. Clarke, E.A. Emerson, and A.P. Sistla, “Automatic verification of finite-state concurrent systems using temporal logic specifications,” ACM Transactions on Programming Languages and Systems, Vol. 8, No. 2, pp. 244-263, 1986.

    Google Scholar 

  9. P.M. Cohn, Universal Algebra, Reidel, London, 1981.

    Google Scholar 

  10. B. Courcelle, “Recursive applicative program schemes,” in J. van Leeuwen (Ed.), Handbook of Theoretical Computer Science, MIT Press/ Elsevier, 1990, pp. 459-492.

    Google Scholar 

  11. E.A. Emerson and J.Y. Halpern, “Decision procedures and expressiveness in the temporal logic of branching time,” Journal of Computer and System Sciences, Vol. 30, No. 1, pp. 1-24, 1985.

    Google Scholar 

  12. E.A. Emerson and Chin-Laung Lei, “Modalities for model checking: Branching time strikes back (extended abstract),” in ACM Symposium on Principles of Programming Languages, New York, 1985, pp. 84-96.

  13. E.A. Emerson, A.K. Mok, A.P. Sistla, and J. Srinivasan, “Quantitative temporal reasoning,” in Lecture Notes in Computer Science, Vol. 531, Springer-Verlag, Berlin, 1991, pp. 136-145.

    Google Scholar 

  14. E.A. Emerson and J. Srinivasan, “Branching time temporal logic,” in J.W. de Bakker, W.P. de Roever, and G. Rozenberg (Eds.), Linear Time, Branching Time and Partial Order in Logics and Models for Concurrency, LNCS, No. 354, New York, 1988, pp. 123-172.

  15. H.B. Enderton, Elements of Set Theory, Academic Press, San Diego, CA, 1977.

    Google Scholar 

  16. M. Gordon, Programming Language Theory and its Implementation, Prentice Hall, Englewood Cliffs, NJ, 1988.

    Google Scholar 

  17. P.J. Higgins, “Algebras with a scheme of operators,” Mathematische Nachrichten, Vol. 27, pp. 115-132, 1963/64.

    Google Scholar 

  18. J.L. Knaack, “An algebraic approach to language translation,” Ph.D. Thesis, Department of Computer Science, The University of Iowa, IA, 1994.

    Google Scholar 

  19. S. Kripke, “Semantical analysis of modal logic i: Normal modal propositional calculi,” Zeitschrift f. Math. Logik und Grundlagen d. Math., Vol. 9, pp. 67-96, 1963.

    Google Scholar 

  20. P. Lee, Realistic Compiler Generation, MIT Press, Cambridge, MA, 1989.

    Google Scholar 

  21. D.E Long, “Bdd-A binary decision diagram package,” available by anonymous ftp at EMC.CS.CMU.EDU in the file /pub/bdd/bddlib.tar.Z, 1993.

  22. A.I. Malcev, Algorithms and Recursive Functions, Wolters-Nordhoff Publishers, 1970.

  23. K.L. McMillan, Symbolic Model Checking, Kluwer Academic Publishers, Boston, 1993.

    Google Scholar 

  24. F.L. Morris, “Advice on structuring compilers and proving them correct,” in Proceedings, ACM Symposium on Principle of Programming Languages, Boston, MA, 1973, pp. 144-152.

  25. P. Mosses, “Denotational semantics,” in J. van Leeuwen (Ed.), Handbook of Theoretical Computer Science, MIT Press/ Elsevier, 1990, pp. 475-631.

    Google Scholar 

  26. P. Naur (Ed.), “Revised report on the algorithmic language algol 60,” Communications of the ACM, Vol. 6, No. 1, pp. 1-17, 1963.

  27. T. Rus, “An algebraic model for programming languages,” Computer Languages, Vol. 12, Nos. 3/4, pp. 173-195, 1987.

    Google Scholar 

  28. T. Rus, “Parsing languages by pattern matching,” IEEE Transactions on Software Engineering, Vol. 14, No. 4, pp. 498-510, 1988.

    Google Scholar 

  29. T. Rus, “Algebraic construction of compilers,” Theoretical Computer Science, Vol. 90, pp. 271-308, 1991.

    Google Scholar 

  30. T. Rus, “Algebraic processing of programming languages,” Theoretical Computer Science, Vol. 199, pp. 105-143, 1998.

    Google Scholar 

  31. T. Rus and T. Halverson, “A language independent scanner generator,” available at ftp://ftp.cs.uiowa.edu/ pub/rus/scan3.ps, 1998.

  32. T. Rus, T. Halverson, E. Van Wyk, and R. Kooima, “An algebraic language processing environment,” in M. Johnson (Ed.), Lecture Notes in Computer Science, Vol. 1349, Sydney, Australia, 1997, pp. 581-585.

  33. T. Rus, R. Kooima, and E. Van Wyk, “Semantics specification in an algebraic compiler,” available at ftp://ftp.cs.uiowa.edu/pub/rus/semspec.ps, 1998.

  34. T. Rus and E. Van Wyk, “A formal approach to parallelizing compilers,” in SIAM Conference on Parallel Processing for Scientific Computation, Proceedings, March 14, 1997.

  35. T. Rus and E. Van Wyk, “Integrating temporal logics and model checking algorithms,” in Fourth AMAST Workshop on Real-Time Systems, Proceedings, Lecture Notes in Computer Science, Vol. 1231, pp. 95-110, Springer-Verlag, Berlin, 1997.

    Google Scholar 

  36. T. Rus and E. Van Wyk, “Model checking tools for parallelizing compilers,” in Second InternationalWorkshop on Formal Methods for Parallel Programming: Theory and Applications, Proceedings, pp. 114-127, April 1, 1997.

  37. G. Takeuti and W.M. Zaring, Introduction to Axiomatic Set Theory, Springer-Verlag, Berlin, 1971.

    Google Scholar 

  38. W. Thomas, “Automata on infinite objects,” in J. van Leeuwen (Ed.), Handbook of Theoretical Computer Science, Formal Models and Semantics, Vol. B, MIT Press/ Elsevier, 1990, pp. 133-191.

    Google Scholar 

  39. E. Van Wyk, “Semantic processing by macro processors,” Ph.D. Thesis, The University of Iowa, IA, 1998.

    Google Scholar 

  40. M. Wirsing, “Algebraic specification,” in J. van Leeuwen (Ed.), Handbook of Theoretical Computer Science, Formal Models and Semantics, Vol. B, MIT Press/ Elsevier, 1990, pp. 677-788.

    Google Scholar 

  41. R. Wilhelm and D. Maurer, Compiler Design, Addison-Wesley, Reading, MA, 1995.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Rus, T., Van Wyk, E. & Halverson, T. Generating Model Checkers from Algebraic Specifications. Formal Methods in System Design 20, 249–284 (2002). https://doi.org/10.1023/A:1014742013173

Download citation

  • Issue Date:

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

Navigation