University of Minnesota
Software Engineering Center

You are here

Generating Model Checkers from Algebraic Specifications

Date of Publication: 
May 2002
Associated Research Groups: 
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 {\cal M}{\cal C}: L_s\,{\to}\,L_t, where Ls is a temporal logic source language and Lt is a target language representing sets of states of a model M, such that {\cal M}{\cal C}(f\,{\in}\,L_s) = \{ s\,{\in}\,M \mid s \models f \}. 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 CTLe 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.
Silver: an Extensible Attribute Grammar System
@article{Eric2001a, author = "Rus, T. and Van Wyk, E. and Halverson, T.", title = "Generating Model Checkers from Algebraic Specifications", journal = "Formal Methods in System Design", volume = 20, number = 3, pages = "249--284", year = 2002, month = "May" }