Generic Instantiation Plug-in User Guide

From Event-B
Revision as of 19:06, 17 December 2012 by imported>Asiehsalehi
Jump to navigationJump to search

Introduction

The Generic Instantiation (GI) Feature plug-in allows to instantiate and reuse generic developments in other formal developments..

See the Generic Instantiation page for technical details.

Installing and Updating

Setup

The following steps will guide you through the setup process:

  1. Download Rodin for your platform.
  2. Extract the downloaded zip file.
  3. Start Rodin from the folder where you extracted the zip file in the previous step.
  4. Install the Generic Instantiation Feature plug-in:
    1. In the menu choose Help -> Install New Software...
    2. In the Work with dropdown list, choose the location URL: Rodin
    3. Select the Generic Instantiation Feature feature under the Utilities category, then click the check box
    4. Click Next, after some time, the Install Details page appears
    5. Click Next and accept the license
    6. Click Finish
    7. A Security Warning window may appear: click OK
  5. Restart Rodin as suggested.
GI Install.jpg

Now you are ready to use the Generic Instantiation Feature plug-in.


Update

The following steps will guide you through the update process:

  1. In Rodin open the preferences (Window -> Preferences or for Mac: Rodin -> Preferences)
  2. Find Install/Update -> Automatic Updates
  3. Select Automatically find new updates and notify me

As soon as Rodin finds a new update it will ask you if you would like to install it.

Release Notes

See the Generic Instantiation Feature Release History.

Instantiating

The example followed here to demonstrate the GI plug-in is from File:Supporting Reuse of Event-B Developments through Generic Instantiation.pdf

Running the Instantiate Action

The Instantiate action launches the instantiation wizard, which will perform the generic instantiation according to the preferences. It is available:

1. Either from the toolbar of the Event-B explorer. 2. Or from the contextual menu, when right-clicking on a machine.
Ins Explorer.jpg
Ins Contextual.jpg

Selecting the Pattern Machine and Problem Machine

  • Pattern machine is the machine to be instantiated and reuse.
  • Problem machine (optional) is the machine to be refined by the instantiating machine. In other words, the instantiating machine is a refinement of the problem machine.
GI Wizard.jpg

Replacing Sets and Constants

All sets and constants from the pattern context must be replaced by the available sets and constants in the context seen by instantiating machine.

Replace Set Constant.jpg

Renaming Variables and Events

Variables and events (also event parameters) can be renamed.

Rename Var Eve.jpg

The HTML Editor

The HTML tab editor provides an overall view of the instantiation.

GI HTML.jpg

Refinement Instantiation

The above example describes generic instantiation applied to individual machines. Although it is already an interesting way of reusing, in a large model it would be more interesting to instantiate a chain of machines, or in other words instantiate a chain of re�finements. Considering the below figure, suppose we have a development (problem) containing several re�nement levels (P0; ...; Pk). The most concrete model Pk matches a generic model (pattern) G0 that is part of a chain of refi�nements G1; ...; Gj; ...;Gm. 10. By applying generic instantiation we instantiate the pattern G0 according to Pk. That instantiation is a re�finement of Pk and it is called GI0. In addition we can extend the instantiation to one of the re�finement layers of the pattern and apply it to the problem development. As an outcome we get a further refinement layer for Pk for free (GI0 corresponds to the instantiation of G0 and GIn corresponds to the instantiation of Gm). The re�finement between GI0 and GIn does not introduce re�finement proof obligations since the proof obligations were already discharged in the pattern chain. This follows from the instantiated machines where it is avoided the re-proof of pattern proof obligations. Afterwards GIn can be further refined to Pk+n.

GI Refinement.jpg