Strategies, model checking and branching-time properties in Maude
Rubén Rubio, Narciso Martí-Oliet, Isabel Pita, Alberto Verdejo
TL;DR
This work extends Maude by enabling branching-time model checking for strategy-controlled systems. It builds on prior LTL support by introducing a small-step operational semantics for the Maude strategy language and defining finite, bisimilar Kripke structures to verify $CTL^*$ and $μ$-calculus properties via external backends. The authors connect Maude models to backends such as LTSmin, NuSMV, Spot, and pymodelchecking through a unified umaudemc interface, enabling on-the-fly verification and visualization. The river-crossing and vending-machine examples illustrate how strategies shape execution trees and how model-checking results (including counterexamples) depend on the strategy; the approach is shown to be extensible and practically effective for a range of temporal logics. Overall, the paper demonstrates a modular, extensible verification pipeline that integrates strategy-controlled rewriting with established model-checking engines, aiding formal analysis of complex concurrent systems in Maude.
Abstract
Rewriting logic and its implementation Maude are a natural and expressive framework for the specification of concurrent systems and logics. Its nondeterministic local transformations are described by rewriting rules, which can be controlled at a higher level using a builtin strategy language added to Maude~3. This specification resource would not be of much interest without tools to analyze their models, so in a previous work, we extended the Maude LTL model checker to verify strategy-controlled systems. In this paper, CTL* and $μ$-calculus are added to the repertoire of supported logics, after discussing which adaptations are needed for branching-time properties. The new extension relies on some external model checkers that are exposed the Maude models through general and efficient connections, profitable for future extensions and further applications. The performance of these model checkers is compared.
