STeP Basic Tutorial
Modularity
STeP's modular transition systems allow concise, modular, possibly
recursive and parameterized system descriptions.
A transition module consists of an interface that describes
the interaction with the environment, and a body that describes
its actions. Communication between a module and its environment
can be asynchronous, through shared variables, and synchronous,
through synchronization of
transitions. More complex modules can be constructed from
simpler ones by (recursive) module expressions, allowing the
description of hierarchical systems of unbounded depth. Module
expressions can refer to (instances of parameterized) modules defined
earlier by name, thus enabling the reuse of code and the reuse of
properties proven about these modules.
Apart from the usual
hiding and renaming operations, the language
provides a construct to augment the interface with new variables
that provide a summary value of multiple variables within the module.
Symmetrically, the restrict operation allows the module
environment to combine or rearrange the variables it presents to
the module.
A LTL property holds over a module if it holds over any system that
includes that module (taking into account variable renamings).
STeP's property inheritance mechanism automatically generates
modular lemmas from lemmas of modules used in the description.
step@cs.stanford.edu
Last modified: Mon Jun 29 14:44:51 PDT 1998