Difference between pages "DEPLOY Plenary Workshop 2009" and "Decomposition Plug-in User Guide"

From Event-B
(Difference between pages)
Jump to navigationJump to search
imported>Felix-loesch
 
imported>Pascal
 
Line 1: Line 1:
 
{{TOCright}}
 
{{TOCright}}
  
= DEPLOY Plenary Technical Workshop October 21-23 2009 =
+
== Introduction ==
 +
The Decomposition plug-in allows to decompose a model into sub-models.
  
[http://wiki.event-b.org/images/CFPAix2009.pdf Call for Papers as PDF]
+
See the [http://wiki.event-b.org/index.php/Event_Model_Decomposition Event-B Model Decomposition] page for technical details on ''shared variables'' (A-style) decomposition.
  
== Call for Papers ==
+
== Installing and Updating ==
  
The second DEPLOY annual plenary meeting will be held this year from 21st to 23rd of October in Aix-en-Provence, France. The main difference with respect to the past meeting will be in a significant amount of time dedicated to technical presentations of conference-like papers. We invite all the academic and industrial partners to submit papers about the work they carried out inside the DEPLOY project.  
+
=== Setup ===
 +
The following steps will guide you through the setup process:
 +
# Download Rodin for your platform from [http://sourceforge.net/project/showfiles.php?group_id=108850&package_id=181714&release_id=687381 Sourceforge]:
 +
# Extract the downloaded zip file.
 +
# Start Rodin from the folder where you extracted the zip file in the previous step.
 +
# Install the Decomposition plug-in:
 +
## In the menu choose ''Help'' -> ''Software Updates...''
 +
## Select the tab ''Available Software'' and click ''Add Site...''
 +
## Use the location URL: <tt>http://rodin-b-sharp.sourceforge.net/updates</tt>
 +
## Back in ''Available Software'' open the update site you just added
 +
## Select ''Event-B Decomposition'' and click ''Install...''
 +
# Restart Rodin as suggested.
  
We expect to have submissions belonging to the following categories and we will give to any of these a space proportional to the number of papers received:
+
Now you are ready to use the Decomposition plug-in.
  
# '''Full Original Papers (FOP):''' these works have to be never submitted before to any other workshop/conference/journal but they have to be about ideas that have passed their seminal form. We suggest these papers to be contained in 12 pages LNCS format.
+
=== Update ===
# '''Full Published Papers (FPP):''' these papers can have already been published in any workshop/conference proceedings or journal but the authors intend to submit them again for educative or promotional purposes inside the DEPLOY community. Copyright is not an issue since the work will not be formally published and the presentation will remain internal to the project. We suggest these papers to be contained in 15 pages LNCS format.
+
The following steps will guide you through the update process:
# '''Short Abstract Papers (SAP):''' these papers present unpublished ideas that are still in their seminal form and want to be presented by the authors to receive feedback before going on with proper full papers. We expect these papers to be presented in a known/unknown form with a number of open questions for discussion. We suggest these papers to be contained in 6 pages LNCS format.
+
# In Rodin open the preferences (''Window'' -> ''Preferences'' or for Mac: ''Rodin'' -> ''Preferences'')
# '''Tool Demo Papers (TDP):''' these papers present works done on tools. A demo is thus expected. We suggest these papers to be contained in 6 pages LNCS format.
+
# Find ''Install/Update'' -> ''Automatic Updates''
 +
# Select ''Automatically find new updates and notify me''
  
== Submissions ==
+
As soon as Rodin finds a new update it will ask you if you would like to install it.
  
The papers should be submitted electronically via the EasyChair website:
+
=== Release Notes ===
[http://www.easychair.org/conferences/?conf=dtw09]
+
See the [http://wiki.event-b.org/index.php/Decomposition_Release_History Decomposition plug-in release history].
If there is any problem during submission please contact the Manuel Mazzara 
 
[mailto:manuel.mazzara@newcastle.ac.uk manuel.mazzara@newcastle.ac.uk].
 
  
All papers should be formatted acording to LNCS format. You can confirm the LNCS format guidelines webpage:
+
== Decomposing ==
[http://www.springer.com/computer/lncs?SGWID=0-164-7-72376-0]
+
{{TODO}}
 +
=== Selecting the Input Machine ===
 +
=== Setting the Preferences ===
 +
Decomposition style, decomposition of the contexts, etc.
 +
=== Importing / Exporting the Configuration ===
  
All the submitted papers will be peer reviewed by the committee
+
== Reporting a Bug or Requesting a Feature ==
members and a team of co-reviewers. Each paper will be reviewed by three different
+
Please, use the SourceForge trackers to report a bug on existing features, or to request new features:
people.  
+
* [https://sourceforge.net/tracker/?atid=651669&group_id=108850&category=1259297 Bugs]
 +
* [https://sourceforge.net/tracker/?atid=651672&group_id=108850&category=1259298 Feature Requests]
  
After the notification of acceptance, the authors will be asked regarding
+
== Error Messages ==
whether they want to have the paper published on the DEPLOY website or not.
+
The decomposition is forbidden if one of the following conditions applies:
Papers with specific copyright or confidentiality constraints will not be published.
+
* The built INITIALISATION events of the sub-machines would define an action modifying at the same time a ''private'' variable and a ''shared'' variable, when performing the ''shared variables'' (A-style) decomposition.
 +
Action {0} of the INITIALISATION event modifies a private variable and a shared variable
 +
* The sub-models shall be created in new Event-B projects, but one of the entered project names already exists.
 +
The project {0} should not exist
 +
* The same project name has been entered for two distinct sub-models.
 +
Duplicate sub-model names: {0}
  
 +
{{TODO}}
 +
decomposition_error_contextDecompositionKind=Chosen context decomposition kind is not available
 +
decomposition_error_duplicateSubModelNames=Duplicate sub-model names: {0}
 +
decomposition_error_existingmachine=The machine {0} should not exist
 +
decomposition_error_existingcontext=The context {0} should not exist
 +
decomposition_error_existingproject=The project {0} should not exist
  
== Important Dates ==
+
database_VariableInvalidNatureFailure = Invalid nature value in {0}
 +
scuser_VariableHasDisappearedError = Shared variable {0} has disappeared
 +
scuser_VariableInvalidNatureError = Inconsistent nature of shared variable {0}, shared expected
 +
scuser_EventHasDisappearedError = External event {0} has disappeared
 +
scuser_EventInvalidStatusError = Inconsistent status of external event {0}, {1} expected
 +
scuser_ParametersInExternalEventError = Parameters cannot be added in external events
 +
scuser_GuardsInExternalEventError = Guards cannot be added in external events
 +
scuser_ActionsInExternalEventError = Actions cannot be added in external events
 +
scuser_ActionOnPrivateAndSharedError = Action {0} of the INITIALISATION event modifies a private variable and a shared variable
 +
scuser_ActionOnSharedError = Action {0} of the INITIALISATION event has disappeared
  
* 11th September 2009: Submission of papers
+
== Tips and Tricks ==
* 30th September 2009: Notification of acceptance
+
=== ''Shared variables'' (A-style) decomposition ===
* 21st-23rd October 2009: DEPLOY Plenary Technical Workshop in Aix-en-Provence
+
<ol>
 +
<li> '''An invariant is missing in a sub-machine, but I would like to have it copied.'''
 +
:For example, an invariant between a concrete variable and some abstract variable may be useful.
 +
:A solution is to add a theorem based on the missing predicate in the non-decomposed machine. See the last paragraph [[Event_Model_Decomposition#inv_distribution | about the invariants]] in the Event-B Model Decomposition page.
  
 +
<li>'''An axiom is missing in a sub-context, but I would like to have it copied.'''
 +
:Such a situation may be encountered if the "Decompose contexts" option is checked.
 +
:The workaround proposed for the invariants applies to the axioms as well.
 +
:For example, if the non-decomposed context defines the axiom <math>a \in S</math>, and this axiom is not copied in a sub-context which contains the <math>S</math> carrier set but does not contain the <math>a</math> constant, then the information <math>S \neq \emptyset</math> is lost. In order to keep it, it is possible to add the theorem <math>\exists x \qdot x \in S</math> in the non-decomposed context.
  
== Organizing Committe  ==
+
<li> '''A variable is tagged as ''private'' in a sub-machine, but I would like to have it tagged ''shared''.'''
 +
:Such a behavior is suitable if you want to prevent this variable from being further refined.
 +
:A solution for such a variable <math>v</math> of a sub-machine <math>M_i</math> is to add a fake action <math>v \bcmeq v</math> in a event of the non-decomposed machine which is associated to the sub-machine <math>M_j</math> (<math>M_i</math> and <math>M_j</math> are distinct sub-machines) when performing the decomposition.
 +
:In the first example below, the <math>min</math> variable will become ''private'' when performing the decomposition:
 +
[[Image:scenario1.png|center|500px|]]
 +
:In the second example below, the <math>min</math> variable will become ''shared'' when performing the decomposition:
 +
[[Image:scenario2.png|center|500px|]]
 +
</ol>
  
* Michael Jastram -  Heinrich-Heine-Universität Düsseldorf, Germany
+
[[Category:User documentation]]
* Linas Laibinis - Åbo Akademi University, Finland
+
[[Category:Work in progress]]
* Felix Lösch - Robert Bosch GmbH, Germany
 
* Manuel Mazzara - University of Newcastle, UK
 
 
 
 
 
== Call for Reviewers ==
 
 
 
An internal event like the DEPLOY annual plenary meeting is an excellent opportunity for aspiring researchers to get actively involved in the review process. We are seeking scholars interested in serving on our volunteer Editorial Review Board. We are happy to accept Ph.D. students and post docs to complement our more experienced reviewers.
 
 
 
The papers to be reviewed will be available after 11/09/09, and the reviews must be completed by 30/09/09.
 
 
 
If interested, please contact [mailto:manuel.mazzara@newcastle.ac.uk manuel.mazzara@newcastle.ac.uk].
 

Revision as of 11:41, 18 November 2009

Introduction

The Decomposition plug-in allows to decompose a model into sub-models.

See the Event-B Model Decomposition page for technical details on shared variables (A-style) decomposition.

Installing and Updating

Setup

The following steps will guide you through the setup process:

  1. Download Rodin for your platform from Sourceforge:
  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 Decomposition plug-in:
    1. In the menu choose Help -> Software Updates...
    2. Select the tab Available Software and click Add Site...
    3. Use the location URL: http://rodin-b-sharp.sourceforge.net/updates
    4. Back in Available Software open the update site you just added
    5. Select Event-B Decomposition and click Install...
  5. Restart Rodin as suggested.

Now you are ready to use the Decomposition 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 Decomposition plug-in release history.

Decomposing

TODO

Selecting the Input Machine

Setting the Preferences

Decomposition style, decomposition of the contexts, etc.

Importing / Exporting the Configuration

Reporting a Bug or Requesting a Feature

Please, use the SourceForge trackers to report a bug on existing features, or to request new features:

Error Messages

The decomposition is forbidden if one of the following conditions applies:

  • The built INITIALISATION events of the sub-machines would define an action modifying at the same time a private variable and a shared variable, when performing the shared variables (A-style) decomposition.
Action {0} of the INITIALISATION event modifies a private variable and a shared variable
  • The sub-models shall be created in new Event-B projects, but one of the entered project names already exists.
The project {0} should not exist
  • The same project name has been entered for two distinct sub-models.
Duplicate sub-model names: {0}

TODO decomposition_error_contextDecompositionKind=Chosen context decomposition kind is not available decomposition_error_duplicateSubModelNames=Duplicate sub-model names: {0} decomposition_error_existingmachine=The machine {0} should not exist decomposition_error_existingcontext=The context {0} should not exist decomposition_error_existingproject=The project {0} should not exist

database_VariableInvalidNatureFailure = Invalid nature value in {0} scuser_VariableHasDisappearedError = Shared variable {0} has disappeared scuser_VariableInvalidNatureError = Inconsistent nature of shared variable {0}, shared expected scuser_EventHasDisappearedError = External event {0} has disappeared scuser_EventInvalidStatusError = Inconsistent status of external event {0}, {1} expected scuser_ParametersInExternalEventError = Parameters cannot be added in external events scuser_GuardsInExternalEventError = Guards cannot be added in external events scuser_ActionsInExternalEventError = Actions cannot be added in external events scuser_ActionOnPrivateAndSharedError = Action {0} of the INITIALISATION event modifies a private variable and a shared variable scuser_ActionOnSharedError = Action {0} of the INITIALISATION event has disappeared

Tips and Tricks

Shared variables (A-style) decomposition

  1. An invariant is missing in a sub-machine, but I would like to have it copied.
    For example, an invariant between a concrete variable and some abstract variable may be useful.
    A solution is to add a theorem based on the missing predicate in the non-decomposed machine. See the last paragraph about the invariants in the Event-B Model Decomposition page.
  2. An axiom is missing in a sub-context, but I would like to have it copied.
    Such a situation may be encountered if the "Decompose contexts" option is checked.
    The workaround proposed for the invariants applies to the axioms as well.
    For example, if the non-decomposed context defines the axiom a \in S, and this axiom is not copied in a sub-context which contains the S carrier set but does not contain the a constant, then the information S \neq \emptyset is lost. In order to keep it, it is possible to add the theorem \exists x \qdot x \in S in the non-decomposed context.
  3. A variable is tagged as private in a sub-machine, but I would like to have it tagged shared.
    Such a behavior is suitable if you want to prevent this variable from being further refined.
    A solution for such a variable v of a sub-machine M_i is to add a fake action v \bcmeq v in a event of the non-decomposed machine which is associated to the sub-machine M_j (M_i and M_j are distinct sub-machines) when performing the decomposition.
    In the first example below, the min variable will become private when performing the decomposition:
    Scenario1.png
    In the second example below, the min variable will become shared when performing the decomposition:
    Scenario2.png