Information Technology Reference
In-Depth Information
Fig. 3. The Event-B refinement patterns tool architecture
relies on two major RODIN Platform components: the Platform database, which stores
models, proof obligations and proofs constituting a development; and the prover which
is a collection of automated theorem provers supplemented by the interactive prover.
The overall tool architecture is presented in Figure 3. The core of the tool is the pat-
tern instantiation engine . The engine uses an input model, imported from the Platform
database, and a pattern, from the pattern library, to produce a model refinement. The
engine implements only the core pattern language: the sequential and parallel compo-
sition, and forall construct. The method-specific model transformations (in this case,
Event-B model transformations) are imported from the model transformation library .
The process of a pattern instantiation is controlled by the pattern instantiation wiz-
ard . The wizard is an interactive tool which inputs pattern configuration from a user. It
validates user input and provides hints on selecting configuration values. Pattern con-
figuration is constructed in a succession of steps: the values entered at a previous step
influence the restrictions imposed on the values of a current step configuration.
The result of a successful pattern instantiation is a new model and, possibly, a set of
instantiation proof obligations - additional conditions that must be verified every time
when a pattern is applied. The output model is added to a current development as a
refinement of the input model and is saved in the Platform database. The instantiation
proof obligations are saved in an Event B context file. The RODIN platform builder
automatically validates and passes them to the Platform prover.
The tool is equipped with a pattern editor . The current version (0.1.7)[13] uses the
XML notation and an XML editor to construct patterns. The next release is expected to
employ a more user-friendly visual editor. The available refinement patterns are stored
in the local pattern library . Patterns in the library are organised in a catalogue tree,
according to the categories stated in pattern specifications. A user can browse through
the library catalogue using a graphical dialogue. This dialogue is used to select a pattern
for instantiation or editing.
Search WWH ::




Custom Search