Difference between pages "Event-B Indexers" and "Rodin Workshop 2012"

From Event-B
(Difference between pages)
Jump to navigationJump to search
imported>Laurent
 
imported>WikiSysop
 
Line 1: Line 1:
==Purpose==
+
= Rodin User and Developer Workshop, 27-29 February 2012,  Fontainebleau, France =
  
Event-B indexers populate the index repository. Currently, indexers are implemented for the following files :
 
* machine (.bum)
 
* context (.buc)
 
  
 +
Event-B is a formal method for system-level modelling and analysis. The Rodin Platform is an Eclipse-based toolset for Event-B that provides effective support for modelling and automated proof. The platform is open source and is further extendable with plug-ins. A range of plug-ins have already been developed including ones that support animation, model checking and UML-B.
 +
The [http://wiki.event-b.org/index.php/Rodin_Workshop_2009 first Rodin User and Developer Workshop was held in July 2009 at the University of Southampton] while the [http://wiki.event-b.org/index.php/Rodin_Workshop_2010 second took place at the University of Düsseldorf in September 21-23, 2010]. The 2012 workshop will be part of the [http://www.bmethod.com/php/federated-event-2012-en.php DEPLOY Federated Event] hosted by the [http://lacl.univ-paris12.fr/ LACL laboratory] at [http://www.iutsf.u-pec.fr/ IUT Sénart-Fontainebleau]. Fontainebleau is within easy reach of Paris.
  
==Event-B Occurrence Kinds==
+
While much of the development and use of Rodin takes place within the [http://www.deploy-project.eu EU FP7 DEPLOY Project], there is a growing group of users and plug-in developers outside of DEPLOY. The purpose of this workshop is to bring together existing and potential users and developers of the Rodin toolset and to foster a broader community of Rodin users and developers.
  
So far, the following occurrence kinds have been defined :
+
For Rodin users the workshop will provide an opportunity to share tool experiences and to gain an understanding of on-going tool developments. For plug-in developers the workshop will provide an opportunity to showcase their tools and to achieve better coordination of tool development effort.
* DECLARATION : when a variable, a carrier set, ..., is declared
 
* REFERENCE : when a variable, a carrier set, ..., is referenced (but not modified)
 
* MODIFICATION : when a variable is modified (e.g., occurs in the left-hand side of an event action)
 
* REDECLARATION : when a variable, parameter or event is redeclared (refined).
 
Please notice the distinction between the index repository notion of declaration ({{class|IDeclaration}}) and the Event-B occurrence kind DECLARATION.
 
  
==What Is Indexed==
+
The format will be presentations together with plenty of time for discussion. On Day 1 a Developer Tutorial will be held while Days 2 and 3 will be devoted to tool usage and tool developments.  The workshop will be followed by an open  [http://www.bmethod.com/php/federated-event-2012-en.php Industry Day].
  
Currently, indexed elements are :
+
If you are interested in giving a presentation at the Rodin workshop, send a short abstract (1 or 2 pages in PDF) to rodin@ecs.soton.ac.uk by 16 January 2012. Indicate whether it is a tool usage or tool development presentation. Plug-in presentations may be about existing developments or planned future developments.  We will endeavour to accommodate all submissions that are relevant to Rodin and Event-B.
* carrier sets
 
* constants
 
* variables
 
* events
 
* parameters
 
  
Formulas which cannot be parsed are ignored.
+
Attendance at the DEPLOY Federated Event (including the Rodin Workshop) is open to all.
  
In the descriptions below, the following notation will be used to specify locations :
 
* [element] : internal location
 
* [element/attribute] : attribute location
 
* [element/attribute/begin..end] : attribute substring location
 
  
===Context Indexer===
+
----
  
====Dependencies====
+
'''Organisers'''
* extended contexts
 
  
====Declarations====
+
Michael Butler, University of Southampton
* carrier sets
 
* constants
 
  
====Occurrences====
+
Stefan Hallerstede, University of Aarhus
  
* DECLARATION of carrier sets [CarrierSet/Identifier]
+
Thierry Lecomte, ClearSy
* DECLARATION of constants [Constant/Identifier]
 
* REFERENCE of elements in axioms [Axiom/Predicate/b..e]
 
* REFERENCE of elements in theorems [Theorem/Predicate/b..e]
 
  
Example:
+
Michael Leuschel, University of Düsseldorf
  
  Ctx
+
Alexander Romanovsky, University of Newcastle
  Sets
 
    S
 
  Constants
 
    C
 
  Axioms
 
    axm1 : C ∈ S
 
  
We will end up with the following occurrences :
+
Laurent Voisin, Systerel
 
 
  S :
 
    DECLARATION in [Ctx.Root]
 
    REFERENCE in [axm1/Predicate/4..5]
 
  C :
 
    DECLARATION in [Ctx.Root]
 
    REFERENCE in [axm1/Predicate/0..1]
 
 
 
====Exports====
 
* imported and declared carrier sets
 
* imported and declared constants
 
 
 
===Machine Indexer===
 
 
 
====Dependencies====
 
* refined machines
 
* seen contexts
 
 
 
====Declarations====
 
* variables
 
* events
 
* parameters
 
 
 
====Occurrences====
 
* DECLARATION of (local) variables [Root]
 
* DECLARATION of (local) events [Root]
 
* DECLARATION of (local) parameters [Event]
 
* REDECLARATION of abstract variables in the local variables that redeclare them [Variable/Identifier]
 
* REDECLARATION of abstract events in the local events that refine them [Event/RefinesEvent/Target]
 
* REDECLARATION of abstract parameters in the local parameters that redeclare them [Parameter/Identifier]
 
* REFERENCE of abstract parameters or variables in witnesses [Witness/Label]
 
* REFERENCE of elements in invariants [Invariant/Predicate/b..e]
 
* REFERENCE of elements in theorems [Theorem/Predicate/b..e]
 
* REFERENCE of elements in variants [Variant/Expression/b..e]
 
* REFERENCE of elements in guards [Guard/Predicate/b..e]
 
* REFERENCE of elements in witnesses [Witness/Predicate/b..e]
 
* REFERENCE of non assigned elements in actions [Action/Assignment/b..e]
 
* MODIFICATION of assigned elements in actions [Action/Assignment/b..e]
 
 
 
Example :
 
 
 
  M1
 
  VARIABLES
 
    var1
 
  INVARIANTS
 
    inv1 : var1 > 0
 
  EVENTS
 
    INITIALISATION
 
      THEN
 
        act1 : var1 := 1
 
 
 
After indexing M1, we will have the following occurrences:
 
 
 
  M1.var1 :
 
    DECLARATION in [M1.Root]
 
    REFERENCE in [M1.inv1/Predicate/0..4]
 
    MODIFICATION in [M1.act1/Assignment/0..4]
 
  M1.INITIALISATION :
 
    DECLARATION in [M1.Root]
 
 
 
Then, if we add another machine
 
 
 
  M2
 
  REFINES
 
    M1
 
  VARIABLES
 
    var1
 
  EVENTS
 
    INITIALISATION
 
      THEN
 
        act1 : var1 := 1
 
 
 
we will add the following occurrences :
 
 
 
  M1.var1 :
 
    REDECLARATION in [M2.var1/Identifier]
 
  M2.var1 :
 
    DECLARATION in [M2.Root]
 
    MODIFICATION in [M2.act1/Assignment/0..4]
 
  M2.INITIALISATION :
 
    DECLARATION in [M2.Root]
 
 
 
====Exports====
 
* imported carrier sets
 
* imported constants
 
* local variables
 
* local events
 
* local parameters
 
 
 
==Propagation==
 
 
 
Propagators are defined for :
 
* events ({{class|EventPropagator}}) to propagate through refines
 
* parameters ({{class|IdentifierPropagator}}) to propagate through redeclaration
 
* variables ({{class|IdentifierPropagator}} as well) to propagate through redeclaration
 
 
 
In the above example with machines M1 and M2, after both files have been indexed, we can query occurrences of M1.var1.
 
 
 
With no propagator, the result would be :
 
 
 
  M1.var1 :
 
    DECLARATION in [M1.Root]
 
    REFERENCE in [M1.inv1/Predicate/0..4]
 
    MODIFICATION in [M1.act1/Assignment/0..4]
 
    REDECLARATION in [M2.var1/Identifier]
 
 
 
Using the {{class|IdentifierPropagator}}, the result becomes :
 
 
 
  M1.var1 (propagated) :
 
    DECLARATION in [M1.Root]
 
    REFERENCE in [M1.inv1/Predicate/0..4]
 
    MODIFICATION in [M1.act1/Assignment/0..4]
 
    REDECLARATION in [M2.var1/Identifier]
 
    DECLARATION in [M2.Root]
 
    MODIFICATION in [M2.act1/Assignment/0..4]
 
 
 
[[Category:Developer documentation]]
 

Revision as of 13:33, 9 September 2011

Rodin User and Developer Workshop, 27-29 February 2012, Fontainebleau, France

Event-B is a formal method for system-level modelling and analysis. The Rodin Platform is an Eclipse-based toolset for Event-B that provides effective support for modelling and automated proof. The platform is open source and is further extendable with plug-ins. A range of plug-ins have already been developed including ones that support animation, model checking and UML-B. The first Rodin User and Developer Workshop was held in July 2009 at the University of Southampton while the second took place at the University of Düsseldorf in September 21-23, 2010. The 2012 workshop will be part of the DEPLOY Federated Event hosted by the LACL laboratory at IUT Sénart-Fontainebleau. Fontainebleau is within easy reach of Paris.

While much of the development and use of Rodin takes place within the EU FP7 DEPLOY Project, there is a growing group of users and plug-in developers outside of DEPLOY. The purpose of this workshop is to bring together existing and potential users and developers of the Rodin toolset and to foster a broader community of Rodin users and developers.

For Rodin users the workshop will provide an opportunity to share tool experiences and to gain an understanding of on-going tool developments. For plug-in developers the workshop will provide an opportunity to showcase their tools and to achieve better coordination of tool development effort.

The format will be presentations together with plenty of time for discussion. On Day 1 a Developer Tutorial will be held while Days 2 and 3 will be devoted to tool usage and tool developments. The workshop will be followed by an open Industry Day.

If you are interested in giving a presentation at the Rodin workshop, send a short abstract (1 or 2 pages in PDF) to rodin@ecs.soton.ac.uk by 16 January 2012. Indicate whether it is a tool usage or tool development presentation. Plug-in presentations may be about existing developments or planned future developments. We will endeavour to accommodate all submissions that are relevant to Rodin and Event-B.

Attendance at the DEPLOY Federated Event (including the Rodin Workshop) is open to all.



Organisers

Michael Butler, University of Southampton

Stefan Hallerstede, University of Aarhus

Thierry Lecomte, ClearSy

Michael Leuschel, University of Düsseldorf

Alexander Romanovsky, University of Newcastle

Laurent Voisin, Systerel