<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.event-b.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Colin</id>
	<title>Event-B - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.event-b.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Colin"/>
	<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php/Special:Contributions/Colin"/>
	<updated>2026-04-13T20:39:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=UML-B&amp;diff=14399</id>
		<title>UML-B</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=UML-B&amp;diff=14399"/>
		<updated>2020-09-30T22:12:32Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Tutorials */  remove i&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Return to [[Rodin Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
UML-B provides a &#039;UML-like&#039; graphical front end for Event-B. It provides various diagrammatic modelling notations and editors for creating models which are then translated into Event-B for verification. [[UML-B]] works alongside Event-B allowing the modeller to model in normal Event-B but also contribute some aspects of the model via diagrams. &lt;br /&gt;
&lt;br /&gt;
Our [https://www.uml-b.org UML-B] website contains more information about installing UML-B and getting started, as well as our current research and collaborations.&lt;br /&gt;
&lt;br /&gt;
UML-B is a collection of diagrammatic editors for Event-B. The diagrams are used to elaborate the machine and its content with extra model features. The diagrams may either by contained within the machine they contribute to, or can be contained in a separate UML-B model file that is linked to the machine.&lt;br /&gt;
&lt;br /&gt;
* [[Image:IUMLB.png]] [[Event-B Statemachines| State-machine diagrams]] a hierarchical state-machine diagram editor which can be used to impose sequential ordering to your events. An animator is also provided to visualise the progress of the state-machine.&lt;br /&gt;
&lt;br /&gt;
* [[Image:IUMLB.png]] [[Event-B Classdiagrams| Class diagrams]] a class diagram editor which can be used to define data entities and their relationships and to lift behaviour based on data sets.&lt;br /&gt;
&lt;br /&gt;
==Lectures==&lt;br /&gt;
&lt;br /&gt;
* [[Media:iUML-BClassDiagramsLecture.pdf | UML-B Class-diagrams Lecture]] : Lecture slides on the use of UML-B Class-diagrams&lt;br /&gt;
&lt;br /&gt;
* [[Media:iUML-BStatemachinesLecture.pdf | UML-B State-machines Lecture]] : Lecture slides on the use of UML-B State-machines.&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B Class-diagrams Tutorial | UML-B Class-diagrams Tutorial]] : A tutorial on the use of UML-B Class-diagrams.&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B State-machines Tutorial | UML-B State-machines Tutorial]] : A tutorial on the use of UML-B State-machines.&lt;br /&gt;
&lt;br /&gt;
==Guidelines==&lt;br /&gt;
&lt;br /&gt;
* [[UML-B - Modelling a control system]] : Some guidelines on modelling styles for a control system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:User documentation]]&lt;br /&gt;
[[Category:UML-B]]&lt;br /&gt;
[[Category:Plugin]]&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=UML-B_-_Modelling_a_control_system&amp;diff=14398</id>
		<title>UML-B - Modelling a control system</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=UML-B_-_Modelling_a_control_system&amp;diff=14398"/>
		<updated>2020-09-30T22:10:03Z</updated>

		<summary type="html">&lt;p&gt;Colin: renamed to remove i&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
 This page is under development. Later it will be compiled into an illustrated guide using a running example developed in UML-B.&lt;br /&gt;
&lt;br /&gt;
This page gives some guidelines for developing a control system using iUML-B. We aim to verify (i.e. prove) some safety properties of the system comprising the controller and the environment that it is controlling. We also aim to use visual animations of the system to validate with stakeholders the controller and the assumptions we make about the environment.&lt;br /&gt;
&lt;br /&gt;
1. In order to prove system wide properties we need to model the system, not just the controller.&lt;br /&gt;
&lt;br /&gt;
2. In order to run animations we need to model both the controller and the environment.&lt;br /&gt;
&lt;br /&gt;
3. However, the environment model contains assumptions about the possible behaviours of the environment. We also need to test the behaviour of the controller for less well-behaved inputs.&lt;br /&gt;
&lt;br /&gt;
4. Our first abstract models will be small abstract statemachines just enough to capture the most important safety properties of the system.&lt;br /&gt;
&lt;br /&gt;
5. The initial refinements introduce the distinction between the controller and physical components of the environment in order to verify that their interaction maintains the safety of the abstract model.&lt;br /&gt;
&lt;br /&gt;
6. At these early stages the interaction is modelled by direct access to the states of the other components (e.g. in transition guards).&lt;br /&gt;
&lt;br /&gt;
7. We aim to build up the controller model via hierarchical nesting as far as possible. Ideally there should only be one statemachine representing the controller.&lt;br /&gt;
&lt;br /&gt;
8. We build up the environment model with many state-machines, generally one per physical component in the environment. &lt;br /&gt;
&lt;br /&gt;
9. We gradually replace the unrealistic direct access between controller and physical components with the actual I/O interface of the controller.&lt;br /&gt;
&lt;br /&gt;
10. We model the I/O interface either as variables (of type BOOL, NAT, enumerated set) directly in the machine, or &lt;br /&gt;
&lt;br /&gt;
11. where there are multiple instances of similar I/O channels, as iUML-B Classes with attributes (of type BOOL, NAT, enumerated set).&lt;br /&gt;
&lt;br /&gt;
12. While developing refinements (in order to discharge proof obligations) we add invariants to states about a) states of other components and b) the value of outputs. &lt;br /&gt;
&lt;br /&gt;
13. As the model is developed, we add invariants to the machine to give the equivalence between controller states and controller outputs.&lt;br /&gt;
&lt;br /&gt;
14. We build different versions of environment models a) liberal models that can behave in unexpected ways to test the controllers response to fault scenarios, b) well-behaved models to test the controllers response to normal situations. &lt;br /&gt;
&lt;br /&gt;
15. Note that well-behaved models of the environment (i.e. 14 b) document assumptions about the environment that we rely on for succesful control.&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=UML-B&amp;diff=14397</id>
		<title>UML-B</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=UML-B&amp;diff=14397"/>
		<updated>2020-09-30T22:09:33Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Guidelines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Return to [[Rodin Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
UML-B provides a &#039;UML-like&#039; graphical front end for Event-B. It provides various diagrammatic modelling notations and editors for creating models which are then translated into Event-B for verification. [[UML-B]] works alongside Event-B allowing the modeller to model in normal Event-B but also contribute some aspects of the model via diagrams. &lt;br /&gt;
&lt;br /&gt;
Our [https://www.uml-b.org UML-B] website contains more information about installing UML-B and getting started, as well as our current research and collaborations.&lt;br /&gt;
&lt;br /&gt;
UML-B is a collection of diagrammatic editors for Event-B. The diagrams are used to elaborate the machine and its content with extra model features. The diagrams may either by contained within the machine they contribute to, or can be contained in a separate UML-B model file that is linked to the machine.&lt;br /&gt;
&lt;br /&gt;
* [[Image:IUMLB.png]] [[Event-B Statemachines| State-machine diagrams]] a hierarchical state-machine diagram editor which can be used to impose sequential ordering to your events. An animator is also provided to visualise the progress of the state-machine.&lt;br /&gt;
&lt;br /&gt;
* [[Image:IUMLB.png]] [[Event-B Classdiagrams| Class diagrams]] a class diagram editor which can be used to define data entities and their relationships and to lift behaviour based on data sets.&lt;br /&gt;
&lt;br /&gt;
==Lectures==&lt;br /&gt;
&lt;br /&gt;
* [[Media:iUML-BClassDiagramsLecture.pdf | UML-B Class-diagrams Lecture]] : Lecture slides on the use of UML-B Class-diagrams&lt;br /&gt;
&lt;br /&gt;
* [[Media:iUML-BStatemachinesLecture.pdf | UML-B State-machines Lecture]] : Lecture slides on the use of UML-B State-machines.&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B Class-diagrams Tutorial]] : A tutorial on the use of UML-B Class-diagrams.&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B State-machines Tutorial]] : A tutorial on the use of UML-B State-machines.&lt;br /&gt;
&lt;br /&gt;
==Guidelines==&lt;br /&gt;
&lt;br /&gt;
* [[UML-B - Modelling a control system]] : Some guidelines on modelling styles for a control system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:User documentation]]&lt;br /&gt;
[[Category:UML-B]]&lt;br /&gt;
[[Category:Plugin]]&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=IUML-B_Modelling_a_control_system&amp;diff=14396</id>
		<title>IUML-B Modelling a control system</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=IUML-B_Modelling_a_control_system&amp;diff=14396"/>
		<updated>2020-09-30T22:08:33Z</updated>

		<summary type="html">&lt;p&gt;Colin: remove i&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
 This page is under development. Later it will be compiled into an illustrated guide using a running example developed in UML-B.&lt;br /&gt;
&lt;br /&gt;
This page gives some guidelines for developing a control system using iUML-B. We aim to verify (i.e. prove) some safety properties of the system comprising the controller and the environment that it is controlling. We also aim to use visual animations of the system to validate with stakeholders the controller and the assumptions we make about the environment.&lt;br /&gt;
&lt;br /&gt;
1. In order to prove system wide properties we need to model the system, not just the controller.&lt;br /&gt;
&lt;br /&gt;
2. In order to run animations we need to model both the controller and the environment.&lt;br /&gt;
&lt;br /&gt;
3. However, the environment model contains assumptions about the possible behaviours of the environment. We also need to test the behaviour of the controller for less well-behaved inputs.&lt;br /&gt;
&lt;br /&gt;
4. Our first abstract models will be small abstract statemachines just enough to capture the most important safety properties of the system.&lt;br /&gt;
&lt;br /&gt;
5. The initial refinements introduce the distinction between the controller and physical components of the environment in order to verify that their interaction maintains the safety of the abstract model.&lt;br /&gt;
&lt;br /&gt;
6. At these early stages the interaction is modelled by direct access to the states of the other components (e.g. in transition guards).&lt;br /&gt;
&lt;br /&gt;
7. We aim to build up the controller model via hierarchical nesting as far as possible. Ideally there should only be one statemachine representing the controller.&lt;br /&gt;
&lt;br /&gt;
8. We build up the environment model with many state-machines, generally one per physical component in the environment. &lt;br /&gt;
&lt;br /&gt;
9. We gradually replace the unrealistic direct access between controller and physical components with the actual I/O interface of the controller.&lt;br /&gt;
&lt;br /&gt;
10. We model the I/O interface either as variables (of type BOOL, NAT, enumerated set) directly in the machine, or &lt;br /&gt;
&lt;br /&gt;
11. where there are multiple instances of similar I/O channels, as iUML-B Classes with attributes (of type BOOL, NAT, enumerated set).&lt;br /&gt;
&lt;br /&gt;
12. While developing refinements (in order to discharge proof obligations) we add invariants to states about a) states of other components and b) the value of outputs. &lt;br /&gt;
&lt;br /&gt;
13. As the model is developed, we add invariants to the machine to give the equivalence between controller states and controller outputs.&lt;br /&gt;
&lt;br /&gt;
14. We build different versions of environment models a) liberal models that can behave in unexpected ways to test the controllers response to fault scenarios, b) well-behaved models to test the controllers response to normal situations. &lt;br /&gt;
&lt;br /&gt;
15. Note that well-behaved models of the environment (i.e. 14 b) document assumptions about the environment that we rely on for succesful control.&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Template:News&amp;diff=14395</id>
		<title>Template:News</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Template:News&amp;diff=14395"/>
		<updated>2020-09-30T22:03:33Z</updated>

		<summary type="html">&lt;p&gt;Colin: add UML-B website&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[http://wiki.event-b.org/index.php?title=Template:News/Archives&amp;amp;action=edit Edit Archives]&lt;br /&gt;
== Displayed as follow on the Main Page ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0;width:43%;border:1px solid #AAAAAA;background:#FFFFFF&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;!--- News to add here below : ==== ---&amp;gt;&lt;br /&gt;
* 30/09/20: New [https://www.uml-b.org UML-B] website - getting started with UML-B - current research and collaborations&lt;br /&gt;
* 31/05/13: New [http://www.youtube.com/watch?v=fSWZWXx5ixc Event-B video] on the Event-B &amp;amp; Rodin youtube channel&lt;br /&gt;
* 28/03/13: New [https://www.youtube.com/EventBtv UML-B video] on the Event-B &amp;amp; Rodin youtube channel&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Main page templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=UML-B&amp;diff=14394</id>
		<title>UML-B</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=UML-B&amp;diff=14394"/>
		<updated>2020-09-30T21:56:45Z</updated>

		<summary type="html">&lt;p&gt;Colin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Return to [[Rodin Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
UML-B provides a &#039;UML-like&#039; graphical front end for Event-B. It provides various diagrammatic modelling notations and editors for creating models which are then translated into Event-B for verification. [[UML-B]] works alongside Event-B allowing the modeller to model in normal Event-B but also contribute some aspects of the model via diagrams. &lt;br /&gt;
&lt;br /&gt;
Our [https://www.uml-b.org UML-B] website contains more information about installing UML-B and getting started, as well as our current research and collaborations.&lt;br /&gt;
&lt;br /&gt;
UML-B is a collection of diagrammatic editors for Event-B. The diagrams are used to elaborate the machine and its content with extra model features. The diagrams may either by contained within the machine they contribute to, or can be contained in a separate UML-B model file that is linked to the machine.&lt;br /&gt;
&lt;br /&gt;
* [[Image:IUMLB.png]] [[Event-B Statemachines| State-machine diagrams]] a hierarchical state-machine diagram editor which can be used to impose sequential ordering to your events. An animator is also provided to visualise the progress of the state-machine.&lt;br /&gt;
&lt;br /&gt;
* [[Image:IUMLB.png]] [[Event-B Classdiagrams| Class diagrams]] a class diagram editor which can be used to define data entities and their relationships and to lift behaviour based on data sets.&lt;br /&gt;
&lt;br /&gt;
==Lectures==&lt;br /&gt;
&lt;br /&gt;
* [[Media:iUML-BClassDiagramsLecture.pdf | UML-B Class-diagrams Lecture]] : Lecture slides on the use of UML-B Class-diagrams&lt;br /&gt;
&lt;br /&gt;
* [[Media:iUML-BStatemachinesLecture.pdf | UML-B State-machines Lecture]] : Lecture slides on the use of UML-B State-machines.&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B Class-diagrams Tutorial]] : A tutorial on the use of UML-B Class-diagrams.&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B State-machines Tutorial]] : A tutorial on the use of UML-B State-machines.&lt;br /&gt;
&lt;br /&gt;
==Guidelines==&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B Modelling a control system]] : Some guidelines on modelling styles for a control system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:User documentation]]&lt;br /&gt;
[[Category:UML-B]]&lt;br /&gt;
[[Category:Plugin]]&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=UML-B&amp;diff=14393</id>
		<title>UML-B</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=UML-B&amp;diff=14393"/>
		<updated>2020-09-30T21:55:42Z</updated>

		<summary type="html">&lt;p&gt;Colin: remove some i&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Return to [[Rodin Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
UML-B provides a &#039;UML-like&#039; graphical front end for Event-B. It provides various diagrammatic modelling notations and editors for creating models which are then translated into Event-B for verification. [[UML-B]] works alongside Event-B allowing the modeller to model in normal Event-B but also contribute some aspects of the model via diagrams. &lt;br /&gt;
&lt;br /&gt;
Our [https://www.uml-b.org UML-B] website contains more information about installing UML-B and getting started, as well as our current research and collaborations.&lt;br /&gt;
&lt;br /&gt;
UML-B is a collection of diagrammatic editors for Event-B. The diagrams are used to elaborate the machine and its content with extra model features. The diagrams may either by contained within the machine they contribute to, or can be contained in a separate UML-B model file that is linked to the machine.&lt;br /&gt;
&lt;br /&gt;
* [[Image:IUMLB.png]] [[Event-B Statemachines| State-machine diagrams]] a hierarchical state-machine diagram editor which can be used to impose sequential ordering to your events. An animator is also provided to visualise the progress of the state-machine.&lt;br /&gt;
&lt;br /&gt;
* [[Image:IUMLB.png]] [[Event-B Classdiagrams| Class diagrams]] a class diagram editor which can be used to define data entities and their relationships and to lift behaviour based on data sets.&lt;br /&gt;
&lt;br /&gt;
==Lectures==&lt;br /&gt;
&lt;br /&gt;
* [[Media:iUML-BClassDiagramsLecture.pdf | UML-B Class-diagrams Lecture]] : Lecture slides on the use of UML-B Class-diagrams&lt;br /&gt;
&lt;br /&gt;
* [[Media:iUML-BStatemachinesLecture.pdf | UML-B State-machines Lecture]] : Lecture slides on the use of UML-B State-machines.&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B Class-diagrams Tutorial]] : A tutorial on the use of iUML-B Class-diagrams.&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B State-machines Tutorial]] : A tutorial on the use of iUML-B State-machines.&lt;br /&gt;
&lt;br /&gt;
==Guidelines==&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B Modelling a control system]] : Some guidelines on modelling styles for a control system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:User documentation]]&lt;br /&gt;
[[Category:UML-B]]&lt;br /&gt;
[[Category:Plugin]]&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=UML-B&amp;diff=14392</id>
		<title>UML-B</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=UML-B&amp;diff=14392"/>
		<updated>2020-09-30T21:53:34Z</updated>

		<summary type="html">&lt;p&gt;Colin: move content of iUML-B page to this one&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Return to [[Rodin Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
UML-B provides a &#039;UML-like&#039; graphical front end for Event-B. It provides various diagrammatic modelling notations and editors for creating models which are then translated into Event-B for verification. [[UML-B]] works alongside Event-B allowing the modeller to model in normal Event-B but also contribute some aspects of the model via diagrams. &lt;br /&gt;
&lt;br /&gt;
Our [https://www.uml-b.org UML-B] website contains more information about installing UML-B and getting started, as well as our current research and collaborations.&lt;br /&gt;
&lt;br /&gt;
UML-B is a collection of diagrammatic editors for Event-B. The diagrams are used to elaborate the machine and its content with extra model features. The diagrams may either by contained within the machine they contribute to, or can be contained in a separate UML-B model file that is linked to the machine.&lt;br /&gt;
&lt;br /&gt;
* [[Image:IUMLB.png]] [[Event-B Statemachines| State-machine diagrams]] a hierarchical state-machine diagram editor which can be used to impose sequential ordering to your events. An animator is also provided to visualise the progress of the state-machine.&lt;br /&gt;
&lt;br /&gt;
* [[Image:IUMLB.png]] [[Event-B Classdiagrams| Class diagrams]] a class diagram editor which can be used to define data entities and their relationships and to lift behaviour based on data sets.&lt;br /&gt;
&lt;br /&gt;
==Lectures==&lt;br /&gt;
&lt;br /&gt;
* [[Media:iUML-BClassDiagramsLecture.pdf | iUML-B Class-diagrams Lecture]] : Lecture slides on the use of iUML-B Class-diagrams&lt;br /&gt;
&lt;br /&gt;
* [[Media:iUML-BStatemachinesLecture.pdf | iUML-B State-machines Lecture]] : Lecture slides on the use of iUML-B State-machines.&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B Class-diagrams Tutorial]] : A tutorial on the use of iUML-B Class-diagrams.&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B State-machines Tutorial]] : A tutorial on the use of iUML-B State-machines.&lt;br /&gt;
&lt;br /&gt;
==Guidelines==&lt;br /&gt;
&lt;br /&gt;
* [[iUML-B Modelling a control system]] : Some guidelines on modelling styles for a control system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:User documentation]]&lt;br /&gt;
[[Category:UML-B]]&lt;br /&gt;
[[Category:Plugin]]&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=UML-B&amp;diff=14391</id>
		<title>UML-B</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=UML-B&amp;diff=14391"/>
		<updated>2020-09-30T21:46:27Z</updated>

		<summary type="html">&lt;p&gt;Colin: revised to remove old UML-B and link to new website&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Return to [[Rodin Plug-ins]]&lt;br /&gt;
&lt;br /&gt;
UML-B provides a &#039;UML-like&#039; graphical front end for Event-B. It provides various diagrammatic modelling notations and editors for creating models which are then translated into Event-B for verification. [[UML-B]] works alongside Event-B allowing the modeller to model in normal Event-B but also contribute some aspects of the model via diagrams. &lt;br /&gt;
&lt;br /&gt;
Our [https://www.uml-b.org UML-B] website contains more information about installing UML-B and getting started, as well as our current research and collaborations.&lt;br /&gt;
&lt;br /&gt;
[[Category:User documentation]]&lt;br /&gt;
[[Category:UML-B]]&lt;br /&gt;
[[Category:Plugin]]&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14390</id>
		<title>Rodin Platform 3.5.0 External Plug-ins</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14390"/>
		<updated>2020-09-14T10:30:34Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Rodin Update Site */ update project diagram status&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
  Please use one of the following templates for the Status column&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; not available &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rodin Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://rodin-b-sharp.sourceforge.net/updates&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || [[SMT_Plug-in | SMT Solvers ]] || 1.4.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || || 15th March 2016|| [mailto:lvoisin@users.sourceforge.net Laurent Voisin]  || Automatic prover using SMT solvers&lt;br /&gt;
|-&lt;br /&gt;
| || Relevance Filter || 1.1.1 ||  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;  || ?.x.x || || || Improves chance of automatic proof by selecting relevant hypotheses&lt;br /&gt;
|-&lt;br /&gt;
| || [[B2Latex | B2Latex export]] || 0.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 2.5.x || 27th May 2015 || [mailto:lvoisin@users.sourceforge.net Laurent Voisin] || generates a Latex documentation of the Event-B&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Rose.gif|30px]]||[[Rose_(Structured)_Editor|Rose editor]] || 1.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 3.x.x || 4 Nov 2018 || [mailto:umlb@soton.ac.uk umlb] || Tree-structured editor for Event-B EMF that handles extensions without modification. Mainly useful for Plug-in developers.&lt;br /&gt;
|-&lt;br /&gt;
| CODA || CODA Component Diagrams || 6.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 3.x.x || ? || [mailto:umlb@soton.ac.uk umlb] || Component diagrams with timed channels. (&#039;&#039;&#039;Not compatible with latest UML-B.&#039;&#039;&#039; Will be up-issued on Soton update site.)&lt;br /&gt;
|-&lt;br /&gt;
| CODA || CODA Simulator for Component Diagrams || 3.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 3.x.x || ? || [mailto:umlb@soton.ac.uk umlb] || Component based simulation. (&#039;&#039;&#039;Not compatible with latest UML-B.&#039;&#039;&#039; Will be up-issued on Soton update site.)&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Project diagram icon s.png|30px]]||[[Project_Diagram|Project Diagram]]|| 1.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 3.x.x || 1st Feb. 2015 || [mailto:umlb@soton.ac.uk umlb] || Machine - Context relationship diagram. (&#039;&#039;&#039;Not compatible with latest UML-B.&#039;&#039;&#039; Will be up-issued on Soton update site.)&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Cmp_mch_obj.gif|20px]] ||[[Parallel_Composition_using_Event-B | Shared Event Composition]] || 1.7.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || || 5th July 2017 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.x.x&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:DecompositionPlug-in_logo.png|30px]] || [[Decomposition Plug-in User Guide | Decomposition]] || 1.3.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| || 4th July 2017 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.x.x&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Refactoring Framework | Refactory ]]|| 1.3.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;|| 3.x.x || 6th May 2014 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| || [[Theory Plug-in| Theory Plug-in]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 17th Dec 2014|| [mailto:lvoisin@users.sourceforge.net Laurent] ||&lt;br /&gt;
|-.x&lt;br /&gt;
| || [[Code Generation Activity | Code Generation]] || 0.2.5 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 29th Aug. 2013|| [mailto:umlb@soton.ac.uk umlb] || For Java, Ada, and OpenMP C code&lt;br /&gt;
|-.x&lt;br /&gt;
|-&lt;br /&gt;
| || [[Isabelle for Rodin]] || || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 2.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Pattern | Pattern]] || 0.9.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 3.x.x || 13th March 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Event-B Qualitative Probability User Guide | Qualitative Probability]] || 0.2.3 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not working&amp;lt;/span&amp;gt; || 3.x.x || 9th October 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || Needs updating to be compatible with changes in Rodin 3.5&lt;br /&gt;
|-&lt;br /&gt;
| || [[Generic Instantiation Plug-in User Guide | Generic Instantiation (Soton)]] || 1.0.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || || 05th March 2013 || [mailto:asf08r@ecs.soton.ac.uk Asieh] || &lt;br /&gt;
|-&lt;br /&gt;
| ||[[Records|Records]] || 2.0.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 2.x.x || 16th Oct. 2010 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use CamilleX instead&lt;br /&gt;
|-	&lt;br /&gt;
| ||[[EMF_Compare_Editor_installation|Teamwork]] || 1.2.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;  || 3.2.x || 5th Sept. 2016 || [mailto:umlb@soton.ac.uk umlb] || No longer supported - use CamilleX instead. Provides a synchronised copy of Machines and Contexts for committing into a repository. &lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] || [[UML-B|UML-B]] || 2.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| 3.x.x || 18th Oct. 2014 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] ||[[UML-B_-_Statemachine_Animation|UML-B Statemachine Animation]] || 1.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 18th Oct. 2014 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||iUML-B plugins ||  ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x ||  || [mailto:umlb@soton.ac.uk umlb] || New versions are now available on the Soton Update Site. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Atelier B Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://methode-b.com/update_site/atelierb_provers&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || Atelier B provers || 2.2.1 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.3.0 || 7 Aug 2017  || || Does not work with macOS Catalina!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== ProB Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://www.stups.hhu.de/prob_updates_rodin3&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || ProB || 3.0.10 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB animator and model checker&lt;br /&gt;
|-&lt;br /&gt;
| || ProB (Dis)Prover || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB counter-example finder and prover&lt;br /&gt;
|-&lt;br /&gt;
| || ProB Symbolic constants support || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Southampton Releases Update Site ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Available from http://eventb-soton.github.io/updateSite/releases&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:CamilleX.png|CmX]] || [[CamilleX|CamilleX]] || 2.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.0 || 29 Jul 2020  || [mailto:T.S.Hoang@ecs.soton.ac.uk Thai Son Hoang] || CamilleX provides text editors for Event-B models and support modelling mechanisms such as machine inclusion.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Classdiagrams|UML-B Class Diagrams]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 11 Sept 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B Class diagrams translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Statemachines|UML-B State-machines]] || 4.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B State-machines translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Event-B_Statemachines|UML-B State-machine Animation]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020 || [mailto:umlb@soton.ac.uk umlb] || Animate UML-B State-machines. Compatible with UML-B statemachines  4.x.x and ProB 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Scenario Checker|Scenario Checker]] || 0.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.x || 31 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Validation tool for recording and replaying scenarios&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following framework plug-ins are also provided on the Southampton Releases Update Site. These plugins are installed automatically when required and are not usually installed explicitly by users.&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_framework_for_Event-B|Event-B EMF framework]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|Event-B EMF extensions]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020  || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|UML-B diagrams]] || 8.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.2.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] ||  Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
|  ||[[ProB Support|ProB Support]] || 0.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.x || 28 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14389</id>
		<title>Rodin Platform 3.5.0 External Plug-ins</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14389"/>
		<updated>2020-09-14T09:41:21Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Rodin Update Site */ fix icon for iUML-B and change status of Qualitativ probability&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
  Please use one of the following templates for the Status column&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; not available &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rodin Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://rodin-b-sharp.sourceforge.net/updates&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || [[SMT_Plug-in | SMT Solvers ]] || 1.4.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || || 15th March 2016|| [mailto:lvoisin@users.sourceforge.net Laurent Voisin]  || Automatic prover using SMT solvers&lt;br /&gt;
|-&lt;br /&gt;
| || Relevance Filter || 1.1.1 ||  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;  || ?.x.x || || || Improves chance of automatic proof by selecting relevant hypotheses&lt;br /&gt;
|-&lt;br /&gt;
| || [[B2Latex | B2Latex export]] || 0.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 2.5.x || 27th May 2015 || [mailto:lvoisin@users.sourceforge.net Laurent Voisin] || generates a Latex documentation of the Event-B&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Rose.gif|30px]]||[[Rose_(Structured)_Editor|Rose editor]] || 1.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 3.x.x || 4 Nov 2018 || [mailto:umlb@soton.ac.uk umlb] || Tree-structured editor for Event-B EMF that handles extensions without modification. Mainly useful for Plug-in developers.&lt;br /&gt;
|-&lt;br /&gt;
| CODA || CODA Component Diagrams || 6.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 3.x.x || ? || [mailto:umlb@soton.ac.uk umlb] || Component diagrams with timed channels. (Not compatible with latest UML-B. Will be up-issued on Soton update site.)&lt;br /&gt;
|-&lt;br /&gt;
| CODA || CODA Simulator for Component Diagrams || 3.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 3.x.x || ? || [mailto:umlb@soton.ac.uk umlb] || Component based simulation. (Not compatible with latest UML-B. Will be up-issued on Soton update site.)&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Project diagram icon s.png|30px]]||[[Project_Diagram|Project Diagram]]|| 1.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 1st Feb. 2015 || [mailto:umlb@soton.ac.uk umlb] || Machine - Context relationship diagram&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_Compare_Editor_installation|Teamwork]] || 1.2.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;  || 3.2.x || 5th Sept. 2016 || [mailto:umlb@soton.ac.uk umlb] || Provides a synchronised copy of Machines and Contexts for committing into a repository. It is recommended to also install the Rose editor,  EMF compare 3.1.0 and a recent repository client (e.g. Egit 4.1.4).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Cmp_mch_obj.gif|20px]] ||[[Parallel_Composition_using_Event-B | Shared Event Composition]] || 1.7.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || || 5th July 2017 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.x.x&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:DecompositionPlug-in_logo.png|30px]] || [[Decomposition Plug-in User Guide | Decomposition]] || 1.3.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| || 4th July 2017 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.x.x&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Refactoring Framework | Refactory ]]|| 1.3.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;|| 3.x.x || 6th May 2014 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| || [[Theory Plug-in| Theory Plug-in]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 17th Dec 2014|| [mailto:lvoisin@users.sourceforge.net Laurent] ||&lt;br /&gt;
|-.x&lt;br /&gt;
| || [[Code Generation Activity | Code Generation]] || 0.2.5 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 29th Aug. 2013|| [mailto:umlb@soton.ac.uk umlb] || For Java, Ada, and OpenMP C code&lt;br /&gt;
|-.x&lt;br /&gt;
|-&lt;br /&gt;
| || [[Isabelle for Rodin]] || || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 2.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Pattern | Pattern]] || 0.9.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 3.x.x || 13th March 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Event-B Qualitative Probability User Guide | Qualitative Probability]] || 0.2.3 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not working&amp;lt;/span&amp;gt; || 3.x.x || 9th October 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || Needs updating to be compatible with changes in Rodin 3.5&lt;br /&gt;
|-&lt;br /&gt;
| || [[Generic Instantiation Plug-in User Guide | Generic Instantiation (Soton)]] || 1.0.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || || 05th March 2013 || [mailto:asf08r@ecs.soton.ac.uk Asieh] || &lt;br /&gt;
|-&lt;br /&gt;
| ||[[Records|Records]] || 2.0.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 2.x.x || 16th Oct. 2010 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use CamilleX instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] || [[UML-B|UML-B]] || 2.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| 3.x.x || 18th Oct. 2014 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] ||[[UML-B_-_Statemachine_Animation|UML-B Statemachine Animation]] || 1.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 18th Oct. 2014 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||iUML-B plugins ||  ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x ||  || [mailto:umlb@soton.ac.uk umlb] || New versions are now available on the Soton Update Site. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Atelier B Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://methode-b.com/update_site/atelierb_provers&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || Atelier B provers || 2.2.1 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.3.0 || 7 Aug 2017  || || Does not work with macOS Catalina!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== ProB Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://www.stups.hhu.de/prob_updates_rodin3&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || ProB || 3.0.10 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB animator and model checker&lt;br /&gt;
|-&lt;br /&gt;
| || ProB (Dis)Prover || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB counter-example finder and prover&lt;br /&gt;
|-&lt;br /&gt;
| || ProB Symbolic constants support || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Southampton Releases Update Site ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Available from http://eventb-soton.github.io/updateSite/releases&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:CamilleX.png|CmX]] || [[CamilleX|CamilleX]] || 2.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.0 || 29 Jul 2020  || [mailto:T.S.Hoang@ecs.soton.ac.uk Thai Son Hoang] || CamilleX provides text editors for Event-B models and support modelling mechanisms such as machine inclusion.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Classdiagrams|UML-B Class Diagrams]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 11 Sept 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B Class diagrams translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Statemachines|UML-B State-machines]] || 4.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B State-machines translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Event-B_Statemachines|UML-B State-machine Animation]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020 || [mailto:umlb@soton.ac.uk umlb] || Animate UML-B State-machines. Compatible with UML-B statemachines  4.x.x and ProB 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Scenario Checker|Scenario Checker]] || 0.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.x || 31 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Validation tool for recording and replaying scenarios&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following framework plug-ins are also provided on the Southampton Releases Update Site. These plugins are installed automatically when required and are not usually installed explicitly by users.&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_framework_for_Event-B|Event-B EMF framework]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|Event-B EMF extensions]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020  || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|UML-B diagrams]] || 8.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.2.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] ||  Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
|  ||[[ProB Support|ProB Support]] || 0.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.x || 28 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14388</id>
		<title>Rodin Platform 3.5.0 External Plug-ins</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14388"/>
		<updated>2020-09-14T09:32:16Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Rodin Update Site */ checked CODA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
  Please use one of the following templates for the Status column&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; not available &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rodin Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://rodin-b-sharp.sourceforge.net/updates&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || [[SMT_Plug-in | SMT Solvers ]] || 1.4.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || || 15th March 2016|| [mailto:lvoisin@users.sourceforge.net Laurent Voisin]  || Automatic prover using SMT solvers&lt;br /&gt;
|-&lt;br /&gt;
| || Relevance Filter || 1.1.1 ||  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;  || ?.x.x || || || Improves chance of automatic proof by selecting relevant hypotheses&lt;br /&gt;
|-&lt;br /&gt;
| || [[B2Latex | B2Latex export]] || 0.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 2.5.x || 27th May 2015 || [mailto:lvoisin@users.sourceforge.net Laurent Voisin] || generates a Latex documentation of the Event-B&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Rose.gif|30px]]||[[Rose_(Structured)_Editor|Rose editor]] || 1.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 3.x.x || 4 Nov 2018 || [mailto:umlb@soton.ac.uk umlb] || Tree-structured editor for Event-B EMF that handles extensions without modification. Mainly useful for Plug-in developers.&lt;br /&gt;
|-&lt;br /&gt;
| CODA || CODA Component Diagrams || 6.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 3.x.x || ? || [mailto:umlb@soton.ac.uk umlb] || Component diagrams with timed channels. (Not compatible with latest UML-B. Will be up-issued on Soton update site.)&lt;br /&gt;
|-&lt;br /&gt;
| CODA || CODA Simulator for Component Diagrams || 3.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 3.x.x || ? || [mailto:umlb@soton.ac.uk umlb] || Component based simulation. (Not compatible with latest UML-B. Will be up-issued on Soton update site.)&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Project diagram icon s.png|30px]]||[[Project_Diagram|Project Diagram]]|| 1.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 1st Feb. 2015 || [mailto:umlb@soton.ac.uk umlb] || Machine - Context relationship diagram&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_Compare_Editor_installation|Teamwork]] || 1.2.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;  || 3.2.x || 5th Sept. 2016 || [mailto:umlb@soton.ac.uk umlb] || Provides a synchronised copy of Machines and Contexts for committing into a repository. It is recommended to also install the Rose editor,  EMF compare 3.1.0 and a recent repository client (e.g. Egit 4.1.4).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Cmp_mch_obj.gif|20px]] ||[[Parallel_Composition_using_Event-B | Shared Event Composition]] || 1.7.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || || 5th July 2017 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.x.x&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:DecompositionPlug-in_logo.png|30px]] || [[Decomposition Plug-in User Guide | Decomposition]] || 1.3.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| || 4th July 2017 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.x.x&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Refactoring Framework | Refactory ]]|| 1.3.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;|| 3.x.x || 6th May 2014 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| || [[Theory Plug-in| Theory Plug-in]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 17th Dec 2014|| [mailto:lvoisin@users.sourceforge.net Laurent] ||&lt;br /&gt;
|-.x&lt;br /&gt;
| || [[Code Generation Activity | Code Generation]] || 0.2.5 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 29th Aug. 2013|| [mailto:umlb@soton.ac.uk umlb] || For Java, Ada, and OpenMP C code&lt;br /&gt;
|-.x&lt;br /&gt;
|-&lt;br /&gt;
| || [[Isabelle for Rodin]] || || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 2.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Pattern | Pattern]] || 0.9.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 3.x.x || 13th March 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Event-B Qualitative Probability User Guide | Qualitative Probability]] || 0.2.3 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 3.x.x || 9th October 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Generic Instantiation Plug-in User Guide | Generic Instantiation (Soton)]] || 1.0.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || || 05th March 2013 || [mailto:asf08r@ecs.soton.ac.uk Asieh] || &lt;br /&gt;
|-&lt;br /&gt;
| ||[[Records|Records]] || 2.0.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 2.x.x || 16th Oct. 2010 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use CamilleX instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] || [[UML-B|UML-B]] || 2.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| 3.x.x || 18th Oct. 2014 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] ||[[UML-B_-_Statemachine_Animation|UML-B Statemachine Animation]] || 1.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 18th Oct. 2014 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] ||iUML-B plugins ||  ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x ||  || [mailto:umlb@soton.ac.uk umlb] || New versions are now available on the Soton Update Site. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Atelier B Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://methode-b.com/update_site/atelierb_provers&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || Atelier B provers || 2.2.1 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.3.0 || 7 Aug 2017  || || Does not work with macOS Catalina!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== ProB Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://www.stups.hhu.de/prob_updates_rodin3&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || ProB || 3.0.10 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB animator and model checker&lt;br /&gt;
|-&lt;br /&gt;
| || ProB (Dis)Prover || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB counter-example finder and prover&lt;br /&gt;
|-&lt;br /&gt;
| || ProB Symbolic constants support || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Southampton Releases Update Site ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Available from http://eventb-soton.github.io/updateSite/releases&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:CamilleX.png|CmX]] || [[CamilleX|CamilleX]] || 2.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.0 || 29 Jul 2020  || [mailto:T.S.Hoang@ecs.soton.ac.uk Thai Son Hoang] || CamilleX provides text editors for Event-B models and support modelling mechanisms such as machine inclusion.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Classdiagrams|UML-B Class Diagrams]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 11 Sept 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B Class diagrams translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Statemachines|UML-B State-machines]] || 4.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B State-machines translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Event-B_Statemachines|UML-B State-machine Animation]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020 || [mailto:umlb@soton.ac.uk umlb] || Animate UML-B State-machines. Compatible with UML-B statemachines  4.x.x and ProB 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Scenario Checker|Scenario Checker]] || 0.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.x || 31 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Validation tool for recording and replaying scenarios&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following framework plug-ins are also provided on the Southampton Releases Update Site. These plugins are installed automatically when required and are not usually installed explicitly by users.&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_framework_for_Event-B|Event-B EMF framework]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|Event-B EMF extensions]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020  || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|UML-B diagrams]] || 8.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.2.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] ||  Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
|  ||[[ProB Support|ProB Support]] || 0.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.x || 28 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14387</id>
		<title>Rodin Platform 3.5.0 External Plug-ins</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14387"/>
		<updated>2020-09-14T09:19:15Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Rodin Update Site */  update some status and re-arrange&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
  Please use one of the following templates for the Status column&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; not available &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rodin Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://rodin-b-sharp.sourceforge.net/updates&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || [[SMT_Plug-in | SMT Solvers ]] || 1.4.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || || 15th March 2016|| [mailto:lvoisin@users.sourceforge.net Laurent Voisin]  || Automatic prover using SMT solvers&lt;br /&gt;
|-&lt;br /&gt;
| || Relevance Filter || 1.1.1 ||  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;  || ?.x.x || || || Improves chance of automatic proof by selecting relevant hypotheses&lt;br /&gt;
|-&lt;br /&gt;
| || [[B2Latex | B2Latex export]] || 0.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 2.5.x || 27th May 2015 || [mailto:lvoisin@users.sourceforge.net Laurent Voisin] || generates a Latex documentation of the Event-B&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Rose.gif|30px]]||[[Rose_(Structured)_Editor|Rose editor]] || 1.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 3.x.x || 4 Nov 2018 || [mailto:umlb@soton.ac.uk umlb] || Tree-structured editor for Event-B EMF that handles extensions without modification. Mainly useful for Plug-in developers.&lt;br /&gt;
|-&lt;br /&gt;
| CODA || CODA Component Diagrams || 6.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 3.x.x || ? || [mailto:umlb@soton.ac.uk umlb] || Component diagrams with timed channels. (Not compatible with latest UML-B. Will be up-issued on Soton update site.)&lt;br /&gt;
|-&lt;br /&gt;
| CODA || CODA Simulator for Component Diagrams || 3.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || ? || [mailto:umlb@soton.ac.uk umlb] || Not compatible with latest UML-B. To be re-issued on Soton update site&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Project diagram icon s.png|30px]]||[[Project_Diagram|Project Diagram]]|| 1.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 1st Feb. 2015 || [mailto:umlb@soton.ac.uk umlb] || Machine - Context relationship diagram&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_Compare_Editor_installation|Teamwork]] || 1.2.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;  || 3.2.x || 5th Sept. 2016 || [mailto:umlb@soton.ac.uk umlb] || Provides a synchronised copy of Machines and Contexts for committing into a repository. It is recommended to also install the Rose editor,  EMF compare 3.1.0 and a recent repository client (e.g. Egit 4.1.4).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Cmp_mch_obj.gif|20px]] ||[[Parallel_Composition_using_Event-B | Shared Event Composition]] || 1.7.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || || 5th July 2017 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.x.x&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:DecompositionPlug-in_logo.png|30px]] || [[Decomposition Plug-in User Guide | Decomposition]] || 1.3.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| || 4th July 2017 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.x.x&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Refactoring Framework | Refactory ]]|| 1.3.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;|| 3.x.x || 6th May 2014 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| || [[Theory Plug-in| Theory Plug-in]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 17th Dec 2014|| [mailto:lvoisin@users.sourceforge.net Laurent] ||&lt;br /&gt;
|-.x&lt;br /&gt;
| || [[Code Generation Activity | Code Generation]] || 0.2.5 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 29th Aug. 2013|| [mailto:umlb@soton.ac.uk umlb] || For Java, Ada, and OpenMP C code&lt;br /&gt;
|-.x&lt;br /&gt;
|-&lt;br /&gt;
| || [[Isabelle for Rodin]] || || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 2.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Pattern | Pattern]] || 0.9.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 3.x.x || 13th March 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Event-B Qualitative Probability User Guide | Qualitative Probability]] || 0.2.3 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || 3.x.x || 9th October 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Generic Instantiation Plug-in User Guide | Generic Instantiation (Soton)]] || 1.0.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || || 05th March 2013 || [mailto:asf08r@ecs.soton.ac.uk Asieh] || &lt;br /&gt;
|-&lt;br /&gt;
| ||[[Records|Records]] || 2.0.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 2.x.x || 16th Oct. 2010 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use CamilleX instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] || [[UML-B|UML-B]] || 2.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| 3.x.x || 18th Oct. 2014 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] ||[[UML-B_-_Statemachine_Animation|UML-B Statemachine Animation]] || 1.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 18th Oct. 2014 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Atelier B Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://methode-b.com/update_site/atelierb_provers&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || Atelier B provers || 2.2.1 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.3.0 || 7 Aug 2017  || || Does not work with macOS Catalina!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== ProB Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://www.stups.hhu.de/prob_updates_rodin3&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || ProB || 3.0.10 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB animator and model checker&lt;br /&gt;
|-&lt;br /&gt;
| || ProB (Dis)Prover || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB counter-example finder and prover&lt;br /&gt;
|-&lt;br /&gt;
| || ProB Symbolic constants support || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Southampton Releases Update Site ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Available from http://eventb-soton.github.io/updateSite/releases&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:CamilleX.png|CmX]] || [[CamilleX|CamilleX]] || 2.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.0 || 29 Jul 2020  || [mailto:T.S.Hoang@ecs.soton.ac.uk Thai Son Hoang] || CamilleX provides text editors for Event-B models and support modelling mechanisms such as machine inclusion.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Classdiagrams|UML-B Class Diagrams]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 11 Sept 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B Class diagrams translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Statemachines|UML-B State-machines]] || 4.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B State-machines translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Event-B_Statemachines|UML-B State-machine Animation]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020 || [mailto:umlb@soton.ac.uk umlb] || Animate UML-B State-machines. Compatible with UML-B statemachines  4.x.x and ProB 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Scenario Checker|Scenario Checker]] || 0.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.x || 31 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Validation tool for recording and replaying scenarios&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following framework plug-ins are also provided on the Southampton Releases Update Site. These plugins are installed automatically when required and are not usually installed explicitly by users.&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_framework_for_Event-B|Event-B EMF framework]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|Event-B EMF extensions]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020  || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|UML-B diagrams]] || 8.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.2.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] ||  Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
|  ||[[ProB Support|ProB Support]] || 0.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.x || 28 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14386</id>
		<title>Rodin Platform 3.5.0 External Plug-ins</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14386"/>
		<updated>2020-09-11T17:22:38Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Southampton Releases Update Site */ add scenario checker and prob support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
  Please use one of the following templates for the Status column&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; not available &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rodin Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://rodin-b-sharp.sourceforge.net/updates&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| CODA || CODA Component Diagrams || 6.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || ? || [mailto:umlb@soton.ac.uk umlb] || Not compatible with latest UML-B. To be re-issued on Soton update site&lt;br /&gt;
|-&lt;br /&gt;
| CODA || CODA Simulator for Component Diagrams || 3.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || ? || [mailto:umlb@soton.ac.uk umlb] || Not compatible with latest UML-B. To be re-issued on Soton update site&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Rose.gif|30px]]||[[Rose_(Structured)_Editor|Rose editor]] || 1.7.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 4 Nov 2018 || [mailto:umlb@soton.ac.uk umlb] || Mainly useful for Plug-in developers. Tree-structured editor for Event-B EMF that handles extensions without modification&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Project diagram icon s.png|30px]]||[[Project_Diagram|Project Diagram]]|| 1.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 1st Feb. 2015 || [mailto:umlb@soton.ac.uk umlb] || Machine - Context relationship diagram&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_Compare_Editor_installation|Teamwork]] || 1.2.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;  || 3.2.x || 5th Sept. 2016 || [mailto:umlb@soton.ac.uk umlb] || Provides a synchronised copy of Machines and Contexts for committing into a repository. It is recommended to also install the Rose editor,  EMF compare 3.1.0 and a recent repository client (e.g. Egit 4.1.4).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Cmp_mch_obj.gif|20px]] ||[[Parallel_Composition_using_Event-B | Shared Event Composition]] || 1.7.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || || 5th July 2017 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.x.x&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:DecompositionPlug-in_logo.png|30px]] || [[Decomposition Plug-in User Guide | Decomposition]] || 1.3.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| || 4th July 2017 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.x.x&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Refactoring Framework | Refactory ]]|| 1.3.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;|| 3.x.x || 6th May 2014 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| || [[Theory Plug-in| Theory Plug-in]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 17th Dec 2014|| [mailto:lvoisin@users.sourceforge.net Laurent] ||&lt;br /&gt;
|-.x&lt;br /&gt;
| || [[Code Generation Activity | Code Generation]] || 0.2.5 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 29th Aug. 2013|| [mailto:umlb@soton.ac.uk umlb] || For Java, Ada, and OpenMP C code&lt;br /&gt;
|-.x&lt;br /&gt;
|-&lt;br /&gt;
| || Relevance Filter || 1.1.1 ||  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;  || ?.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Isabelle for Rodin]] || || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 2.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[SMT_Plug-in | SMT Solvers ]] || 1.4.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || || 15th March 2016|| [mailto:lvoisin@users.sourceforge.net Laurent Voisin]  ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Pattern | Pattern]] || 0.9.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 3.x.x || 13th March 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Event-B Qualitative Probability User Guide | Qualitative Probability]] || 0.2.3 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || 3.x.x || 9th October 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[B2Latex | B2Latex export]] || 0.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 2.5.x || 27th May 2015 || [mailto:lvoisin@users.sourceforge.net Laurent Voisin] ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Generic Instantiation Plug-in User Guide | Generic Instantiation (Soton)]] || 1.0.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || || 05th March 2013 || [mailto:asf08r@ecs.soton.ac.uk Asieh] || &lt;br /&gt;
|-&lt;br /&gt;
| ||[[Records|Records]] || 2.0.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 2.x.x || 16th Oct. 2010 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use CamilleX instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] || [[UML-B|UML-B]] || 2.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| 3.x.x || 18th Oct. 2014 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] ||[[UML-B_-_Statemachine_Animation|UML-B Statemachine Animation]] || 1.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 18th Oct. 2014 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Atelier B Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://methode-b.com/update_site/atelierb_provers&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || Atelier B provers || 2.2.1 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.3.0 || 7 Aug 2017  || || Does not work with macOS Catalina!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== ProB Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://www.stups.hhu.de/prob_updates_rodin3&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || ProB || 3.0.10 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB animator and model checker&lt;br /&gt;
|-&lt;br /&gt;
| || ProB (Dis)Prover || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB counter-example finder and prover&lt;br /&gt;
|-&lt;br /&gt;
| || ProB Symbolic constants support || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Southampton Releases Update Site ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Available from http://eventb-soton.github.io/updateSite/releases&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:CamilleX.png|CmX]] || [[CamilleX|CamilleX]] || 2.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.0 || 29 Jul 2020  || [mailto:T.S.Hoang@ecs.soton.ac.uk Thai Son Hoang] || CamilleX provides text editors for Event-B models and support modelling mechanisms such as machine inclusion.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Classdiagrams|UML-B Class Diagrams]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 11 Sept 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B Class diagrams translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Statemachines|UML-B State-machines]] || 4.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B State-machines translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Event-B_Statemachines|UML-B State-machine Animation]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020 || [mailto:umlb@soton.ac.uk umlb] || Animate UML-B State-machines. Compatible with UML-B statemachines  4.x.x and ProB 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Scenario Checker|Scenario Checker]] || 0.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.x || 31 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Validation tool for recording and replaying scenarios&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following framework plug-ins are also provided on the Southampton Releases Update Site. These plugins are installed automatically when required and are not usually installed explicitly by users.&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_framework_for_Event-B|Event-B EMF framework]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|Event-B EMF extensions]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020  || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|UML-B diagrams]] || 8.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.2.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] ||  Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
|  ||[[ProB Support|ProB Support]] || 0.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.x || 28 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14385</id>
		<title>Rodin Platform 3.5.0 External Plug-ins</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14385"/>
		<updated>2020-09-11T17:16:06Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Rodin Update Site */  update some emails etc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
  Please use one of the following templates for the Status column&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; not available &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rodin Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://rodin-b-sharp.sourceforge.net/updates&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| CODA || CODA Component Diagrams || 6.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || ? || [mailto:umlb@soton.ac.uk umlb] || Not compatible with latest UML-B. To be re-issued on Soton update site&lt;br /&gt;
|-&lt;br /&gt;
| CODA || CODA Simulator for Component Diagrams || 3.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || ? || [mailto:umlb@soton.ac.uk umlb] || Not compatible with latest UML-B. To be re-issued on Soton update site&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Rose.gif|30px]]||[[Rose_(Structured)_Editor|Rose editor]] || 1.7.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 4 Nov 2018 || [mailto:umlb@soton.ac.uk umlb] || Mainly useful for Plug-in developers. Tree-structured editor for Event-B EMF that handles extensions without modification&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Project diagram icon s.png|30px]]||[[Project_Diagram|Project Diagram]]|| 1.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 1st Feb. 2015 || [mailto:umlb@soton.ac.uk umlb] || Machine - Context relationship diagram&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_Compare_Editor_installation|Teamwork]] || 1.2.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;  || 3.2.x || 5th Sept. 2016 || [mailto:umlb@soton.ac.uk umlb] || Provides a synchronised copy of Machines and Contexts for committing into a repository. It is recommended to also install the Rose editor,  EMF compare 3.1.0 and a recent repository client (e.g. Egit 4.1.4).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Cmp_mch_obj.gif|20px]] ||[[Parallel_Composition_using_Event-B | Shared Event Composition]] || 1.7.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || || 5th July 2017 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.x.x&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:DecompositionPlug-in_logo.png|30px]] || [[Decomposition Plug-in User Guide | Decomposition]] || 1.3.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| || 4th July 2017 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.x.x&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Refactoring Framework | Refactory ]]|| 1.3.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;|| 3.x.x || 6th May 2014 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Rodin 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| || [[Theory Plug-in| Theory Plug-in]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 17th Dec 2014|| [mailto:lvoisin@users.sourceforge.net Laurent] ||&lt;br /&gt;
|-.x&lt;br /&gt;
| || [[Code Generation Activity | Code Generation]] || 0.2.5 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 29th Aug. 2013|| [mailto:umlb@soton.ac.uk umlb] || For Java, Ada, and OpenMP C code&lt;br /&gt;
|-.x&lt;br /&gt;
|-&lt;br /&gt;
| || Relevance Filter || 1.1.1 ||  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;  || ?.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Isabelle for Rodin]] || || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 2.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[SMT_Plug-in | SMT Solvers ]] || 1.4.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || || 15th March 2016|| [mailto:lvoisin@users.sourceforge.net Laurent Voisin]  ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Pattern | Pattern]] || 0.9.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 3.x.x || 13th March 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Event-B Qualitative Probability User Guide | Qualitative Probability]] || 0.2.3 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || 3.x.x || 9th October 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[B2Latex | B2Latex export]] || 0.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 2.5.x || 27th May 2015 || [mailto:lvoisin@users.sourceforge.net Laurent Voisin] ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Generic Instantiation Plug-in User Guide | Generic Instantiation (Soton)]] || 1.0.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || || 05th March 2013 || [mailto:asf08r@ecs.soton.ac.uk Asieh] || &lt;br /&gt;
|-&lt;br /&gt;
| ||[[Records|Records]] || 2.0.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 2.x.x || 16th Oct. 2010 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use CamilleX instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] || [[UML-B|UML-B]] || 2.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| 3.x.x || 18th Oct. 2014 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] ||[[UML-B_-_Statemachine_Animation|UML-B Statemachine Animation]] || 1.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 18th Oct. 2014 || [mailto:umlb@soton.ac.uk umlb] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Atelier B Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://methode-b.com/update_site/atelierb_provers&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || Atelier B provers || 2.2.1 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.3.0 || 7 Aug 2017  || || Does not work with macOS Catalina!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== ProB Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://www.stups.hhu.de/prob_updates_rodin3&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || ProB || 3.0.10 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB animator and model checker&lt;br /&gt;
|-&lt;br /&gt;
| || ProB (Dis)Prover || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB counter-example finder and prover&lt;br /&gt;
|-&lt;br /&gt;
| || ProB Symbolic constants support || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Southampton Releases Update Site ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Available from http://eventb-soton.github.io/updateSite/releases&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:CamilleX.png|CmX]] || [[CamilleX|CamilleX]] || 2.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.0 || 29 Jul 2020  || [mailto:T.S.Hoang@ecs.soton.ac.uk Thai Son Hoang] || CamilleX provides text editors for Event-B models and support modelling mechanisms such as machine inclusion.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Classdiagrams|UML-B Class Diagrams]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 11 Sept 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B Class diagrams translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Statemachines|UML-B State-machines]] || 4.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B State-machines translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Event-B_Statemachines|UML-B State-machine Animation]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020 || [mailto:umlb@soton.ac.uk umlb] || Animate UML-B State-machines. Compatible with UML-B statemachines  4.x.x and ProB 3.0.x.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following framework plug-ins are also provided on the Southampton Releases Update Site. These plugins are installed automatically when required and are not usually installed explicitly by users.&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_framework_for_Event-B|Event-B EMF framework]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|Event-B EMF extensions]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020  || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|UML-B diagrams]] || 8.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.2.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] ||  Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14384</id>
		<title>Rodin Platform 3.5.0 External Plug-ins</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14384"/>
		<updated>2020-09-11T17:01:01Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Rodin Update Site */ update entries on rodin update site&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
  Please use one of the following templates for the Status column&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; not available &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rodin Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://rodin-b-sharp.sourceforge.net/updates&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Rose.gif|30px]]||[[Rose_(Structured)_Editor|Rose editor]] || 1.7.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 4 Nov 2018 || [mailto:cfs@ecs.soton.ac.uk email] || Mainly useful for Plug-in developers. Tree-structured editor for Event-B EMF that handles extensions without modification&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Project diagram icon s.png|30px]]||[[Project_Diagram|Project Diagram]]|| 1.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 1st Feb. 2015 || [mailto:vs2@ecs.soton.ac.uk email] || Machine - Context relationship diagram&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_Compare_Editor_installation|Teamwork]] || 1.2.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;  || 3.2.x || 5th Sept. 2016 || [mailto:cfs@ecs.soton.ac.uk email] || Provides a synchronised copy of Machines and Contexts for committing into a repository. It is recommended to also install the Rose editor,  EMF compare 3.1.0 and a recent repository client (e.g. Egit 4.1.4).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Cmp_mch_obj.gif|20px]] ||[[Parallel_Composition_using_Event-B | Shared Event Composition]] || 1.7.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || || 5th July 2017 || [mailto:cfs@ecs.soton.ac.uk email] || Compatible with Rodin 3.x.x (checked by cfs 5/05/17) &lt;br /&gt;
|-&lt;br /&gt;
| [[Image:DecompositionPlug-in_logo.png|30px]] || [[Decomposition Plug-in User Guide | Decomposition]] || 1.3.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| || 4th July 2017 || [mailto:cfs@ecs.soton.ac.uk email] || Compatible with Rodin 3.x.x (checked by cfs 4/05/17)&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Refactoring Framework | Refactory ]]|| 1.3.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;|| 3.x.x || 6th May 2014 || [mailto:asf08r@ecs.soton.ac.uk email] || Compatible with Rodin 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| || [[Theory Plug-in| Theory Plug-in]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 17th Dec 2014|| [mailto:asf08r@ecs.soton.ac.uk email] ||&lt;br /&gt;
|-.x&lt;br /&gt;
| || [[Code Generation Activity | Code Generation]] || 0.2.5 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 29th Aug. 2013|| [mailto:ae2@ecs.soton.ac.uk email] || For Java, Ada, and OpenMP C code&lt;br /&gt;
|-.x&lt;br /&gt;
|-&lt;br /&gt;
| || Relevance Filter || 1.1.1 ||  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;  || ?.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Isabelle for Rodin]] || || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 2.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[SMT_Plug-in | SMT Solvers ]] || 1.4.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || || 15th March 2016|| [mailto:lvoisin@users.sourceforge.net Laurent Voisin]  ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Pattern | Pattern]] || 0.9.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 3.x.x || 13th March 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Event-B Qualitative Probability User Guide | Qualitative Probability]] || 0.2.3 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || 3.x.x || 9th October 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[B2Latex | B2Latex export]] || 0.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 2.5.x || 27th May 2015 || [mailto:lvoisin@users.sourceforge.net Laurent Voisin] ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Generic Instantiation Plug-in User Guide | Generic Instantiation (Soton)]] || 1.0.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || || 05th March 2013 || [mailto:asf08r@ecs.soton.ac.uk email] || &lt;br /&gt;
|-&lt;br /&gt;
| ||[[Records|Records]] || 2.0.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 2.x.x || 16th Oct. 2010 || [mailto:cfs@ecs.soton.ac.uk email] || no longer supported - use CamilleX instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] || [[UML-B|UML-B]] || 2.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| 3.x.x || 18th Oct. 2014 || [mailto:cfs@ecs.soton.ac.uk email] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|-	&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] ||[[UML-B_-_Statemachine_Animation|UML-B Statemachine Animation]] || 1.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 18th Oct. 2014 || [mailto:vs2@ecs.soton.ac.uk email] || no longer supported - use new UML-B from Soton update site instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Atelier B Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://methode-b.com/update_site/atelierb_provers&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || Atelier B provers || 2.2.1 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.3.0 || 7 Aug 2017  || || Does not work with macOS Catalina!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== ProB Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://www.stups.hhu.de/prob_updates_rodin3&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || ProB || 3.0.10 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB animator and model checker&lt;br /&gt;
|-&lt;br /&gt;
| || ProB (Dis)Prover || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB counter-example finder and prover&lt;br /&gt;
|-&lt;br /&gt;
| || ProB Symbolic constants support || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Southampton Releases Update Site ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Available from http://eventb-soton.github.io/updateSite/releases&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:CamilleX.png|CmX]] || [[CamilleX|CamilleX]] || 2.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.0 || 29 Jul 2020  || [mailto:T.S.Hoang@ecs.soton.ac.uk Thai Son Hoang] || CamilleX provides text editors for Event-B models and support modelling mechanisms such as machine inclusion.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Classdiagrams|UML-B Class Diagrams]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 11 Sept 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B Class diagrams translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Statemachines|UML-B State-machines]] || 4.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B State-machines translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Event-B_Statemachines|UML-B State-machine Animation]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020 || [mailto:umlb@soton.ac.uk umlb] || Animate UML-B State-machines. Compatible with UML-B statemachines  4.x.x and ProB 3.0.x.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following framework plug-ins are also provided on the Southampton Releases Update Site. These plugins are installed automatically when required and are not usually installed explicitly by users.&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_framework_for_Event-B|Event-B EMF framework]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|Event-B EMF extensions]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020  || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|UML-B diagrams]] || 8.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.2.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] ||  Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14383</id>
		<title>Rodin Platform 3.5.0 External Plug-ins</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14383"/>
		<updated>2020-09-11T16:37:04Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Southampton Releases Update Site */ update versions, names and release dates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
  Please use one of the following templates for the Status column&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; not available &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rodin Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://rodin-b-sharp.sourceforge.net/updates&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Rose.gif|30px]]||[[Rose_(Structured)_Editor|Rose editor]] || 1.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 Nov 2018 || [mailto:cfs@ecs.soton.ac.uk email] || Mainly useful for Plug-in developers. Tree-structured editor for Event-B EMF that handles extensions without modification&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Project diagram icon s.png|30px]]||[[Project_Diagram|Project Diagram]]|| 1.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 1st Feb. 2015 || [mailto:vs2@ecs.soton.ac.uk email] || Machine - Context relationship diagram&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] || [[UML-B|UML-B]] || 2.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| 3.x.x || 18th Oct. 2014 || [mailto:cfs@ecs.soton.ac.uk email] || Original UML-B modelling environment&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] ||[[UML-B_-_Statemachine_Animation|UML-B Statemachine Animation]] || 1.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 18th Oct. 2014 || [mailto:vs2@ecs.soton.ac.uk email] || Compatible with UML-B 2.3 and ProB 3.0&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_Compare_Editor_installation|Teamwork]] || 1.2.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;  || 3.2.x || 5th Sept. 2016 || [mailto:cfs@ecs.soton.ac.uk email] || Provides a synchronised copy of Machines and Contexts for committing into a repository. It is recommended to also install the Rose editor,  EMF compare 3.1.0 and a recent repository client (e.g. Egit 4.1.4).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Cmp_mch_obj.gif|20px]] ||[[Parallel_Composition_using_Event-B | Shared Event Composition]] || 1.7.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || || 5th July 2017 || [mailto:cfs@ecs.soton.ac.uk email] || Compatible with Rodin 3.x.x (checked by cfs 5/05/17) &lt;br /&gt;
|-&lt;br /&gt;
| [[Image:DecompositionPlug-in_logo.png|30px]] || [[Decomposition Plug-in User Guide | Decomposition]] || 1.3.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| || 4th July 2017 || [mailto:cfs@ecs.soton.ac.uk email] || Compatible with Rodin 3.x.x (checked by cfs 4/05/17)&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Refactoring Framework | Refactory ]]|| 1.3.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;|| 3.x.x || 6th May 2014 || [mailto:asf08r@ecs.soton.ac.uk email] || Compatible with Rodin 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| || [[Theory Plug-in| Theory Plug-in]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 17th Dec 2014|| [mailto:asf08r@ecs.soton.ac.uk email] ||&lt;br /&gt;
|-.x&lt;br /&gt;
| || [[Code Generation Activity | Code Generation]] || 0.2.5 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 29th Aug. 2013|| [mailto:ae2@ecs.soton.ac.uk email] || For Java, Ada, and OpenMP C code&lt;br /&gt;
|-.x&lt;br /&gt;
|-&lt;br /&gt;
| || Relevance Filter || 1.1.1 ||  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;  || ?.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Isabelle for Rodin]] || || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 2.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[SMT_Plug-in | SMT Solvers ]] || 1.4.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || || 15th March 2016|| [mailto:lvoisin@users.sourceforge.net Laurent Voisin]  ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Pattern | Pattern]] || 0.9.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 3.x.x || 13th March 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Event-B Qualitative Probability User Guide | Qualitative Probability]] || 0.2.3 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || 3.x.x || 9th October 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[B2Latex | B2Latex export]] || 0.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 2.5.x || 27th May 2015 || [mailto:lvoisin@users.sourceforge.net Laurent Voisin] ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Generic Instantiation Plug-in User Guide | Generic Instantiation (Soton)]] || 1.0.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || || 05th March 2013 || [mailto:asf08r@ecs.soton.ac.uk email] || &lt;br /&gt;
|-&lt;br /&gt;
| ||[[Records|Records]] || 2.0.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || 2.x.x || 16th Oct. 2010 || [mailto:cfs@ecs.soton.ac.uk email] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Atelier B Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://methode-b.com/update_site/atelierb_provers&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || Atelier B provers || 2.2.1 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.3.0 || 7 Aug 2017  || || Does not work with macOS Catalina!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== ProB Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://www.stups.hhu.de/prob_updates_rodin3&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || ProB || 3.0.10 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB animator and model checker&lt;br /&gt;
|-&lt;br /&gt;
| || ProB (Dis)Prover || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB counter-example finder and prover&lt;br /&gt;
|-&lt;br /&gt;
| || ProB Symbolic constants support || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Southampton Releases Update Site ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Available from http://eventb-soton.github.io/updateSite/releases&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:CamilleX.png|CmX]] || [[CamilleX|CamilleX]] || 2.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.0 || 29 Jul 2020  || [mailto:T.S.Hoang@ecs.soton.ac.uk Thai Son Hoang] || CamilleX provides text editors for Event-B models and support modelling mechanisms such as machine inclusion.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Classdiagrams|UML-B Class Diagrams]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 11 Sept 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B Class diagrams translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Statemachines|UML-B State-machines]] || 4.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] || UML-B State-machines translate into Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Event-B_Statemachines|UML-B State-machine Animation]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020 || [mailto:umlb@soton.ac.uk umlb] || Animate UML-B State-machines. Compatible with UML-B statemachines  4.x.x and ProB 3.0.x.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following framework plug-ins are also provided on the Southampton Releases Update Site. These plugins are installed automatically when required and are not usually installed explicitly by users.&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_framework_for_Event-B|Event-B EMF framework]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|Event-B EMF extensions]] || 6.1.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 July 2020  || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|UML-B diagrams]] || 8.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.2.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] ||  Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14382</id>
		<title>Rodin Platform 3.5.0 External Plug-ins</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14382"/>
		<updated>2020-09-11T16:15:41Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Southampton Releases Update Site */ fix separate table for frameworks and fix versions and emails&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
  Please use one of the following templates for the Status column&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; not available &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rodin Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://rodin-b-sharp.sourceforge.net/updates&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Rose.gif|30px]]||[[Rose_(Structured)_Editor|Rose editor]] || 1.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 Nov 2018 || [mailto:cfs@ecs.soton.ac.uk email] || Mainly useful for Plug-in developers. Tree-structured editor for Event-B EMF that handles extensions without modification&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Project diagram icon s.png|30px]]||[[Project_Diagram|Project Diagram]]|| 1.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 1st Feb. 2015 || [mailto:vs2@ecs.soton.ac.uk email] || Machine - Context relationship diagram&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] || [[UML-B|UML-B]] || 2.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| 3.x.x || 18th Oct. 2014 || [mailto:cfs@ecs.soton.ac.uk email] || Original UML-B modelling environment&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] ||[[UML-B_-_Statemachine_Animation|UML-B Statemachine Animation]] || 1.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 18th Oct. 2014 || [mailto:vs2@ecs.soton.ac.uk email] || Compatible with UML-B 2.3 and ProB 3.0&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_Compare_Editor_installation|Teamwork]] || 1.2.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;  || 3.2.x || 5th Sept. 2016 || [mailto:cfs@ecs.soton.ac.uk email] || Provides a synchronised copy of Machines and Contexts for committing into a repository. It is recommended to also install the Rose editor,  EMF compare 3.1.0 and a recent repository client (e.g. Egit 4.1.4).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Cmp_mch_obj.gif|20px]] ||[[Parallel_Composition_using_Event-B | Shared Event Composition]] || 1.7.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || || 5th July 2017 || [mailto:cfs@ecs.soton.ac.uk email] || Compatible with Rodin 3.x.x (checked by cfs 5/05/17) &lt;br /&gt;
|-&lt;br /&gt;
| [[Image:DecompositionPlug-in_logo.png|30px]] || [[Decomposition Plug-in User Guide | Decomposition]] || 1.3.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| || 4th July 2017 || [mailto:cfs@ecs.soton.ac.uk email] || Compatible with Rodin 3.x.x (checked by cfs 4/05/17)&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Refactoring Framework | Refactory ]]|| 1.3.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;|| 3.x.x || 6th May 2014 || [mailto:asf08r@ecs.soton.ac.uk email] || Compatible with Rodin 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| || [[Theory Plug-in| Theory Plug-in]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 17th Dec 2014|| [mailto:asf08r@ecs.soton.ac.uk email] ||&lt;br /&gt;
|-.x&lt;br /&gt;
| || [[Code Generation Activity | Code Generation]] || 0.2.5 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 29th Aug. 2013|| [mailto:ae2@ecs.soton.ac.uk email] || For Java, Ada, and OpenMP C code&lt;br /&gt;
|-.x&lt;br /&gt;
|-&lt;br /&gt;
| || Relevance Filter || 1.1.1 ||  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;  || ?.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Isabelle for Rodin]] || || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 2.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[SMT_Plug-in | SMT Solvers ]] || 1.4.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || || 15th March 2016|| [mailto:lvoisin@users.sourceforge.net Laurent Voisin]  ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Pattern | Pattern]] || 0.9.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 3.x.x || 13th March 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Event-B Qualitative Probability User Guide | Qualitative Probability]] || 0.2.3 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || 3.x.x || 9th October 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[B2Latex | B2Latex export]] || 0.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 2.5.x || 27th May 2015 || [mailto:lvoisin@users.sourceforge.net Laurent Voisin] ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Generic Instantiation Plug-in User Guide | Generic Instantiation (Soton)]] || 1.0.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || || 05th March 2013 || [mailto:asf08r@ecs.soton.ac.uk email] || &lt;br /&gt;
|-&lt;br /&gt;
| ||[[Records|Records]] || 2.0.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || 2.x.x || 16th Oct. 2010 || [mailto:cfs@ecs.soton.ac.uk email] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Atelier B Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://methode-b.com/update_site/atelierb_provers&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || Atelier B provers || 2.2.1 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.3.0 || 7 Aug 2017  || || Does not work with macOS Catalina!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== ProB Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://www.stups.hhu.de/prob_updates_rodin3&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || ProB || 3.0.10 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB animator and model checker&lt;br /&gt;
|-&lt;br /&gt;
| || ProB (Dis)Prover || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB counter-example finder and prover&lt;br /&gt;
|-&lt;br /&gt;
| || ProB Symbolic constants support || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Southampton Releases Update Site ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Available from http://eventb-soton.github.io/updateSite/releases&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:CamilleX.png|CmX]] || [[CamilleX|CamilleX]] || 2.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.0 || 29 Jul 2020  || [mailto:T.S.Hoang@ecs.soton.ac.uk Thai Son Hoang] || CamilleX provides text editors for Event-B models and support modelling mechanisms such as machine inclusion.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Classdiagrams|Event-B Class Diagrams]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 11 Sept 2020  || [mailto:umlb@soton.ac.uk umlb] || Class diagrams contained in Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Statemachines|Event-B State-machines]] || 4.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020  || [mailto:umlb@soton.ac.uk umlb] || State-machines contained in Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Event-B_Statemachines|Event-B State-machine Animation]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020 || [mailto:umlb@soton.ac.uk umlb] || Compatible with Event-B statemachines  4.x.x and ProB 3.0.x.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following framework plug-ins are also provided on the Southampton Releases Update Site. These plugins are installed automatically when required and are not usually installed explicitly by users.&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_framework_for_Event-B|Event-B EMF framework]] || 6.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 Nov 2018 || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|Event-B EMF support for extensions]] || 6.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 17th Dec 2015  || [mailto:umlb@soton.ac.uk umlb] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|Event-B EMF support for diagrams]] || 7.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.2.x || 17th Dec 2015  || [mailto:umlb@soton.ac.uk umlb] ||  Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14381</id>
		<title>Rodin Platform 3.5.0 External Plug-ins</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14381"/>
		<updated>2020-09-11T16:04:27Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Southampton Releases Update Site */ add UML-B classdiagrams and frameworks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
  Please use one of the following templates for the Status column&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; not available &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rodin Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://rodin-b-sharp.sourceforge.net/updates&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Rose.gif|30px]]||[[Rose_(Structured)_Editor|Rose editor]] || 1.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 Nov 2018 || [mailto:cfs@ecs.soton.ac.uk email] || Mainly useful for Plug-in developers. Tree-structured editor for Event-B EMF that handles extensions without modification&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Project diagram icon s.png|30px]]||[[Project_Diagram|Project Diagram]]|| 1.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 1st Feb. 2015 || [mailto:vs2@ecs.soton.ac.uk email] || Machine - Context relationship diagram&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] || [[UML-B|UML-B]] || 2.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| 3.x.x || 18th Oct. 2014 || [mailto:cfs@ecs.soton.ac.uk email] || Original UML-B modelling environment&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] ||[[UML-B_-_Statemachine_Animation|UML-B Statemachine Animation]] || 1.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 18th Oct. 2014 || [mailto:vs2@ecs.soton.ac.uk email] || Compatible with UML-B 2.3 and ProB 3.0&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_Compare_Editor_installation|Teamwork]] || 1.2.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;  || 3.2.x || 5th Sept. 2016 || [mailto:cfs@ecs.soton.ac.uk email] || Provides a synchronised copy of Machines and Contexts for committing into a repository. It is recommended to also install the Rose editor,  EMF compare 3.1.0 and a recent repository client (e.g. Egit 4.1.4).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Cmp_mch_obj.gif|20px]] ||[[Parallel_Composition_using_Event-B | Shared Event Composition]] || 1.7.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || || 5th July 2017 || [mailto:cfs@ecs.soton.ac.uk email] || Compatible with Rodin 3.x.x (checked by cfs 5/05/17) &lt;br /&gt;
|-&lt;br /&gt;
| [[Image:DecompositionPlug-in_logo.png|30px]] || [[Decomposition Plug-in User Guide | Decomposition]] || 1.3.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| || 4th July 2017 || [mailto:cfs@ecs.soton.ac.uk email] || Compatible with Rodin 3.x.x (checked by cfs 4/05/17)&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Refactoring Framework | Refactory ]]|| 1.3.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;|| 3.x.x || 6th May 2014 || [mailto:asf08r@ecs.soton.ac.uk email] || Compatible with Rodin 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| || [[Theory Plug-in| Theory Plug-in]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 17th Dec 2014|| [mailto:asf08r@ecs.soton.ac.uk email] ||&lt;br /&gt;
|-.x&lt;br /&gt;
| || [[Code Generation Activity | Code Generation]] || 0.2.5 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 29th Aug. 2013|| [mailto:ae2@ecs.soton.ac.uk email] || For Java, Ada, and OpenMP C code&lt;br /&gt;
|-.x&lt;br /&gt;
|-&lt;br /&gt;
| || Relevance Filter || 1.1.1 ||  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;  || ?.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Isabelle for Rodin]] || || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 2.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[SMT_Plug-in | SMT Solvers ]] || 1.4.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || || 15th March 2016|| [mailto:lvoisin@users.sourceforge.net Laurent Voisin]  ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Pattern | Pattern]] || 0.9.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 3.x.x || 13th March 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Event-B Qualitative Probability User Guide | Qualitative Probability]] || 0.2.3 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || 3.x.x || 9th October 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[B2Latex | B2Latex export]] || 0.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 2.5.x || 27th May 2015 || [mailto:lvoisin@users.sourceforge.net Laurent Voisin] ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Generic Instantiation Plug-in User Guide | Generic Instantiation (Soton)]] || 1.0.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || || 05th March 2013 || [mailto:asf08r@ecs.soton.ac.uk email] || &lt;br /&gt;
|-&lt;br /&gt;
| ||[[Records|Records]] || 2.0.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || 2.x.x || 16th Oct. 2010 || [mailto:cfs@ecs.soton.ac.uk email] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Atelier B Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://methode-b.com/update_site/atelierb_provers&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || Atelier B provers || 2.2.1 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.3.0 || 7 Aug 2017  || || Does not work with macOS Catalina!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== ProB Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://www.stups.hhu.de/prob_updates_rodin3&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || ProB || 3.0.10 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB animator and model checker&lt;br /&gt;
|-&lt;br /&gt;
| || ProB (Dis)Prover || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB counter-example finder and prover&lt;br /&gt;
|-&lt;br /&gt;
| || ProB Symbolic constants support || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Southampton Releases Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://eventb-soton.github.io/updateSite/releases&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:CamilleX.png|CmX]] || [[CamilleX|CamilleX]] || 2.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.0 || 29 Jul 2020  || [mailto:T.S.Hoang@ecs.soton.ac.uk Thai Son Hoang] || CamilleX provides text editors for Event-B models and support modelling mechanisms such as machine inclusion.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Classdiagrams|Event-B Class Diagrams]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 Nov 2018  || [mailto:cfs@ecs.soton.ac.uk email] || Class diagrams contained in Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Statemachines|Event-B State-machines]] || 4.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020  || [mailto:cfs@ecs.soton.ac.uk Colin Snook] || State-machines contained in Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Event-B_Statemachines|Event-B State-machine Animation]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020 || [mailto:cfs@ecs.soton.ac.uk Colin Snook] || Compatible with Event-B statemachines  4.x.x and ProB 3.0.x.&lt;br /&gt;
|}&lt;br /&gt;
| ||[[EMF_framework_for_Event-B|Event-B EMF framework]] || 6.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 Nov 2018 || [mailto:cfs@ecs.soton.ac.uk email] || Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|Event-B EMF support for extensions]] || 6.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 17th Dec 2015  || [mailto:cfs@ecs.soton.ac.uk email] || Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Generic_Event-B_EMF_extensions|Event-B EMF support for diagrams]] || 7.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.2.x || 17th Dec 2015  || [mailto:cfs@ecs.soton.ac.uk email] ||  Provided for plug-in developers.  End users should not need to install this framework. It will be installed automatically by other plug-ins as required.&lt;br /&gt;
|-&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14380</id>
		<title>Rodin Platform 3.5.0 External Plug-ins</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Rodin_Platform_3.5.0_External_Plug-ins&amp;diff=14380"/>
		<updated>2020-09-11T16:02:43Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Rodin Update Site */  remove soton plugins - classdiagrams and frameworks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
  Please use one of the following templates for the Status column&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; not available &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rodin Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://rodin-b-sharp.sourceforge.net/updates&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Rose.gif|30px]]||[[Rose_(Structured)_Editor|Rose editor]] || 1.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 4 Nov 2018 || [mailto:cfs@ecs.soton.ac.uk email] || Mainly useful for Plug-in developers. Tree-structured editor for Event-B EMF that handles extensions without modification&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Project diagram icon s.png|30px]]||[[Project_Diagram|Project Diagram]]|| 1.0.1 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 1st Feb. 2015 || [mailto:vs2@ecs.soton.ac.uk email] || Machine - Context relationship diagram&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] || [[UML-B|UML-B]] || 2.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| 3.x.x || 18th Oct. 2014 || [mailto:cfs@ecs.soton.ac.uk email] || Original UML-B modelling environment&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Umlb32.gif|30px]] ||[[UML-B_-_Statemachine_Animation|UML-B Statemachine Animation]] || 1.3.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || 3.x.x || 18th Oct. 2014 || [mailto:vs2@ecs.soton.ac.uk email] || Compatible with UML-B 2.3 and ProB 3.0&lt;br /&gt;
|-&lt;br /&gt;
| ||[[EMF_Compare_Editor_installation|Teamwork]] || 1.2.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;  || 3.2.x || 5th Sept. 2016 || [mailto:cfs@ecs.soton.ac.uk email] || Provides a synchronised copy of Machines and Contexts for committing into a repository. It is recommended to also install the Rose editor,  EMF compare 3.1.0 and a recent repository client (e.g. Egit 4.1.4).&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Cmp_mch_obj.gif|20px]] ||[[Parallel_Composition_using_Event-B | Shared Event Composition]] || 1.7.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt; || || 5th July 2017 || [mailto:cfs@ecs.soton.ac.uk email] || Compatible with Rodin 3.x.x (checked by cfs 5/05/17) &lt;br /&gt;
|-&lt;br /&gt;
| [[Image:DecompositionPlug-in_logo.png|30px]] || [[Decomposition Plug-in User Guide | Decomposition]] || 1.3.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked &amp;lt;/span&amp;gt;|| || 4th July 2017 || [mailto:cfs@ecs.soton.ac.uk email] || Compatible with Rodin 3.x.x (checked by cfs 4/05/17)&lt;br /&gt;
|-&lt;br /&gt;
| ||[[Refactoring Framework | Refactory ]]|| 1.3.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;|| 3.x.x || 6th May 2014 || [mailto:asf08r@ecs.soton.ac.uk email] || Compatible with Rodin 3.0.x.&lt;br /&gt;
|-&lt;br /&gt;
| || [[Theory Plug-in| Theory Plug-in]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 17th Dec 2014|| [mailto:asf08r@ecs.soton.ac.uk email] ||&lt;br /&gt;
|-.x&lt;br /&gt;
| || [[Code Generation Activity | Code Generation]] || 0.2.5 ||&amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt;||  || 29th Aug. 2013|| [mailto:ae2@ecs.soton.ac.uk email] || For Java, Ada, and OpenMP C code&lt;br /&gt;
|-.x&lt;br /&gt;
|-&lt;br /&gt;
| || Relevance Filter || 1.1.1 ||  &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;  || ?.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Isabelle for Rodin]] || || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 2.x.x || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[SMT_Plug-in | SMT Solvers ]] || 1.4.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || || 15th March 2016|| [mailto:lvoisin@users.sourceforge.net Laurent Voisin]  ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Pattern | Pattern]] || 0.9.0 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || 3.x.x || 13th March 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[Event-B Qualitative Probability User Guide | Qualitative Probability]] || 0.2.3 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || 3.x.x || 9th October 2015 || [mailto:tshoang@users.sourceforge.net Thai Son Hoang] || &lt;br /&gt;
|-&lt;br /&gt;
| || [[B2Latex | B2Latex export]] || 0.7.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt;|| 2.5.x || 27th May 2015 || [mailto:lvoisin@users.sourceforge.net Laurent Voisin] ||&lt;br /&gt;
|-&lt;br /&gt;
| || [[Generic Instantiation Plug-in User Guide | Generic Instantiation (Soton)]] || 1.0.1 || &amp;lt;span style=&amp;quot;color:#8B4513&amp;quot;&amp;gt; not checked&amp;lt;/span&amp;gt; || || 05th March 2013 || [mailto:asf08r@ecs.soton.ac.uk email] || &lt;br /&gt;
|-&lt;br /&gt;
| ||[[Records|Records]] || 2.0.0 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; available &amp;lt;/span&amp;gt; || 2.x.x || 16th Oct. 2010 || [mailto:cfs@ecs.soton.ac.uk email] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Atelier B Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://methode-b.com/update_site/atelierb_provers&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || Atelier B provers || 2.2.1 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.3.0 || 7 Aug 2017  || || Does not work with macOS Catalina!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== ProB Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://www.stups.hhu.de/prob_updates_rodin3&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| || ProB || 3.0.10 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB animator and model checker&lt;br /&gt;
|-&lt;br /&gt;
| || ProB (Dis)Prover || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || The ProB counter-example finder and prover&lt;br /&gt;
|-&lt;br /&gt;
| || ProB Symbolic constants support || 3.0.9 || &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;available&amp;lt;/span&amp;gt; || 3.5.0 || 4 Sep 2020  || || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Southampton Releases Update Site ====&lt;br /&gt;
&lt;br /&gt;
Available from http://eventb-soton.github.io/updateSite/releases&lt;br /&gt;
&lt;br /&gt;
{{SimpleHeader}}&lt;br /&gt;
|-&lt;br /&gt;
! scope=col |  || Plug-in name || Version ||  Status || MCV* || Release Date || Contact || Additional info&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:CamilleX.png|CmX]] || [[CamilleX|CamilleX]] || 2.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.4.0 || 29 Jul 2020  || [mailto:T.S.Hoang@ecs.soton.ac.uk Thai Son Hoang] || CamilleX provides text editors for Event-B models and support modelling mechanisms such as machine inclusion.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] || [[Event-B_Statemachines|Event-B State-machines]] || 4.0.1 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020  || [mailto:cfs@ecs.soton.ac.uk Colin Snook] || State-machines contained in Event-B Machines.&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:IUMLB_big.png|30px]] ||[[Event-B_Statemachines|Event-B State-machine Animation]] || 3.0.0 ||&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; new release &amp;lt;/span&amp;gt; || 3.x.x || 13 Aug 2020 || [mailto:cfs@ecs.soton.ac.uk Colin Snook] || Compatible with Event-B statemachines  4.x.x and ProB 3.0.x.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Event-B_EMF_extensions&amp;diff=14350</id>
		<title>Generic Event-B EMF extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Event-B_EMF_extensions&amp;diff=14350"/>
		<updated>2020-05-30T11:01:56Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Contributing new EMF element types to the Navigator view */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Modelling==&lt;br /&gt;
&lt;br /&gt;
==Persistence==&lt;br /&gt;
&lt;br /&gt;
Event-B EMF Models may be persisted in several ways:&lt;br /&gt;
# inside a Rodin file by extending Rodin and the Event-B EMF persistence with new Rodin elements and synchronisers to load and save. (This is how the Event-B EMF core plugin works, except that the Rodin elements for standard Event-B already existed).&lt;br /&gt;
# inside a Rodin file as a String attribute containing XMI, using the SerialisedExtensionSynchroniser. (This is how UML-B diagrams are saved inside Machines)&lt;br /&gt;
# in EMF format as an XMI file.&lt;br /&gt;
# in plain text using the XText framework.&lt;br /&gt;
&lt;br /&gt;
Here we mainly focus on methods 2 and 3. &lt;br /&gt;
We are also developing method 4. as a text persistence, but this is described elsewhere. &lt;br /&gt;
We do not intend to use method 1 as we do not need Rodin to understand the model (because we translate into standard Machines and Context for verification).&lt;br /&gt;
&lt;br /&gt;
For method 2, declare your root meta-class to use the &#039;&#039;SerialisedExtensionSynchroniser&#039;&#039; using the extension point &#039;&#039;org.eventb.emf.persistence.synchroniser&#039;&#039; e.g.&lt;br /&gt;
   &amp;lt;extension&lt;br /&gt;
         point=&amp;quot;org.eventb.emf.persistence.synchroniser&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;emfPackage&lt;br /&gt;
            name=&amp;quot;Statemachines Package&amp;quot;&lt;br /&gt;
            nsURI=&amp;quot;http://soton.ac.uk/models/eventb/statemachines/2014&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;synchroniser&lt;br /&gt;
               emf_class=&amp;quot;Statemachine&amp;quot;&lt;br /&gt;
               name=&amp;quot;Statemachine&amp;quot;&lt;br /&gt;
               rodin_id=&amp;quot;ac.soton.eventb.emf.core.extension.persistence.serialisedExtension&amp;quot;&lt;br /&gt;
               synchroniser_class=&amp;quot;ac.soton.eventb.emf.core.extension.persistence.SerialisedExtensionSynchroniser&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;/synchroniser&amp;gt;&lt;br /&gt;
      &amp;lt;/emfPackage&amp;gt;&lt;br /&gt;
   &amp;lt;/extension&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For method 3, due to the way the Event-B EMF framework implements references, it is important to save files using certain non-default styles.&lt;br /&gt;
To achieve this, declare the content type of your file as &#039;&#039;ac.soton.eventb.emf.core.extension.persistence.contentType&#039;&#039; using the extension point &#039;&#039;org.eclipse.core.contenttype.contentTypes&#039;&#039; e.g.&lt;br /&gt;
   &amp;lt;extension&lt;br /&gt;
         point=&amp;quot;org.eclipse.core.contenttype.contentTypes&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;file-association&lt;br /&gt;
            content-type=&amp;quot;ac.soton.eventb.emf.core.extension.persistence.contentType&amp;quot;&lt;br /&gt;
            file-extensions=&amp;quot;umlb&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;/file-association&amp;gt;&lt;br /&gt;
   &amp;lt;/extension&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Navigator==&lt;br /&gt;
&lt;br /&gt;
This section describes how to extend the Event-B Navigator to support Event-B EMF extensions.&lt;br /&gt;
&lt;br /&gt;
===Contributing new EMF element types to the Navigator view===&lt;br /&gt;
&lt;br /&gt;
The Event-B EMF extensions framework makes it easy to contribute new types of models to the Event-B navigator.&lt;br /&gt;
You just need to tell the framework some details about your models (as follows) and it does the rest.&lt;br /&gt;
&lt;br /&gt;
If the EMF element types are contained in a new file type, declare the new file extension using the extension point:&lt;br /&gt;
&lt;br /&gt;
 ac.soton.eventb.emf.core.extension.navigator.emfFileExtensions&lt;br /&gt;
&lt;br /&gt;
This tells the extensions plugin to adapt the emf contents of those files to be shown in the Navigator.&lt;br /&gt;
&lt;br /&gt;
To ensure the EMF elements are labeled and imaged correctly in the Navigator, declare the EMF adapter factory to the framework using the extension point:&lt;br /&gt;
&lt;br /&gt;
 ac.soton.eventb.emf.core.extension.navigator.adapterFactories&lt;br /&gt;
&lt;br /&gt;
(Note - the adapter factory is generated by the EMF genmodel in the edit plugin).&lt;br /&gt;
&lt;br /&gt;
==Refinement==&lt;br /&gt;
&lt;br /&gt;
[THIS SECTION NEEDS REVIEW AND UPDATE]&lt;br /&gt;
&lt;br /&gt;
The Rodin platform provides an extension point for contributing behaviour to the &#039;Refine&#039; action.&lt;br /&gt;
For Serialised Event-B EMF extensions, an abstract, reflective refinement contributor class is provided to simplify the task of making a refinement.&lt;br /&gt;
&lt;br /&gt;
The class is:&lt;br /&gt;
  ac.soton.eventb.emf.core.extension.navigator.refiner$AbstractExtensionRefiner which implements IRefinementParticipant.&lt;br /&gt;
&lt;br /&gt;
The class should be extended by a client plug-in and the client&#039;s class should be registered as a Refinement Participant using the relevant Rodin extension point&lt;br /&gt;
The client class must implement the method getExtensionID() to return the relevant Extension ID string that identifies such extensions.&lt;br /&gt;
The client class may override populateReferenceMap(Map&amp;lt;EReference,Boolean&amp;gt;) to add the EReference Features that need to be dealt with, defining which ones are back references to the corresponding abstract element (put true in map) and which ones should reference the corresponding element in the copy (put false in map).&lt;br /&gt;
The client class may also override populateFilterByTypeList(List&amp;lt;EClass&amp;gt;) to add the EClass of any types of element that should not be copied into the refinement.&lt;br /&gt;
&lt;br /&gt;
The generic refiner class works as follows:&lt;br /&gt;
* All serialised extensions of the given Extension ID in the Rodin resource are loaded&lt;br /&gt;
* Each one is deep cloned using the Ecore copier utility&lt;br /&gt;
* The contents of the clone extension are then searched for any elements of the EClasses in the client supplied list to be filtered. Such elements are deleted from the clone.&lt;br /&gt;
* The contents of the clone extension are then searched for elements that own one of the client supplied EReferences. &lt;br /&gt;
* For each reference, the reference is either set to reference the corresponding source abstract element or copied so that it corresponds to the abstract reference&lt;br /&gt;
&lt;br /&gt;
==Diagrams==&lt;br /&gt;
&lt;br /&gt;
==Generator==&lt;br /&gt;
&lt;br /&gt;
[THIS SECTION NEEDS REVIEW AND UPDATE - &lt;br /&gt;
Note: The generator is now based on a more generic EMF translator: https://github.com/eventB-Soton/EMF_Translator&lt;br /&gt;
It is adapted to Event-B : https://github.com/eventB-Soton/EventB_Translator_Support &lt;br /&gt;
There is a documentation plugin in the EMF translator source code that describes the necessary extension points and how to contribute a specific translation.]&lt;br /&gt;
&lt;br /&gt;
A framework to support the implementation of generators is provided. The framework is designed to support the generation of standard Event-B models from higher-level model extensions that are based on the Event-B EMF modelling extensions framework.&lt;br /&gt;
&lt;br /&gt;
The Generator framework provides:&lt;br /&gt;
&lt;br /&gt;
* A toolbar button to initiate the generation&lt;br /&gt;
* Generic code to remove previously generated elements&lt;br /&gt;
* Generic code to organise the incorporation of newly generated elements&lt;br /&gt;
* Utilities to aid the creation of new elements&lt;br /&gt;
* An abstract basis for client defined rules&lt;br /&gt;
* An extension point for clients to declare generators and generation rules&lt;br /&gt;
&lt;br /&gt;
The client rules return generation descriptors (rather than modifying the target model directly). The framework takes care of updating the model (within the clients Transactional Editing Domain) provided the generation completes successfully. This ensures that the model is not left in an inconsistent state should the generation fail. The generation descriptors allow the client to specify where the new element should be contained and a priority which will be used to influence the placement of the new element within the containment ordering.&lt;br /&gt;
&lt;br /&gt;
To define a particular generator a client should:&lt;br /&gt;
&lt;br /&gt;
* Define an extension of org.eclipse.ui.handlers to enable the generate command when the activePartID is their Editor (see [[Defining a generator handler]])&lt;br /&gt;
* Define an extension of ac.soton.eventb.emf.diagrams.generator.rule to make the generator framework aware of your generator and its rule classes.&lt;br /&gt;
* Implement your rule classes&lt;br /&gt;
&lt;br /&gt;
=== Generation Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Each rule should return a collection of one or more Generation Descriptors. Generation Descriptors have the following fields which are explained in this section.&lt;br /&gt;
&lt;br /&gt;
* EventBElement parent;&lt;br /&gt;
* EStructuralFeature feature;&lt;br /&gt;
* Object value;&lt;br /&gt;
* Integer priority;&lt;br /&gt;
* Boolean editable;&lt;br /&gt;
* Boolean remove;&lt;br /&gt;
&lt;br /&gt;
The feature of the parent will be changed in the following ways:&lt;br /&gt;
&lt;br /&gt;
If remove is false:&lt;br /&gt;
* 1) If the feature is a containment and the value is an element of the correct kind, the value will be added to the containment in a position according to the priority&lt;br /&gt;
* 2) If the feature is a reference and the value is an element of the correct kind, the value will be added to the reference in a position according to the priority&lt;br /&gt;
* 3) If the feature is an EAttribute and the value is of the correct type, the feature will be set to the value&lt;br /&gt;
  &lt;br /&gt;
Priority can be used to control the relative position of the generated elements  &lt;br /&gt;
* 1 - must come first&lt;br /&gt;
* 10 - not important&lt;br /&gt;
* ---user entered items---&lt;br /&gt;
* 0 must come after user entered items&lt;br /&gt;
* -10 must come last&lt;br /&gt;
  &lt;br /&gt;
Editable - this affects read-only status of the generated element and whether or not it will be preserved or re-generated in a subsequent generation.&lt;br /&gt;
* false - the element is set as read-only (the user cannot change its attributes nor add/remove children), any existing copy of the element will be deleted and re-generated at each re-generation&lt;br /&gt;
* true  - the element is not read-only and will not be deleted before re-generation. (N.B. It is the responsibility of the client rules to check whether this element already exists and only only generate a new one if it does not)&lt;br /&gt;
  &lt;br /&gt;
If remove is true:&lt;br /&gt;
* 1) If the feature is a containment and the value is an element of the correct kind, the value will be deleted from the containment&lt;br /&gt;
* 2) If the feature is a reference and the value is an element of the correct kind, the value will be removed from the reference&lt;br /&gt;
* 3) If the feature is an EAttribute, the feature will be unset &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementing Rule Classes ===&lt;br /&gt;
&lt;br /&gt;
Rule classes must implement IRule. It is recommended the rule classes extend ac.soton.eventb.emf.diagrams.generator#AbstractRule which provides some concise constants for the commonly needed containments and defines some default behaviour (always enabled and dependencies ok).  Note that the rule will only be attempted for the type of source element defined in the extension point. However, this could be defined as an abstract base class to allow the rule to operate on several types of element.&lt;br /&gt;
&lt;br /&gt;
A rule has 4 methods:&lt;br /&gt;
&lt;br /&gt;
* boolean enabled (final EventBElement sourceElement)&lt;br /&gt;
* boolean dependenciesOK(EventBElement sourceElement,List&amp;lt;GenerationDescriptor&amp;gt; generatedElements)&lt;br /&gt;
* boolean fireLate()&lt;br /&gt;
* List&amp;lt;GenerationDescriptor&amp;gt; fire(EventBElement sourceElement, List&amp;lt;GenerationDescriptor&amp;gt; generatedElements)&lt;br /&gt;
&lt;br /&gt;
The enabled method can be used to restrict when it applies. More than one rule can be defined for the same kind of element allowing the generation to be decomposed in a maintainable way. &lt;br /&gt;
&lt;br /&gt;
TheDependenciesOK method allows the method to be deferred since the success of rules may depend on what has already been generated. The dependenciesOK method is passed the list of GenerationDescriptors created so far.&lt;br /&gt;
&lt;br /&gt;
The fireLate method forces the rule to be fired when all other rules have been fired. This is usually used when the rules behaviour depends on what other rules have done.&lt;br /&gt;
&lt;br /&gt;
The fire method must return a list of GenerationDescriptors describing what should be generated. The Utility class, Make, provides a convenience method to help construct a GenerationDescriptor from the parent element, the containment feature, the new child and the priority indicator and if needed the editable setting.&lt;br /&gt;
&lt;br /&gt;
Priority may be from 10 to -10, where 1 indicates first in the containment and -10 last in the containment. Elements in the containment that are not (currently) being generated are placed between priorities 10 and 0. Bear in mind that the relative position of different diagrams (extensions)is preserved within each priority band. Also the order of source elements within their containment is preserved within each priority band.&lt;br /&gt;
&lt;br /&gt;
 1 2 3 4 5 6 7 8 9 10 &amp;lt;other content&amp;gt; 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10&lt;br /&gt;
&lt;br /&gt;
For example, a basic type invariant that doesn&#039;t depend on other variables might be placed at position 1 whereas a theorem or invariant included purely for proof purposes might be placed at position -10. &lt;br /&gt;
&lt;br /&gt;
A current limitation of the priority scheme is that there are a limited number of priorities. For example, this could be a problem if a rule needs to calculate positions of each element within a collection based on dependencies of the element instance.&lt;br /&gt;
&lt;br /&gt;
In most cases the generated element should be set as read-only (the default). In this case the element will be deleted and re-generated on each invocation of the generator. The should not change any attributes of the element nor add to its children. In some case, however, it is necessary to generate an element whose contents may be modified by the user. To do this set the editable parameter of the Generation Descriptor. In this case the generated element will not be deleted when the generator is next invoked. The rule must take care not to return another Generation Descriptor if the element has already been generated. It should look for a suitable generated element (to use for adding further generated chldren etc.) and only generate a new one if it doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
Where a tree structure is entirely generated within one rule firing (e.g. an event with guards and actions) it is more efficient to construct the entire event and return a single Generation Descriptor that adds that event. It is also possible to do this by returning separate Generation Descriptors to add the event and each guard and action individually.&lt;br /&gt;
&lt;br /&gt;
A typical line from a rule class might look like this:&lt;br /&gt;
 		ret.add(Make.descriptor(machine,invariants,Make.invariant(&amp;quot;myInvariantName&amp;quot;, &amp;quot;myVar &amp;gt;0&amp;quot;,&amp;quot;my comment&amp;quot;),10));&lt;br /&gt;
where, &lt;br /&gt;
ret is the list to be returned and machine is the parent element containing the invariants to be added to.&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Event-B_EMF_extensions&amp;diff=14349</id>
		<title>Generic Event-B EMF extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Event-B_EMF_extensions&amp;diff=14349"/>
		<updated>2020-05-30T08:49:42Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Persistence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Modelling==&lt;br /&gt;
&lt;br /&gt;
==Persistence==&lt;br /&gt;
&lt;br /&gt;
Event-B EMF Models may be persisted in several ways:&lt;br /&gt;
# inside a Rodin file by extending Rodin and the Event-B EMF persistence with new Rodin elements and synchronisers to load and save. (This is how the Event-B EMF core plugin works, except that the Rodin elements for standard Event-B already existed).&lt;br /&gt;
# inside a Rodin file as a String attribute containing XMI, using the SerialisedExtensionSynchroniser. (This is how UML-B diagrams are saved inside Machines)&lt;br /&gt;
# in EMF format as an XMI file.&lt;br /&gt;
# in plain text using the XText framework.&lt;br /&gt;
&lt;br /&gt;
Here we mainly focus on methods 2 and 3. &lt;br /&gt;
We are also developing method 4. as a text persistence, but this is described elsewhere. &lt;br /&gt;
We do not intend to use method 1 as we do not need Rodin to understand the model (because we translate into standard Machines and Context for verification).&lt;br /&gt;
&lt;br /&gt;
For method 2, declare your root meta-class to use the &#039;&#039;SerialisedExtensionSynchroniser&#039;&#039; using the extension point &#039;&#039;org.eventb.emf.persistence.synchroniser&#039;&#039; e.g.&lt;br /&gt;
   &amp;lt;extension&lt;br /&gt;
         point=&amp;quot;org.eventb.emf.persistence.synchroniser&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;emfPackage&lt;br /&gt;
            name=&amp;quot;Statemachines Package&amp;quot;&lt;br /&gt;
            nsURI=&amp;quot;http://soton.ac.uk/models/eventb/statemachines/2014&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;synchroniser&lt;br /&gt;
               emf_class=&amp;quot;Statemachine&amp;quot;&lt;br /&gt;
               name=&amp;quot;Statemachine&amp;quot;&lt;br /&gt;
               rodin_id=&amp;quot;ac.soton.eventb.emf.core.extension.persistence.serialisedExtension&amp;quot;&lt;br /&gt;
               synchroniser_class=&amp;quot;ac.soton.eventb.emf.core.extension.persistence.SerialisedExtensionSynchroniser&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;/synchroniser&amp;gt;&lt;br /&gt;
      &amp;lt;/emfPackage&amp;gt;&lt;br /&gt;
   &amp;lt;/extension&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For method 3, due to the way the Event-B EMF framework implements references, it is important to save files using certain non-default styles.&lt;br /&gt;
To achieve this, declare the content type of your file as &#039;&#039;ac.soton.eventb.emf.core.extension.persistence.contentType&#039;&#039; using the extension point &#039;&#039;org.eclipse.core.contenttype.contentTypes&#039;&#039; e.g.&lt;br /&gt;
   &amp;lt;extension&lt;br /&gt;
         point=&amp;quot;org.eclipse.core.contenttype.contentTypes&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;file-association&lt;br /&gt;
            content-type=&amp;quot;ac.soton.eventb.emf.core.extension.persistence.contentType&amp;quot;&lt;br /&gt;
            file-extensions=&amp;quot;umlb&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;/file-association&amp;gt;&lt;br /&gt;
   &amp;lt;/extension&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Navigator==&lt;br /&gt;
&lt;br /&gt;
This section describes how to extend the Event-B Navigator to support Event-B EMF extensions.&lt;br /&gt;
&lt;br /&gt;
===Contributing new EMF element types to the Navigator view===&lt;br /&gt;
&lt;br /&gt;
If the EMF element types are contained in a new file type, declare the new file extension using the extension point:&lt;br /&gt;
&lt;br /&gt;
 ac.soton.eventb.emf.core.extension.navigator.emfFileExtensions&lt;br /&gt;
&lt;br /&gt;
This tells the extensions plugin to adapt the emf contents of those files to be shown in the Navigator.&lt;br /&gt;
&lt;br /&gt;
To ensure the EMF elements are labeled and imaged correctly in the Navigator, declare the adapter factory using the extension point:&lt;br /&gt;
&lt;br /&gt;
 ac.soton.eventb.emf.core.extension.navigator.adapterFactories&lt;br /&gt;
&lt;br /&gt;
(Note - use the adapter factory generated by the EMF genmodel in the edit plugin).&lt;br /&gt;
&lt;br /&gt;
==Refinement==&lt;br /&gt;
&lt;br /&gt;
[THIS SECTION NEEDS REVIEW AND UPDATE]&lt;br /&gt;
&lt;br /&gt;
The Rodin platform provides an extension point for contributing behaviour to the &#039;Refine&#039; action.&lt;br /&gt;
For Serialised Event-B EMF extensions, an abstract, reflective refinement contributor class is provided to simplify the task of making a refinement.&lt;br /&gt;
&lt;br /&gt;
The class is:&lt;br /&gt;
  ac.soton.eventb.emf.core.extension.navigator.refiner$AbstractExtensionRefiner which implements IRefinementParticipant.&lt;br /&gt;
&lt;br /&gt;
The class should be extended by a client plug-in and the client&#039;s class should be registered as a Refinement Participant using the relevant Rodin extension point&lt;br /&gt;
The client class must implement the method getExtensionID() to return the relevant Extension ID string that identifies such extensions.&lt;br /&gt;
The client class may override populateReferenceMap(Map&amp;lt;EReference,Boolean&amp;gt;) to add the EReference Features that need to be dealt with, defining which ones are back references to the corresponding abstract element (put true in map) and which ones should reference the corresponding element in the copy (put false in map).&lt;br /&gt;
The client class may also override populateFilterByTypeList(List&amp;lt;EClass&amp;gt;) to add the EClass of any types of element that should not be copied into the refinement.&lt;br /&gt;
&lt;br /&gt;
The generic refiner class works as follows:&lt;br /&gt;
* All serialised extensions of the given Extension ID in the Rodin resource are loaded&lt;br /&gt;
* Each one is deep cloned using the Ecore copier utility&lt;br /&gt;
* The contents of the clone extension are then searched for any elements of the EClasses in the client supplied list to be filtered. Such elements are deleted from the clone.&lt;br /&gt;
* The contents of the clone extension are then searched for elements that own one of the client supplied EReferences. &lt;br /&gt;
* For each reference, the reference is either set to reference the corresponding source abstract element or copied so that it corresponds to the abstract reference&lt;br /&gt;
&lt;br /&gt;
==Diagrams==&lt;br /&gt;
&lt;br /&gt;
==Generator==&lt;br /&gt;
&lt;br /&gt;
[THIS SECTION NEEDS REVIEW AND UPDATE - &lt;br /&gt;
Note: The generator is now based on a more generic EMF translator: https://github.com/eventB-Soton/EMF_Translator&lt;br /&gt;
It is adapted to Event-B : https://github.com/eventB-Soton/EventB_Translator_Support &lt;br /&gt;
There is a documentation plugin in the EMF translator source code that describes the necessary extension points and how to contribute a specific translation.]&lt;br /&gt;
&lt;br /&gt;
A framework to support the implementation of generators is provided. The framework is designed to support the generation of standard Event-B models from higher-level model extensions that are based on the Event-B EMF modelling extensions framework.&lt;br /&gt;
&lt;br /&gt;
The Generator framework provides:&lt;br /&gt;
&lt;br /&gt;
* A toolbar button to initiate the generation&lt;br /&gt;
* Generic code to remove previously generated elements&lt;br /&gt;
* Generic code to organise the incorporation of newly generated elements&lt;br /&gt;
* Utilities to aid the creation of new elements&lt;br /&gt;
* An abstract basis for client defined rules&lt;br /&gt;
* An extension point for clients to declare generators and generation rules&lt;br /&gt;
&lt;br /&gt;
The client rules return generation descriptors (rather than modifying the target model directly). The framework takes care of updating the model (within the clients Transactional Editing Domain) provided the generation completes successfully. This ensures that the model is not left in an inconsistent state should the generation fail. The generation descriptors allow the client to specify where the new element should be contained and a priority which will be used to influence the placement of the new element within the containment ordering.&lt;br /&gt;
&lt;br /&gt;
To define a particular generator a client should:&lt;br /&gt;
&lt;br /&gt;
* Define an extension of org.eclipse.ui.handlers to enable the generate command when the activePartID is their Editor (see [[Defining a generator handler]])&lt;br /&gt;
* Define an extension of ac.soton.eventb.emf.diagrams.generator.rule to make the generator framework aware of your generator and its rule classes.&lt;br /&gt;
* Implement your rule classes&lt;br /&gt;
&lt;br /&gt;
=== Generation Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Each rule should return a collection of one or more Generation Descriptors. Generation Descriptors have the following fields which are explained in this section.&lt;br /&gt;
&lt;br /&gt;
* EventBElement parent;&lt;br /&gt;
* EStructuralFeature feature;&lt;br /&gt;
* Object value;&lt;br /&gt;
* Integer priority;&lt;br /&gt;
* Boolean editable;&lt;br /&gt;
* Boolean remove;&lt;br /&gt;
&lt;br /&gt;
The feature of the parent will be changed in the following ways:&lt;br /&gt;
&lt;br /&gt;
If remove is false:&lt;br /&gt;
* 1) If the feature is a containment and the value is an element of the correct kind, the value will be added to the containment in a position according to the priority&lt;br /&gt;
* 2) If the feature is a reference and the value is an element of the correct kind, the value will be added to the reference in a position according to the priority&lt;br /&gt;
* 3) If the feature is an EAttribute and the value is of the correct type, the feature will be set to the value&lt;br /&gt;
  &lt;br /&gt;
Priority can be used to control the relative position of the generated elements  &lt;br /&gt;
* 1 - must come first&lt;br /&gt;
* 10 - not important&lt;br /&gt;
* ---user entered items---&lt;br /&gt;
* 0 must come after user entered items&lt;br /&gt;
* -10 must come last&lt;br /&gt;
  &lt;br /&gt;
Editable - this affects read-only status of the generated element and whether or not it will be preserved or re-generated in a subsequent generation.&lt;br /&gt;
* false - the element is set as read-only (the user cannot change its attributes nor add/remove children), any existing copy of the element will be deleted and re-generated at each re-generation&lt;br /&gt;
* true  - the element is not read-only and will not be deleted before re-generation. (N.B. It is the responsibility of the client rules to check whether this element already exists and only only generate a new one if it does not)&lt;br /&gt;
  &lt;br /&gt;
If remove is true:&lt;br /&gt;
* 1) If the feature is a containment and the value is an element of the correct kind, the value will be deleted from the containment&lt;br /&gt;
* 2) If the feature is a reference and the value is an element of the correct kind, the value will be removed from the reference&lt;br /&gt;
* 3) If the feature is an EAttribute, the feature will be unset &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementing Rule Classes ===&lt;br /&gt;
&lt;br /&gt;
Rule classes must implement IRule. It is recommended the rule classes extend ac.soton.eventb.emf.diagrams.generator#AbstractRule which provides some concise constants for the commonly needed containments and defines some default behaviour (always enabled and dependencies ok).  Note that the rule will only be attempted for the type of source element defined in the extension point. However, this could be defined as an abstract base class to allow the rule to operate on several types of element.&lt;br /&gt;
&lt;br /&gt;
A rule has 4 methods:&lt;br /&gt;
&lt;br /&gt;
* boolean enabled (final EventBElement sourceElement)&lt;br /&gt;
* boolean dependenciesOK(EventBElement sourceElement,List&amp;lt;GenerationDescriptor&amp;gt; generatedElements)&lt;br /&gt;
* boolean fireLate()&lt;br /&gt;
* List&amp;lt;GenerationDescriptor&amp;gt; fire(EventBElement sourceElement, List&amp;lt;GenerationDescriptor&amp;gt; generatedElements)&lt;br /&gt;
&lt;br /&gt;
The enabled method can be used to restrict when it applies. More than one rule can be defined for the same kind of element allowing the generation to be decomposed in a maintainable way. &lt;br /&gt;
&lt;br /&gt;
TheDependenciesOK method allows the method to be deferred since the success of rules may depend on what has already been generated. The dependenciesOK method is passed the list of GenerationDescriptors created so far.&lt;br /&gt;
&lt;br /&gt;
The fireLate method forces the rule to be fired when all other rules have been fired. This is usually used when the rules behaviour depends on what other rules have done.&lt;br /&gt;
&lt;br /&gt;
The fire method must return a list of GenerationDescriptors describing what should be generated. The Utility class, Make, provides a convenience method to help construct a GenerationDescriptor from the parent element, the containment feature, the new child and the priority indicator and if needed the editable setting.&lt;br /&gt;
&lt;br /&gt;
Priority may be from 10 to -10, where 1 indicates first in the containment and -10 last in the containment. Elements in the containment that are not (currently) being generated are placed between priorities 10 and 0. Bear in mind that the relative position of different diagrams (extensions)is preserved within each priority band. Also the order of source elements within their containment is preserved within each priority band.&lt;br /&gt;
&lt;br /&gt;
 1 2 3 4 5 6 7 8 9 10 &amp;lt;other content&amp;gt; 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10&lt;br /&gt;
&lt;br /&gt;
For example, a basic type invariant that doesn&#039;t depend on other variables might be placed at position 1 whereas a theorem or invariant included purely for proof purposes might be placed at position -10. &lt;br /&gt;
&lt;br /&gt;
A current limitation of the priority scheme is that there are a limited number of priorities. For example, this could be a problem if a rule needs to calculate positions of each element within a collection based on dependencies of the element instance.&lt;br /&gt;
&lt;br /&gt;
In most cases the generated element should be set as read-only (the default). In this case the element will be deleted and re-generated on each invocation of the generator. The should not change any attributes of the element nor add to its children. In some case, however, it is necessary to generate an element whose contents may be modified by the user. To do this set the editable parameter of the Generation Descriptor. In this case the generated element will not be deleted when the generator is next invoked. The rule must take care not to return another Generation Descriptor if the element has already been generated. It should look for a suitable generated element (to use for adding further generated chldren etc.) and only generate a new one if it doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
Where a tree structure is entirely generated within one rule firing (e.g. an event with guards and actions) it is more efficient to construct the entire event and return a single Generation Descriptor that adds that event. It is also possible to do this by returning separate Generation Descriptors to add the event and each guard and action individually.&lt;br /&gt;
&lt;br /&gt;
A typical line from a rule class might look like this:&lt;br /&gt;
 		ret.add(Make.descriptor(machine,invariants,Make.invariant(&amp;quot;myInvariantName&amp;quot;, &amp;quot;myVar &amp;gt;0&amp;quot;,&amp;quot;my comment&amp;quot;),10));&lt;br /&gt;
where, &lt;br /&gt;
ret is the list to be returned and machine is the parent element containing the invariants to be added to.&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Event-B_EMF_extensions&amp;diff=14348</id>
		<title>Generic Event-B EMF extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Event-B_EMF_extensions&amp;diff=14348"/>
		<updated>2020-05-30T08:05:52Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Contributing new EMF element types to the Navigator view */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Modelling==&lt;br /&gt;
&lt;br /&gt;
==Persistence==&lt;br /&gt;
&lt;br /&gt;
==Navigator==&lt;br /&gt;
&lt;br /&gt;
This section describes how to extend the Event-B Navigator to support Event-B EMF extensions.&lt;br /&gt;
&lt;br /&gt;
===Contributing new EMF element types to the Navigator view===&lt;br /&gt;
&lt;br /&gt;
If the EMF element types are contained in a new file type, declare the new file extension using the extension point:&lt;br /&gt;
&lt;br /&gt;
 ac.soton.eventb.emf.core.extension.navigator.emfFileExtensions&lt;br /&gt;
&lt;br /&gt;
This tells the extensions plugin to adapt the emf contents of those files to be shown in the Navigator.&lt;br /&gt;
&lt;br /&gt;
To ensure the EMF elements are labeled and imaged correctly in the Navigator, declare the adapter factory using the extension point:&lt;br /&gt;
&lt;br /&gt;
 ac.soton.eventb.emf.core.extension.navigator.adapterFactories&lt;br /&gt;
&lt;br /&gt;
(Note - use the adapter factory generated by the EMF genmodel in the edit plugin).&lt;br /&gt;
&lt;br /&gt;
==Refinement==&lt;br /&gt;
&lt;br /&gt;
[THIS SECTION NEEDS REVIEW AND UPDATE]&lt;br /&gt;
&lt;br /&gt;
The Rodin platform provides an extension point for contributing behaviour to the &#039;Refine&#039; action.&lt;br /&gt;
For Serialised Event-B EMF extensions, an abstract, reflective refinement contributor class is provided to simplify the task of making a refinement.&lt;br /&gt;
&lt;br /&gt;
The class is:&lt;br /&gt;
  ac.soton.eventb.emf.core.extension.navigator.refiner$AbstractExtensionRefiner which implements IRefinementParticipant.&lt;br /&gt;
&lt;br /&gt;
The class should be extended by a client plug-in and the client&#039;s class should be registered as a Refinement Participant using the relevant Rodin extension point&lt;br /&gt;
The client class must implement the method getExtensionID() to return the relevant Extension ID string that identifies such extensions.&lt;br /&gt;
The client class may override populateReferenceMap(Map&amp;lt;EReference,Boolean&amp;gt;) to add the EReference Features that need to be dealt with, defining which ones are back references to the corresponding abstract element (put true in map) and which ones should reference the corresponding element in the copy (put false in map).&lt;br /&gt;
The client class may also override populateFilterByTypeList(List&amp;lt;EClass&amp;gt;) to add the EClass of any types of element that should not be copied into the refinement.&lt;br /&gt;
&lt;br /&gt;
The generic refiner class works as follows:&lt;br /&gt;
* All serialised extensions of the given Extension ID in the Rodin resource are loaded&lt;br /&gt;
* Each one is deep cloned using the Ecore copier utility&lt;br /&gt;
* The contents of the clone extension are then searched for any elements of the EClasses in the client supplied list to be filtered. Such elements are deleted from the clone.&lt;br /&gt;
* The contents of the clone extension are then searched for elements that own one of the client supplied EReferences. &lt;br /&gt;
* For each reference, the reference is either set to reference the corresponding source abstract element or copied so that it corresponds to the abstract reference&lt;br /&gt;
&lt;br /&gt;
==Diagrams==&lt;br /&gt;
&lt;br /&gt;
==Generator==&lt;br /&gt;
&lt;br /&gt;
[THIS SECTION NEEDS REVIEW AND UPDATE - &lt;br /&gt;
Note: The generator is now based on a more generic EMF translator: https://github.com/eventB-Soton/EMF_Translator&lt;br /&gt;
It is adapted to Event-B : https://github.com/eventB-Soton/EventB_Translator_Support &lt;br /&gt;
There is a documentation plugin in the EMF translator source code that describes the necessary extension points and how to contribute a specific translation.]&lt;br /&gt;
&lt;br /&gt;
A framework to support the implementation of generators is provided. The framework is designed to support the generation of standard Event-B models from higher-level model extensions that are based on the Event-B EMF modelling extensions framework.&lt;br /&gt;
&lt;br /&gt;
The Generator framework provides:&lt;br /&gt;
&lt;br /&gt;
* A toolbar button to initiate the generation&lt;br /&gt;
* Generic code to remove previously generated elements&lt;br /&gt;
* Generic code to organise the incorporation of newly generated elements&lt;br /&gt;
* Utilities to aid the creation of new elements&lt;br /&gt;
* An abstract basis for client defined rules&lt;br /&gt;
* An extension point for clients to declare generators and generation rules&lt;br /&gt;
&lt;br /&gt;
The client rules return generation descriptors (rather than modifying the target model directly). The framework takes care of updating the model (within the clients Transactional Editing Domain) provided the generation completes successfully. This ensures that the model is not left in an inconsistent state should the generation fail. The generation descriptors allow the client to specify where the new element should be contained and a priority which will be used to influence the placement of the new element within the containment ordering.&lt;br /&gt;
&lt;br /&gt;
To define a particular generator a client should:&lt;br /&gt;
&lt;br /&gt;
* Define an extension of org.eclipse.ui.handlers to enable the generate command when the activePartID is their Editor (see [[Defining a generator handler]])&lt;br /&gt;
* Define an extension of ac.soton.eventb.emf.diagrams.generator.rule to make the generator framework aware of your generator and its rule classes.&lt;br /&gt;
* Implement your rule classes&lt;br /&gt;
&lt;br /&gt;
=== Generation Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Each rule should return a collection of one or more Generation Descriptors. Generation Descriptors have the following fields which are explained in this section.&lt;br /&gt;
&lt;br /&gt;
* EventBElement parent;&lt;br /&gt;
* EStructuralFeature feature;&lt;br /&gt;
* Object value;&lt;br /&gt;
* Integer priority;&lt;br /&gt;
* Boolean editable;&lt;br /&gt;
* Boolean remove;&lt;br /&gt;
&lt;br /&gt;
The feature of the parent will be changed in the following ways:&lt;br /&gt;
&lt;br /&gt;
If remove is false:&lt;br /&gt;
* 1) If the feature is a containment and the value is an element of the correct kind, the value will be added to the containment in a position according to the priority&lt;br /&gt;
* 2) If the feature is a reference and the value is an element of the correct kind, the value will be added to the reference in a position according to the priority&lt;br /&gt;
* 3) If the feature is an EAttribute and the value is of the correct type, the feature will be set to the value&lt;br /&gt;
  &lt;br /&gt;
Priority can be used to control the relative position of the generated elements  &lt;br /&gt;
* 1 - must come first&lt;br /&gt;
* 10 - not important&lt;br /&gt;
* ---user entered items---&lt;br /&gt;
* 0 must come after user entered items&lt;br /&gt;
* -10 must come last&lt;br /&gt;
  &lt;br /&gt;
Editable - this affects read-only status of the generated element and whether or not it will be preserved or re-generated in a subsequent generation.&lt;br /&gt;
* false - the element is set as read-only (the user cannot change its attributes nor add/remove children), any existing copy of the element will be deleted and re-generated at each re-generation&lt;br /&gt;
* true  - the element is not read-only and will not be deleted before re-generation. (N.B. It is the responsibility of the client rules to check whether this element already exists and only only generate a new one if it does not)&lt;br /&gt;
  &lt;br /&gt;
If remove is true:&lt;br /&gt;
* 1) If the feature is a containment and the value is an element of the correct kind, the value will be deleted from the containment&lt;br /&gt;
* 2) If the feature is a reference and the value is an element of the correct kind, the value will be removed from the reference&lt;br /&gt;
* 3) If the feature is an EAttribute, the feature will be unset &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementing Rule Classes ===&lt;br /&gt;
&lt;br /&gt;
Rule classes must implement IRule. It is recommended the rule classes extend ac.soton.eventb.emf.diagrams.generator#AbstractRule which provides some concise constants for the commonly needed containments and defines some default behaviour (always enabled and dependencies ok).  Note that the rule will only be attempted for the type of source element defined in the extension point. However, this could be defined as an abstract base class to allow the rule to operate on several types of element.&lt;br /&gt;
&lt;br /&gt;
A rule has 4 methods:&lt;br /&gt;
&lt;br /&gt;
* boolean enabled (final EventBElement sourceElement)&lt;br /&gt;
* boolean dependenciesOK(EventBElement sourceElement,List&amp;lt;GenerationDescriptor&amp;gt; generatedElements)&lt;br /&gt;
* boolean fireLate()&lt;br /&gt;
* List&amp;lt;GenerationDescriptor&amp;gt; fire(EventBElement sourceElement, List&amp;lt;GenerationDescriptor&amp;gt; generatedElements)&lt;br /&gt;
&lt;br /&gt;
The enabled method can be used to restrict when it applies. More than one rule can be defined for the same kind of element allowing the generation to be decomposed in a maintainable way. &lt;br /&gt;
&lt;br /&gt;
TheDependenciesOK method allows the method to be deferred since the success of rules may depend on what has already been generated. The dependenciesOK method is passed the list of GenerationDescriptors created so far.&lt;br /&gt;
&lt;br /&gt;
The fireLate method forces the rule to be fired when all other rules have been fired. This is usually used when the rules behaviour depends on what other rules have done.&lt;br /&gt;
&lt;br /&gt;
The fire method must return a list of GenerationDescriptors describing what should be generated. The Utility class, Make, provides a convenience method to help construct a GenerationDescriptor from the parent element, the containment feature, the new child and the priority indicator and if needed the editable setting.&lt;br /&gt;
&lt;br /&gt;
Priority may be from 10 to -10, where 1 indicates first in the containment and -10 last in the containment. Elements in the containment that are not (currently) being generated are placed between priorities 10 and 0. Bear in mind that the relative position of different diagrams (extensions)is preserved within each priority band. Also the order of source elements within their containment is preserved within each priority band.&lt;br /&gt;
&lt;br /&gt;
 1 2 3 4 5 6 7 8 9 10 &amp;lt;other content&amp;gt; 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10&lt;br /&gt;
&lt;br /&gt;
For example, a basic type invariant that doesn&#039;t depend on other variables might be placed at position 1 whereas a theorem or invariant included purely for proof purposes might be placed at position -10. &lt;br /&gt;
&lt;br /&gt;
A current limitation of the priority scheme is that there are a limited number of priorities. For example, this could be a problem if a rule needs to calculate positions of each element within a collection based on dependencies of the element instance.&lt;br /&gt;
&lt;br /&gt;
In most cases the generated element should be set as read-only (the default). In this case the element will be deleted and re-generated on each invocation of the generator. The should not change any attributes of the element nor add to its children. In some case, however, it is necessary to generate an element whose contents may be modified by the user. To do this set the editable parameter of the Generation Descriptor. In this case the generated element will not be deleted when the generator is next invoked. The rule must take care not to return another Generation Descriptor if the element has already been generated. It should look for a suitable generated element (to use for adding further generated chldren etc.) and only generate a new one if it doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
Where a tree structure is entirely generated within one rule firing (e.g. an event with guards and actions) it is more efficient to construct the entire event and return a single Generation Descriptor that adds that event. It is also possible to do this by returning separate Generation Descriptors to add the event and each guard and action individually.&lt;br /&gt;
&lt;br /&gt;
A typical line from a rule class might look like this:&lt;br /&gt;
 		ret.add(Make.descriptor(machine,invariants,Make.invariant(&amp;quot;myInvariantName&amp;quot;, &amp;quot;myVar &amp;gt;0&amp;quot;,&amp;quot;my comment&amp;quot;),10));&lt;br /&gt;
where, &lt;br /&gt;
ret is the list to be returned and machine is the parent element containing the invariants to be added to.&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Event-B_EMF_extensions&amp;diff=14347</id>
		<title>Generic Event-B EMF extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Event-B_EMF_extensions&amp;diff=14347"/>
		<updated>2020-05-30T07:58:55Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Navigator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Modelling==&lt;br /&gt;
&lt;br /&gt;
==Persistence==&lt;br /&gt;
&lt;br /&gt;
==Navigator==&lt;br /&gt;
&lt;br /&gt;
This section describes how to extend the Event-B Navigator to support Event-B EMF extensions.&lt;br /&gt;
&lt;br /&gt;
===Contributing new EMF element types to the Navigator view===&lt;br /&gt;
&lt;br /&gt;
If the EMF element types are contained in a new file type, declare the new file extension using the extension point:&lt;br /&gt;
&lt;br /&gt;
 ac.soton.eventb.emf.core.extension.navigator.emfFileExtensions&lt;br /&gt;
&lt;br /&gt;
To ensure the EMF elements are shown correctly in the Navigator, declare the adapter factory using the extension point:&lt;br /&gt;
&lt;br /&gt;
 ac.soton.eventb.emf.core.extension.navigator.adapterFactories&lt;br /&gt;
&lt;br /&gt;
(Note - the adapter factory is the one generated by the EMF genmodel in the edit plugin).&lt;br /&gt;
&lt;br /&gt;
==Refinement==&lt;br /&gt;
&lt;br /&gt;
[THIS SECTION NEEDS REVIEW AND UPDATE]&lt;br /&gt;
&lt;br /&gt;
The Rodin platform provides an extension point for contributing behaviour to the &#039;Refine&#039; action.&lt;br /&gt;
For Serialised Event-B EMF extensions, an abstract, reflective refinement contributor class is provided to simplify the task of making a refinement.&lt;br /&gt;
&lt;br /&gt;
The class is:&lt;br /&gt;
  ac.soton.eventb.emf.core.extension.navigator.refiner$AbstractExtensionRefiner which implements IRefinementParticipant.&lt;br /&gt;
&lt;br /&gt;
The class should be extended by a client plug-in and the client&#039;s class should be registered as a Refinement Participant using the relevant Rodin extension point&lt;br /&gt;
The client class must implement the method getExtensionID() to return the relevant Extension ID string that identifies such extensions.&lt;br /&gt;
The client class may override populateReferenceMap(Map&amp;lt;EReference,Boolean&amp;gt;) to add the EReference Features that need to be dealt with, defining which ones are back references to the corresponding abstract element (put true in map) and which ones should reference the corresponding element in the copy (put false in map).&lt;br /&gt;
The client class may also override populateFilterByTypeList(List&amp;lt;EClass&amp;gt;) to add the EClass of any types of element that should not be copied into the refinement.&lt;br /&gt;
&lt;br /&gt;
The generic refiner class works as follows:&lt;br /&gt;
* All serialised extensions of the given Extension ID in the Rodin resource are loaded&lt;br /&gt;
* Each one is deep cloned using the Ecore copier utility&lt;br /&gt;
* The contents of the clone extension are then searched for any elements of the EClasses in the client supplied list to be filtered. Such elements are deleted from the clone.&lt;br /&gt;
* The contents of the clone extension are then searched for elements that own one of the client supplied EReferences. &lt;br /&gt;
* For each reference, the reference is either set to reference the corresponding source abstract element or copied so that it corresponds to the abstract reference&lt;br /&gt;
&lt;br /&gt;
==Diagrams==&lt;br /&gt;
&lt;br /&gt;
==Generator==&lt;br /&gt;
&lt;br /&gt;
[THIS SECTION NEEDS REVIEW AND UPDATE - &lt;br /&gt;
Note: The generator is now based on a more generic EMF translator: https://github.com/eventB-Soton/EMF_Translator&lt;br /&gt;
It is adapted to Event-B : https://github.com/eventB-Soton/EventB_Translator_Support &lt;br /&gt;
There is a documentation plugin in the EMF translator source code that describes the necessary extension points and how to contribute a specific translation.]&lt;br /&gt;
&lt;br /&gt;
A framework to support the implementation of generators is provided. The framework is designed to support the generation of standard Event-B models from higher-level model extensions that are based on the Event-B EMF modelling extensions framework.&lt;br /&gt;
&lt;br /&gt;
The Generator framework provides:&lt;br /&gt;
&lt;br /&gt;
* A toolbar button to initiate the generation&lt;br /&gt;
* Generic code to remove previously generated elements&lt;br /&gt;
* Generic code to organise the incorporation of newly generated elements&lt;br /&gt;
* Utilities to aid the creation of new elements&lt;br /&gt;
* An abstract basis for client defined rules&lt;br /&gt;
* An extension point for clients to declare generators and generation rules&lt;br /&gt;
&lt;br /&gt;
The client rules return generation descriptors (rather than modifying the target model directly). The framework takes care of updating the model (within the clients Transactional Editing Domain) provided the generation completes successfully. This ensures that the model is not left in an inconsistent state should the generation fail. The generation descriptors allow the client to specify where the new element should be contained and a priority which will be used to influence the placement of the new element within the containment ordering.&lt;br /&gt;
&lt;br /&gt;
To define a particular generator a client should:&lt;br /&gt;
&lt;br /&gt;
* Define an extension of org.eclipse.ui.handlers to enable the generate command when the activePartID is their Editor (see [[Defining a generator handler]])&lt;br /&gt;
* Define an extension of ac.soton.eventb.emf.diagrams.generator.rule to make the generator framework aware of your generator and its rule classes.&lt;br /&gt;
* Implement your rule classes&lt;br /&gt;
&lt;br /&gt;
=== Generation Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Each rule should return a collection of one or more Generation Descriptors. Generation Descriptors have the following fields which are explained in this section.&lt;br /&gt;
&lt;br /&gt;
* EventBElement parent;&lt;br /&gt;
* EStructuralFeature feature;&lt;br /&gt;
* Object value;&lt;br /&gt;
* Integer priority;&lt;br /&gt;
* Boolean editable;&lt;br /&gt;
* Boolean remove;&lt;br /&gt;
&lt;br /&gt;
The feature of the parent will be changed in the following ways:&lt;br /&gt;
&lt;br /&gt;
If remove is false:&lt;br /&gt;
* 1) If the feature is a containment and the value is an element of the correct kind, the value will be added to the containment in a position according to the priority&lt;br /&gt;
* 2) If the feature is a reference and the value is an element of the correct kind, the value will be added to the reference in a position according to the priority&lt;br /&gt;
* 3) If the feature is an EAttribute and the value is of the correct type, the feature will be set to the value&lt;br /&gt;
  &lt;br /&gt;
Priority can be used to control the relative position of the generated elements  &lt;br /&gt;
* 1 - must come first&lt;br /&gt;
* 10 - not important&lt;br /&gt;
* ---user entered items---&lt;br /&gt;
* 0 must come after user entered items&lt;br /&gt;
* -10 must come last&lt;br /&gt;
  &lt;br /&gt;
Editable - this affects read-only status of the generated element and whether or not it will be preserved or re-generated in a subsequent generation.&lt;br /&gt;
* false - the element is set as read-only (the user cannot change its attributes nor add/remove children), any existing copy of the element will be deleted and re-generated at each re-generation&lt;br /&gt;
* true  - the element is not read-only and will not be deleted before re-generation. (N.B. It is the responsibility of the client rules to check whether this element already exists and only only generate a new one if it does not)&lt;br /&gt;
  &lt;br /&gt;
If remove is true:&lt;br /&gt;
* 1) If the feature is a containment and the value is an element of the correct kind, the value will be deleted from the containment&lt;br /&gt;
* 2) If the feature is a reference and the value is an element of the correct kind, the value will be removed from the reference&lt;br /&gt;
* 3) If the feature is an EAttribute, the feature will be unset &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementing Rule Classes ===&lt;br /&gt;
&lt;br /&gt;
Rule classes must implement IRule. It is recommended the rule classes extend ac.soton.eventb.emf.diagrams.generator#AbstractRule which provides some concise constants for the commonly needed containments and defines some default behaviour (always enabled and dependencies ok).  Note that the rule will only be attempted for the type of source element defined in the extension point. However, this could be defined as an abstract base class to allow the rule to operate on several types of element.&lt;br /&gt;
&lt;br /&gt;
A rule has 4 methods:&lt;br /&gt;
&lt;br /&gt;
* boolean enabled (final EventBElement sourceElement)&lt;br /&gt;
* boolean dependenciesOK(EventBElement sourceElement,List&amp;lt;GenerationDescriptor&amp;gt; generatedElements)&lt;br /&gt;
* boolean fireLate()&lt;br /&gt;
* List&amp;lt;GenerationDescriptor&amp;gt; fire(EventBElement sourceElement, List&amp;lt;GenerationDescriptor&amp;gt; generatedElements)&lt;br /&gt;
&lt;br /&gt;
The enabled method can be used to restrict when it applies. More than one rule can be defined for the same kind of element allowing the generation to be decomposed in a maintainable way. &lt;br /&gt;
&lt;br /&gt;
TheDependenciesOK method allows the method to be deferred since the success of rules may depend on what has already been generated. The dependenciesOK method is passed the list of GenerationDescriptors created so far.&lt;br /&gt;
&lt;br /&gt;
The fireLate method forces the rule to be fired when all other rules have been fired. This is usually used when the rules behaviour depends on what other rules have done.&lt;br /&gt;
&lt;br /&gt;
The fire method must return a list of GenerationDescriptors describing what should be generated. The Utility class, Make, provides a convenience method to help construct a GenerationDescriptor from the parent element, the containment feature, the new child and the priority indicator and if needed the editable setting.&lt;br /&gt;
&lt;br /&gt;
Priority may be from 10 to -10, where 1 indicates first in the containment and -10 last in the containment. Elements in the containment that are not (currently) being generated are placed between priorities 10 and 0. Bear in mind that the relative position of different diagrams (extensions)is preserved within each priority band. Also the order of source elements within their containment is preserved within each priority band.&lt;br /&gt;
&lt;br /&gt;
 1 2 3 4 5 6 7 8 9 10 &amp;lt;other content&amp;gt; 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10&lt;br /&gt;
&lt;br /&gt;
For example, a basic type invariant that doesn&#039;t depend on other variables might be placed at position 1 whereas a theorem or invariant included purely for proof purposes might be placed at position -10. &lt;br /&gt;
&lt;br /&gt;
A current limitation of the priority scheme is that there are a limited number of priorities. For example, this could be a problem if a rule needs to calculate positions of each element within a collection based on dependencies of the element instance.&lt;br /&gt;
&lt;br /&gt;
In most cases the generated element should be set as read-only (the default). In this case the element will be deleted and re-generated on each invocation of the generator. The should not change any attributes of the element nor add to its children. In some case, however, it is necessary to generate an element whose contents may be modified by the user. To do this set the editable parameter of the Generation Descriptor. In this case the generated element will not be deleted when the generator is next invoked. The rule must take care not to return another Generation Descriptor if the element has already been generated. It should look for a suitable generated element (to use for adding further generated chldren etc.) and only generate a new one if it doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
Where a tree structure is entirely generated within one rule firing (e.g. an event with guards and actions) it is more efficient to construct the entire event and return a single Generation Descriptor that adds that event. It is also possible to do this by returning separate Generation Descriptors to add the event and each guard and action individually.&lt;br /&gt;
&lt;br /&gt;
A typical line from a rule class might look like this:&lt;br /&gt;
 		ret.add(Make.descriptor(machine,invariants,Make.invariant(&amp;quot;myInvariantName&amp;quot;, &amp;quot;myVar &amp;gt;0&amp;quot;,&amp;quot;my comment&amp;quot;),10));&lt;br /&gt;
where, &lt;br /&gt;
ret is the list to be returned and machine is the parent element containing the invariants to be added to.&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Event-B_EMF_extensions&amp;diff=14346</id>
		<title>Generic Event-B EMF extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Event-B_EMF_extensions&amp;diff=14346"/>
		<updated>2020-05-30T06:54:10Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Generator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Modelling==&lt;br /&gt;
&lt;br /&gt;
==Persistence==&lt;br /&gt;
&lt;br /&gt;
==Navigator==&lt;br /&gt;
&lt;br /&gt;
==Refinement==&lt;br /&gt;
&lt;br /&gt;
[THIS SECTION NEEDS REVIEW AND UPDATE]&lt;br /&gt;
&lt;br /&gt;
The Rodin platform provides an extension point for contributing behaviour to the &#039;Refine&#039; action.&lt;br /&gt;
For Serialised Event-B EMF extensions, an abstract, reflective refinement contributor class is provided to simplify the task of making a refinement.&lt;br /&gt;
&lt;br /&gt;
The class is:&lt;br /&gt;
  ac.soton.eventb.emf.core.extension.navigator.refiner$AbstractExtensionRefiner which implements IRefinementParticipant.&lt;br /&gt;
&lt;br /&gt;
The class should be extended by a client plug-in and the client&#039;s class should be registered as a Refinement Participant using the relevant Rodin extension point&lt;br /&gt;
The client class must implement the method getExtensionID() to return the relevant Extension ID string that identifies such extensions.&lt;br /&gt;
The client class may override populateReferenceMap(Map&amp;lt;EReference,Boolean&amp;gt;) to add the EReference Features that need to be dealt with, defining which ones are back references to the corresponding abstract element (put true in map) and which ones should reference the corresponding element in the copy (put false in map).&lt;br /&gt;
The client class may also override populateFilterByTypeList(List&amp;lt;EClass&amp;gt;) to add the EClass of any types of element that should not be copied into the refinement.&lt;br /&gt;
&lt;br /&gt;
The generic refiner class works as follows:&lt;br /&gt;
* All serialised extensions of the given Extension ID in the Rodin resource are loaded&lt;br /&gt;
* Each one is deep cloned using the Ecore copier utility&lt;br /&gt;
* The contents of the clone extension are then searched for any elements of the EClasses in the client supplied list to be filtered. Such elements are deleted from the clone.&lt;br /&gt;
* The contents of the clone extension are then searched for elements that own one of the client supplied EReferences. &lt;br /&gt;
* For each reference, the reference is either set to reference the corresponding source abstract element or copied so that it corresponds to the abstract reference&lt;br /&gt;
&lt;br /&gt;
==Diagrams==&lt;br /&gt;
&lt;br /&gt;
==Generator==&lt;br /&gt;
&lt;br /&gt;
[THIS SECTION NEEDS REVIEW AND UPDATE - &lt;br /&gt;
Note: The generator is now based on a more generic EMF translator: https://github.com/eventB-Soton/EMF_Translator&lt;br /&gt;
It is adapted to Event-B : https://github.com/eventB-Soton/EventB_Translator_Support &lt;br /&gt;
There is a documentation plugin in the EMF translator source code that describes the necessary extension points and how to contribute a specific translation.]&lt;br /&gt;
&lt;br /&gt;
A framework to support the implementation of generators is provided. The framework is designed to support the generation of standard Event-B models from higher-level model extensions that are based on the Event-B EMF modelling extensions framework.&lt;br /&gt;
&lt;br /&gt;
The Generator framework provides:&lt;br /&gt;
&lt;br /&gt;
* A toolbar button to initiate the generation&lt;br /&gt;
* Generic code to remove previously generated elements&lt;br /&gt;
* Generic code to organise the incorporation of newly generated elements&lt;br /&gt;
* Utilities to aid the creation of new elements&lt;br /&gt;
* An abstract basis for client defined rules&lt;br /&gt;
* An extension point for clients to declare generators and generation rules&lt;br /&gt;
&lt;br /&gt;
The client rules return generation descriptors (rather than modifying the target model directly). The framework takes care of updating the model (within the clients Transactional Editing Domain) provided the generation completes successfully. This ensures that the model is not left in an inconsistent state should the generation fail. The generation descriptors allow the client to specify where the new element should be contained and a priority which will be used to influence the placement of the new element within the containment ordering.&lt;br /&gt;
&lt;br /&gt;
To define a particular generator a client should:&lt;br /&gt;
&lt;br /&gt;
* Define an extension of org.eclipse.ui.handlers to enable the generate command when the activePartID is their Editor (see [[Defining a generator handler]])&lt;br /&gt;
* Define an extension of ac.soton.eventb.emf.diagrams.generator.rule to make the generator framework aware of your generator and its rule classes.&lt;br /&gt;
* Implement your rule classes&lt;br /&gt;
&lt;br /&gt;
=== Generation Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Each rule should return a collection of one or more Generation Descriptors. Generation Descriptors have the following fields which are explained in this section.&lt;br /&gt;
&lt;br /&gt;
* EventBElement parent;&lt;br /&gt;
* EStructuralFeature feature;&lt;br /&gt;
* Object value;&lt;br /&gt;
* Integer priority;&lt;br /&gt;
* Boolean editable;&lt;br /&gt;
* Boolean remove;&lt;br /&gt;
&lt;br /&gt;
The feature of the parent will be changed in the following ways:&lt;br /&gt;
&lt;br /&gt;
If remove is false:&lt;br /&gt;
* 1) If the feature is a containment and the value is an element of the correct kind, the value will be added to the containment in a position according to the priority&lt;br /&gt;
* 2) If the feature is a reference and the value is an element of the correct kind, the value will be added to the reference in a position according to the priority&lt;br /&gt;
* 3) If the feature is an EAttribute and the value is of the correct type, the feature will be set to the value&lt;br /&gt;
  &lt;br /&gt;
Priority can be used to control the relative position of the generated elements  &lt;br /&gt;
* 1 - must come first&lt;br /&gt;
* 10 - not important&lt;br /&gt;
* ---user entered items---&lt;br /&gt;
* 0 must come after user entered items&lt;br /&gt;
* -10 must come last&lt;br /&gt;
  &lt;br /&gt;
Editable - this affects read-only status of the generated element and whether or not it will be preserved or re-generated in a subsequent generation.&lt;br /&gt;
* false - the element is set as read-only (the user cannot change its attributes nor add/remove children), any existing copy of the element will be deleted and re-generated at each re-generation&lt;br /&gt;
* true  - the element is not read-only and will not be deleted before re-generation. (N.B. It is the responsibility of the client rules to check whether this element already exists and only only generate a new one if it does not)&lt;br /&gt;
  &lt;br /&gt;
If remove is true:&lt;br /&gt;
* 1) If the feature is a containment and the value is an element of the correct kind, the value will be deleted from the containment&lt;br /&gt;
* 2) If the feature is a reference and the value is an element of the correct kind, the value will be removed from the reference&lt;br /&gt;
* 3) If the feature is an EAttribute, the feature will be unset &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementing Rule Classes ===&lt;br /&gt;
&lt;br /&gt;
Rule classes must implement IRule. It is recommended the rule classes extend ac.soton.eventb.emf.diagrams.generator#AbstractRule which provides some concise constants for the commonly needed containments and defines some default behaviour (always enabled and dependencies ok).  Note that the rule will only be attempted for the type of source element defined in the extension point. However, this could be defined as an abstract base class to allow the rule to operate on several types of element.&lt;br /&gt;
&lt;br /&gt;
A rule has 4 methods:&lt;br /&gt;
&lt;br /&gt;
* boolean enabled (final EventBElement sourceElement)&lt;br /&gt;
* boolean dependenciesOK(EventBElement sourceElement,List&amp;lt;GenerationDescriptor&amp;gt; generatedElements)&lt;br /&gt;
* boolean fireLate()&lt;br /&gt;
* List&amp;lt;GenerationDescriptor&amp;gt; fire(EventBElement sourceElement, List&amp;lt;GenerationDescriptor&amp;gt; generatedElements)&lt;br /&gt;
&lt;br /&gt;
The enabled method can be used to restrict when it applies. More than one rule can be defined for the same kind of element allowing the generation to be decomposed in a maintainable way. &lt;br /&gt;
&lt;br /&gt;
TheDependenciesOK method allows the method to be deferred since the success of rules may depend on what has already been generated. The dependenciesOK method is passed the list of GenerationDescriptors created so far.&lt;br /&gt;
&lt;br /&gt;
The fireLate method forces the rule to be fired when all other rules have been fired. This is usually used when the rules behaviour depends on what other rules have done.&lt;br /&gt;
&lt;br /&gt;
The fire method must return a list of GenerationDescriptors describing what should be generated. The Utility class, Make, provides a convenience method to help construct a GenerationDescriptor from the parent element, the containment feature, the new child and the priority indicator and if needed the editable setting.&lt;br /&gt;
&lt;br /&gt;
Priority may be from 10 to -10, where 1 indicates first in the containment and -10 last in the containment. Elements in the containment that are not (currently) being generated are placed between priorities 10 and 0. Bear in mind that the relative position of different diagrams (extensions)is preserved within each priority band. Also the order of source elements within their containment is preserved within each priority band.&lt;br /&gt;
&lt;br /&gt;
 1 2 3 4 5 6 7 8 9 10 &amp;lt;other content&amp;gt; 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10&lt;br /&gt;
&lt;br /&gt;
For example, a basic type invariant that doesn&#039;t depend on other variables might be placed at position 1 whereas a theorem or invariant included purely for proof purposes might be placed at position -10. &lt;br /&gt;
&lt;br /&gt;
A current limitation of the priority scheme is that there are a limited number of priorities. For example, this could be a problem if a rule needs to calculate positions of each element within a collection based on dependencies of the element instance.&lt;br /&gt;
&lt;br /&gt;
In most cases the generated element should be set as read-only (the default). In this case the element will be deleted and re-generated on each invocation of the generator. The should not change any attributes of the element nor add to its children. In some case, however, it is necessary to generate an element whose contents may be modified by the user. To do this set the editable parameter of the Generation Descriptor. In this case the generated element will not be deleted when the generator is next invoked. The rule must take care not to return another Generation Descriptor if the element has already been generated. It should look for a suitable generated element (to use for adding further generated chldren etc.) and only generate a new one if it doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
Where a tree structure is entirely generated within one rule firing (e.g. an event with guards and actions) it is more efficient to construct the entire event and return a single Generation Descriptor that adds that event. It is also possible to do this by returning separate Generation Descriptors to add the event and each guard and action individually.&lt;br /&gt;
&lt;br /&gt;
A typical line from a rule class might look like this:&lt;br /&gt;
 		ret.add(Make.descriptor(machine,invariants,Make.invariant(&amp;quot;myInvariantName&amp;quot;, &amp;quot;myVar &amp;gt;0&amp;quot;,&amp;quot;my comment&amp;quot;),10));&lt;br /&gt;
where, &lt;br /&gt;
ret is the list to be returned and machine is the parent element containing the invariants to be added to.&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Generic_Event-B_EMF_extensions&amp;diff=14345</id>
		<title>Generic Event-B EMF extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Generic_Event-B_EMF_extensions&amp;diff=14345"/>
		<updated>2020-05-30T06:48:05Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Refinement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Modelling==&lt;br /&gt;
&lt;br /&gt;
==Persistence==&lt;br /&gt;
&lt;br /&gt;
==Navigator==&lt;br /&gt;
&lt;br /&gt;
==Refinement==&lt;br /&gt;
&lt;br /&gt;
[THIS SECTION NEEDS REVIEW AND UPDATE]&lt;br /&gt;
&lt;br /&gt;
The Rodin platform provides an extension point for contributing behaviour to the &#039;Refine&#039; action.&lt;br /&gt;
For Serialised Event-B EMF extensions, an abstract, reflective refinement contributor class is provided to simplify the task of making a refinement.&lt;br /&gt;
&lt;br /&gt;
The class is:&lt;br /&gt;
  ac.soton.eventb.emf.core.extension.navigator.refiner$AbstractExtensionRefiner which implements IRefinementParticipant.&lt;br /&gt;
&lt;br /&gt;
The class should be extended by a client plug-in and the client&#039;s class should be registered as a Refinement Participant using the relevant Rodin extension point&lt;br /&gt;
The client class must implement the method getExtensionID() to return the relevant Extension ID string that identifies such extensions.&lt;br /&gt;
The client class may override populateReferenceMap(Map&amp;lt;EReference,Boolean&amp;gt;) to add the EReference Features that need to be dealt with, defining which ones are back references to the corresponding abstract element (put true in map) and which ones should reference the corresponding element in the copy (put false in map).&lt;br /&gt;
The client class may also override populateFilterByTypeList(List&amp;lt;EClass&amp;gt;) to add the EClass of any types of element that should not be copied into the refinement.&lt;br /&gt;
&lt;br /&gt;
The generic refiner class works as follows:&lt;br /&gt;
* All serialised extensions of the given Extension ID in the Rodin resource are loaded&lt;br /&gt;
* Each one is deep cloned using the Ecore copier utility&lt;br /&gt;
* The contents of the clone extension are then searched for any elements of the EClasses in the client supplied list to be filtered. Such elements are deleted from the clone.&lt;br /&gt;
* The contents of the clone extension are then searched for elements that own one of the client supplied EReferences. &lt;br /&gt;
* For each reference, the reference is either set to reference the corresponding source abstract element or copied so that it corresponds to the abstract reference&lt;br /&gt;
&lt;br /&gt;
==Diagrams==&lt;br /&gt;
&lt;br /&gt;
==Generator==&lt;br /&gt;
&lt;br /&gt;
A framework to support the implementation of generators is provided. The framework is designed to support the generation of standard Event-B models from higher-level model extensions that are based on the Event-B EMF modelling extensions framework.&lt;br /&gt;
&lt;br /&gt;
The Generator framework provides:&lt;br /&gt;
&lt;br /&gt;
* A toolbar button to initiate the generation&lt;br /&gt;
* Generic code to remove previously generated elements&lt;br /&gt;
* Generic code to organise the incorporation of newly generated elements&lt;br /&gt;
* Utilities to aid the creation of new elements&lt;br /&gt;
* An abstract basis for client defined rules&lt;br /&gt;
* An extension point for clients to declare generators and generation rules&lt;br /&gt;
&lt;br /&gt;
The client rules return generation descriptors (rather than modifying the target model directly). The framework takes care of updating the model (within the clients Transactional Editing Domain) provided the generation completes successfully. This ensures that the model is not left in an inconsistent state should the generation fail. The generation descriptors allow the client to specify where the new element should be contained and a priority which will be used to influence the placement of the new element within the containment ordering.&lt;br /&gt;
&lt;br /&gt;
To define a particular generator a client should:&lt;br /&gt;
&lt;br /&gt;
* Define an extension of org.eclipse.ui.handlers to enable the generate command when the activePartID is their Editor (see [[Defining a generator handler]])&lt;br /&gt;
* Define an extension of ac.soton.eventb.emf.diagrams.generator.rule to make the generator framework aware of your generator and its rule classes.&lt;br /&gt;
* Implement your rule classes&lt;br /&gt;
&lt;br /&gt;
=== Generation Descriptors ===&lt;br /&gt;
&lt;br /&gt;
Each rule should return a collection of one or more Generation Descriptors. Generation Descriptors have the following fields which are explained in this section.&lt;br /&gt;
&lt;br /&gt;
* EventBElement parent;&lt;br /&gt;
* EStructuralFeature feature;&lt;br /&gt;
* Object value;&lt;br /&gt;
* Integer priority;&lt;br /&gt;
* Boolean editable;&lt;br /&gt;
* Boolean remove;&lt;br /&gt;
&lt;br /&gt;
The feature of the parent will be changed in the following ways:&lt;br /&gt;
&lt;br /&gt;
If remove is false:&lt;br /&gt;
* 1) If the feature is a containment and the value is an element of the correct kind, the value will be added to the containment in a position according to the priority&lt;br /&gt;
* 2) If the feature is a reference and the value is an element of the correct kind, the value will be added to the reference in a position according to the priority&lt;br /&gt;
* 3) If the feature is an EAttribute and the value is of the correct type, the feature will be set to the value&lt;br /&gt;
  &lt;br /&gt;
Priority can be used to control the relative position of the generated elements  &lt;br /&gt;
* 1 - must come first&lt;br /&gt;
* 10 - not important&lt;br /&gt;
* ---user entered items---&lt;br /&gt;
* 0 must come after user entered items&lt;br /&gt;
* -10 must come last&lt;br /&gt;
  &lt;br /&gt;
Editable - this affects read-only status of the generated element and whether or not it will be preserved or re-generated in a subsequent generation.&lt;br /&gt;
* false - the element is set as read-only (the user cannot change its attributes nor add/remove children), any existing copy of the element will be deleted and re-generated at each re-generation&lt;br /&gt;
* true  - the element is not read-only and will not be deleted before re-generation. (N.B. It is the responsibility of the client rules to check whether this element already exists and only only generate a new one if it does not)&lt;br /&gt;
  &lt;br /&gt;
If remove is true:&lt;br /&gt;
* 1) If the feature is a containment and the value is an element of the correct kind, the value will be deleted from the containment&lt;br /&gt;
* 2) If the feature is a reference and the value is an element of the correct kind, the value will be removed from the reference&lt;br /&gt;
* 3) If the feature is an EAttribute, the feature will be unset &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementing Rule Classes ===&lt;br /&gt;
&lt;br /&gt;
Rule classes must implement IRule. It is recommended the rule classes extend ac.soton.eventb.emf.diagrams.generator#AbstractRule which provides some concise constants for the commonly needed containments and defines some default behaviour (always enabled and dependencies ok).  Note that the rule will only be attempted for the type of source element defined in the extension point. However, this could be defined as an abstract base class to allow the rule to operate on several types of element.&lt;br /&gt;
&lt;br /&gt;
A rule has 4 methods:&lt;br /&gt;
&lt;br /&gt;
* boolean enabled (final EventBElement sourceElement)&lt;br /&gt;
* boolean dependenciesOK(EventBElement sourceElement,List&amp;lt;GenerationDescriptor&amp;gt; generatedElements)&lt;br /&gt;
* boolean fireLate()&lt;br /&gt;
* List&amp;lt;GenerationDescriptor&amp;gt; fire(EventBElement sourceElement, List&amp;lt;GenerationDescriptor&amp;gt; generatedElements)&lt;br /&gt;
&lt;br /&gt;
The enabled method can be used to restrict when it applies. More than one rule can be defined for the same kind of element allowing the generation to be decomposed in a maintainable way. &lt;br /&gt;
&lt;br /&gt;
TheDependenciesOK method allows the method to be deferred since the success of rules may depend on what has already been generated. The dependenciesOK method is passed the list of GenerationDescriptors created so far.&lt;br /&gt;
&lt;br /&gt;
The fireLate method forces the rule to be fired when all other rules have been fired. This is usually used when the rules behaviour depends on what other rules have done.&lt;br /&gt;
&lt;br /&gt;
The fire method must return a list of GenerationDescriptors describing what should be generated. The Utility class, Make, provides a convenience method to help construct a GenerationDescriptor from the parent element, the containment feature, the new child and the priority indicator and if needed the editable setting.&lt;br /&gt;
&lt;br /&gt;
Priority may be from 10 to -10, where 1 indicates first in the containment and -10 last in the containment. Elements in the containment that are not (currently) being generated are placed between priorities 10 and 0. Bear in mind that the relative position of different diagrams (extensions)is preserved within each priority band. Also the order of source elements within their containment is preserved within each priority band.&lt;br /&gt;
&lt;br /&gt;
 1 2 3 4 5 6 7 8 9 10 &amp;lt;other content&amp;gt; 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10&lt;br /&gt;
&lt;br /&gt;
For example, a basic type invariant that doesn&#039;t depend on other variables might be placed at position 1 whereas a theorem or invariant included purely for proof purposes might be placed at position -10. &lt;br /&gt;
&lt;br /&gt;
A current limitation of the priority scheme is that there are a limited number of priorities. For example, this could be a problem if a rule needs to calculate positions of each element within a collection based on dependencies of the element instance.&lt;br /&gt;
&lt;br /&gt;
In most cases the generated element should be set as read-only (the default). In this case the element will be deleted and re-generated on each invocation of the generator. The should not change any attributes of the element nor add to its children. In some case, however, it is necessary to generate an element whose contents may be modified by the user. To do this set the editable parameter of the Generation Descriptor. In this case the generated element will not be deleted when the generator is next invoked. The rule must take care not to return another Generation Descriptor if the element has already been generated. It should look for a suitable generated element (to use for adding further generated chldren etc.) and only generate a new one if it doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
Where a tree structure is entirely generated within one rule firing (e.g. an event with guards and actions) it is more efficient to construct the entire event and return a single Generation Descriptor that adds that event. It is also possible to do this by returning separate Generation Descriptors to add the event and each guard and action individually.&lt;br /&gt;
&lt;br /&gt;
A typical line from a rule class might look like this:&lt;br /&gt;
 		ret.add(Make.descriptor(machine,invariants,Make.invariant(&amp;quot;myInvariantName&amp;quot;, &amp;quot;myVar &amp;gt;0&amp;quot;,&amp;quot;my comment&amp;quot;),10));&lt;br /&gt;
where, &lt;br /&gt;
ret is the list to be returned and machine is the parent element containing the invariants to be added to.&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=EMF_framework_for_Event-B&amp;diff=14343</id>
		<title>EMF framework for Event-B</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=EMF_framework_for_Event-B&amp;diff=14343"/>
		<updated>2020-05-19T13:04:36Z</updated>

		<summary type="html">&lt;p&gt;Colin: /* Structure Editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
This page describes the core facilities for loading Rodin Event-B models in EMF and the &#039;hooks&#039; that are provided for making extensions. Further support for extending the Event-B modelling language is available here: [[Generic Event-B EMF extensions]].&lt;br /&gt;
&lt;br /&gt;
A generic EMF to EMF translator is also available. This can be configured to generate Event-B EMF and is used for some more recent Event-B generators. It will eventually replace the generator that only targets Event-B. &lt;br /&gt;
The generic translator can be used between any source-target pair of EMF meta-models. It is described here: [[EMF to EMF model translator]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===The Eclipse Modeling Framework===&lt;br /&gt;
&lt;br /&gt;
The EMF project is a modeling framework and code generation facility for building tools and other applications based on a structured data model. From a model specification, EMF provides tools and runtime support to produce a set of Java classes for the model, along with a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor.&lt;br /&gt;
&lt;br /&gt;
===An EMF Meta-Model of Event-B===&lt;br /&gt;
&lt;br /&gt;
The Event-B meta-model defines the structure of Event-B projects. The model is structured into three packages for clarity. The core package contains a structure of abstract meta-classes so that models can be treated generically as far as possible. The core package also contains mechanisms to handle extensions provided by other plug-ins and a meta-class to model entire projects. There are two sub-packages, contained with the core package, for Machine and Context.  Note, that the &#039;&#039;EventB&#039;&#039; prefix is used to indicate that a meta-class is abstract (i.e. cannot be instantiated except via one of its subclasses).&lt;br /&gt;
&lt;br /&gt;
====Abstract Basis====&lt;br /&gt;
The meta-model is built  upon a structure of abstract meta-classes. (Abstract meta-classes are ones that cannot be directly instantiated. Their instances are always instances of one of their concrete sub-meta-classes). These abstract meta-classes are useful because they enable a feature to be defined once in the meta-model and be used, via inheritance, by many concrete meta-classes. Apart from making it easier to maintain the meta-model, this makes it possible to write code that is more generic, since it can work on features without knowing which concrete meta-class the instance it is working on belongs to. To easily distinguish abstract meta-classes from concrete ones, we prefix abstract meta-classes with &#039;&#039;EventB&#039;&#039;. For abstract classes, we also follow the convention of including within the name, all the features that are inherited by that meta-class. For example, &#039;&#039;EventBNamedCommentedElement&#039;&#039; inherits from &#039;&#039;EventBCommentedElement&#039;&#039; and from &#039;&#039;EventBNamed&#039;&#039;. The abstract meta-classes which are to be used to define concrete meta-classes are arranged in a hierarchy. Each feature is contained in a meta-class outside of this hierarchy (e.g. &#039;&#039;EventBNamed&#039;&#039;). This provides a flexible choice of how to access model objects, either at a point in the hierarchy to generalise over parts of its structure or via the feature containers to generalise over all elements that may own that feature. (Although currently these are equivalent, this may not always be the case).&lt;br /&gt;
&lt;br /&gt;
The root of all meta-classes in the Event-B EMF model is the abstract base class, &#039;&#039;EventBObject&#039;&#039; this provides some convenience methods to access containing or contained elements of a specified type and a method to obtain the URL of an element&#039;s package. &#039;&#039;EventBObject&#039;&#039; extends the EMF class, &#039;&#039;EObject&#039;&#039; and provides a collection of &#039;&#039;Annotations&#039;&#039;. &#039;&#039;Annotations&#039;&#039;  (which are similar to Ecore&#039;s &#039;&#039;EAnnotations&#039;&#039; ) give a flexible and efficient way to store information that is not part of the main model. For example this is used to store some information contained in the Rodin database, which must be preserved but is not of interest in the EMF modelling tools.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;EventBElement&#039;&#039; provides a common abstract base class for all EventBObjects that are elements of the model. This meta-class provides extensibility features that are described later.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;EventBCommentedElement&#039;&#039; provides the ability to comment elements. It inherits a string attribute, &#039;&#039;comment&#039;&#039; from &#039;&#039;EventBCommented&#039;&#039;. (The use of a separate meta-class, outside the main inheritance hierarchy gives more flexibility for future modifications if other elements need to be commented. Hence if client code refers to comments via &#039;&#039;EventBCommented&#039;&#039; rather than &#039;&#039;EventBCommentedElement&#039;&#039; they will not be affected if, in the future, other elements inherit &#039;&#039;EventBCommented&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Similarly, &#039;&#039;EventBNamedCommentedElement&#039;&#039; adds the ability to name elements by inheriting a string attribute, &#039;&#039;name&#039;&#039; from &#039;&#039;EventBNamed&#039;&#039;. (Currently, a named but not commented element is not provided). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;EventBCommentedExpressionElement&#039;&#039; provides a string attribute, &#039;&#039;expression&#039;&#039; (inherited from &#039;&#039;EventBExpression&#039;&#039;), for an Event-B mathematical expression. Note that our current need (Variant) is for expression elements to be commented but not named. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;EventBNamedCommentedComponentElement&#039;&#039; subtypes &#039;&#039;EventBNamedCommentedElement&#039;&#039; to provide a common basis for any components (Machines, Contexts etc.) that are contained in the Event-B Project.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;EventBNamedCommentedPredicateElement&#039;&#039; provides a string attribute, &#039;&#039;predicate&#039;&#039; (inherited from &#039;&#039;EventBPredicate&#039;&#039;), for an Event-B mathematical predicate. Note that our current need is for all predicate elements to be commented and named.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;EventBNamedCommentedDerivedPredicateElement&#039;&#039; extends &#039;&#039;EventBNamedCommentedPredicateElement&#039;&#039; and provides a boolean attribute, &#039;&#039;theorem&#039;&#039; (inherited from &#039;&#039;EventBDerived&#039;&#039; to indicate that the predicate is a theorem that should be derived (from previous predicates in the same container).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;EventBNamedCommentedActionElement&#039;&#039; provides a string attribute, &#039;&#039;action&#039;&#039; (inherited from &#039;&#039;EventBAction&#039;&#039;), for an Event-B mathematical substitution.&lt;br /&gt;
&lt;br /&gt;
[[File:EMFcore1abstract.gif|EMF model abstract base elements]]&lt;br /&gt;
&lt;br /&gt;
====Extensibility Mechanism====&lt;br /&gt;
&lt;br /&gt;
The Extensibility mechanism caters for extensions (i.e. new elements and/or attributes) that have been defined in the Rodin database.  When Rodin does not need to understand the extension, a mechanism is provided to persist the extension as a string attribute in a generic Rodin element.  This saves having to define an equivalent Rodin database extension. The extension mechanism can also be used to store temporary volatile modelling data that will not be persisted. The extensions will only be persisted if valid Rodin identifiers are provided. &lt;br /&gt;
&lt;br /&gt;
The extension data is contained by the abstract meta-class &#039;&#039;EventBElement&#039;&#039; and hence can be attached to any Event-B model element. Two mechanisms are provided, one for simple attributes (corresponding to Rodin attribute extensions) and one for extension elements (corresponding to Rodin element extensions).&lt;br /&gt;
&lt;br /&gt;
Attribute extensions are contained in a collection &#039;&#039;attributes&#039;&#039;. They utilise an intermediate &#039;&#039;StringToAttributeMapEntry&#039;&#039; class which triggers the EMF generator to provide the collection as a special kind of list that can be accessed also as a map. If persistence is required the map key, contained in the &#039;&#039;StringToAttributeMapEntry&#039;&#039; class, should be a valid Rodin extension id; and the map value should be an &#039;&#039;Attribute&#039;&#039; with &#039;&#039;type&#039;&#039; (an enumeration corresponding to the Rodin attribute types) and &#039;&#039;value&#039;&#039; fields (a java object allowing for different attribute types). This feature is used in the following way:&lt;br /&gt;
* if, at load time, a Rodin attribute is found that is not recognised as a known attribute of the current element type, the attribute will be stored in the generic &#039;&#039;attributes&#039;&#039; collection using its type identification as the key. Such unknown attributes will be restored at save time.&lt;br /&gt;
* all elements of an unknown extension element are treated in this way.&lt;br /&gt;
* if at save time, any extensions are found that do not have a valid Rodin extension identifier as their attribute map &#039;&#039;key&#039;&#039;, these will be assumed to be volatile and will be discarded. &lt;br /&gt;
&lt;br /&gt;
Element extensions are represented by a collection, &#039;&#039;extensions&#039;&#039;, of a meta-class, &#039;&#039;AbstractExtension&#039;&#039;, which has an &#039;&#039;extensionId&#039;&#039;. This mechanism can be used in several ways.&lt;br /&gt;
A new meta-class can extend the core meta-class AbstractExtension so that it may be added to the &#039;extensions&#039; containment of any EventBElement. This new meta-class may then be treated in one of the following ways.&lt;br /&gt;
&lt;br /&gt;
* It may be viewed as an extension of the containing parent element so that it contributes new containments to an existing meta-class. To do this it should be given an EAnnotation with source org.eventb.emf.core.ExtendedMetaClasses and references to the extended parent classes should be added to this annotation. For synchronisation, the new extension meta-class should be configured to use the &#039;ExtensionSynchroniser&#039; from the core&#039;s persistence plug-in. (No Rodin element identifier should be given). The children of this extension should specify a new synchroniser that extends &#039;AbstractExtensionChildSynchroniser&#039; to ensure that loading the corresponding Rodin element constructs the intermediate Extension class.&lt;br /&gt;
&lt;br /&gt;
[[Image:EMFMetaClassextensions.gif]]&lt;br /&gt;
&lt;br /&gt;
* It may be viewed as a child element of the parent. In this case, it should be configured with a synchroniser that extends AbstractSynchroniser.&lt;br /&gt;
&lt;br /&gt;
* If Rodin doesn&#039;t need to understand the contents of the extension, the extension element should be configured to use the SerialisedExtensionSynchroniser. In this case the extension will be persisted in EMF XMI format in a single attribute of the generic Rodin Element kind, SerialisedExtension. For example, this mechanism is used for making diagrammatic modelling extension. &lt;br /&gt;
&lt;br /&gt;
The following generic fallback mechanisms are also supported:&lt;br /&gt;
* if a synchroniser has not been registered; at load time, unknown Rodin elements will be instantiated as generic &#039;&#039;Extension&#039;&#039; elements and their attributes will be contained in this element&#039;s &#039;&#039;attributes&#039;&#039; collection. (Note that the &#039;&#039;Extension&#039;&#039; element could contain further recognised or unrecognised elements, which would be added to it&#039;s &#039;&#039;extensions&#039;&#039; collection). At save time, these elements would be converted back to their corresponding Rodin elements using the &#039;&#039;extensionId&#039;&#039; and attribute map &#039;&#039;key&#039;&#039;, which are also the Rodin extension identifiers.&lt;br /&gt;
* if at save time, any extensions are found that do not have a valid Rodin extension identifier as their &#039;&#039;extensionId&#039;&#039;, these will be assumed to be volatile and will be discarded.&lt;br /&gt;
Extensions are proxy-resolving so that the possibility of extensions being in separate files is allowed. Of course, they may also be within the same resource.&lt;br /&gt;
&lt;br /&gt;
[[Image:EMFcore2extensions.gif|EMF model, extension mechanism]]&lt;br /&gt;
&lt;br /&gt;
Further support for [[Generic Event-B EMF extensions]] is available.&lt;br /&gt;
&lt;br /&gt;
====Project====&lt;br /&gt;
&lt;br /&gt;
Event-B projects are modelled in the Event-B EMF model. This provides support for tools that can display and/or manipulate the project contents. A &#039;&#039;Project&#039;&#039; contains a collection of components. &#039;&#039;Project&#039;&#039; extends &#039;&#039;EventBNamedCommentedElement&#039;&#039;. This allows it to contain extensions and attributes as well as providing it with a name and comment. Since persistence works at the component level, the project containments are &#039;across-resource&#039;. Hence EMF&#039;s support for proxy resolution in containments is utilised for the project level model. (By default, proxy resolution is only provided for reference relationships).&lt;br /&gt;
&lt;br /&gt;
[[Image:EMFcore3project.gif|EMF model of an Event-B Project]]&lt;br /&gt;
&lt;br /&gt;
====References between components ====&lt;br /&gt;
&lt;br /&gt;
Event-B projects contain references between elements that are contained within different components. Serialisation (persistence) is performed on a per component basis and therefore, these references must work between resources. The default mechanism for this in EMF is for the reference to be represented by a proxy, initially, after loading the component. The proxy URI is resolved when the reference is first accessed. Resolving a proxy results in the referenced component being loaded so that its contents are accessible. We wish to support this established kind of behaviour for tools that need to work at a multi-component level. &lt;br /&gt;
&lt;br /&gt;
However, we also wish to support tools that work on a single-component level that may involve editing the references. The user view of a reference is of a text string that contains the name identifier of the referenced element. The user may edit this identifier to a new name that may or may not exist. The edit may be made without attempting to resolve the proxy so that the validity of the reference is not tested. (When the component containing the reference is saved, the Rodin static checker will check that the reference exists and raise an error if it does not).&lt;br /&gt;
&lt;br /&gt;
In order to support these dual access methods, we have implemented the following EMF features:&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;name&#039;&#039; attribute of &#039;&#039;EventBNamed&#039;&#039; has been designated as an &#039;&#039;&#039;ID&#039;&#039;&#039;. This setting enables EMF&#039;s facility for using &#039;&#039;&#039;Intrinsic IDs&#039;&#039;&#039; instead of the default method of indexing collections. As a result of this, proxies are constructed from the URI of the containing resource with the &#039;&#039;&#039;fragment&#039;&#039;&#039; part being the element name.&lt;br /&gt;
* The primary feature for a relationship is an EMF reference whose type is the meta-class of the referenced element (i.e. the normal reference relationship used in EMF models). All such references are multiplicity-many, even if only one reference is ever used. &lt;br /&gt;
* Resource URI&#039;s are constructed lazily when they are resolved. This means that a new reference can be added with just the name of the referenced element. A dummy URI is used to hold the fragment. When the proxy is resolved, the dummy fields are replaced with valid fields derived from knowledge about the structure of Event-B projects. (For example a refined machine must be in the same project as the referencing machine and must have file name given by the reference and extension &amp;quot;bum&amp;quot;. &lt;br /&gt;
* In order to avoid resolving proxies unnecessarily, elements that can be referenced have been customised so that their getName() method returns the URI fragment if they are a proxy.&lt;br /&gt;
* A derived feature which is a list of the reference names is also provided in each referencing element. This has no storage and is constructed from the URI fragments and returned whenever it is requested (by calling getXXXNames() (where XXX is the name of the primary reference feature). The returned list of names is a notifying list so that it will notify the parent element if any changes are made to it. The notification for changes to these lists performs appropriate changes to the primary references feature. For example, adding a new name to the list will add a proxy to the primary reference feature that consists of a dummy URI with fragment equal to the new name.&lt;br /&gt;
* The persistence is customised to serialise the list of reference names and discard the list of proxies. (It may seem perverse, then, that the list of names is derived from the proxies. However, this is necessary since the proxies contain more information in memory when they have been resolved and therefore cannot be derived from just the list of names).&lt;br /&gt;
* For convenience a method has been added to EventBObject to return its URI. If the element is a proxy, the proxyURI is returned. Otherwise the URI of the component&#039;s resource is returned.&lt;br /&gt;
&lt;br /&gt;
Note that the lazy construction of a URI relies on the root element name being used as the resource name. If the name of the root element is changed, it will change the resource name and break any references to it. (If the element name is changed in an editor that works at a higher level than the resource, the editor should update the references automatically)&lt;br /&gt;
&lt;br /&gt;
====Machine package====&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;Machine&#039;&#039; inherits from &#039;&#039;EventBNamedCommentedComponentElement&#039;&#039; (so that it can be used in the &#039;&#039;components&#039;&#039; collection of a &#039;&#039;Project&#039;&#039;). &#039;&#039;Machines&#039;&#039;, refine other machines , see contexts  and may contain, variables, invariants, a single variant and events.&lt;br /&gt;
&lt;br /&gt;
[[Image:EMFmachine1.gif|EMF model of a Machine]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Events&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;Event&#039;&#039; contains a refines relationships with other events. It also contains collections of parameters, guards, witnesses, and actions. The enumerated type, &#039;&#039;Convergence&#039;&#039;,  provides the values for the convergence property of an event.&lt;br /&gt;
&lt;br /&gt;
[[Image:EMFevent1.gif|EMF model of an Event]]&lt;br /&gt;
&lt;br /&gt;
====Context package====&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;Context&#039;&#039; inherits from &#039;&#039;EventBNamedCommentedComponentElement&#039;&#039;. Contexts, extend other contexts and contain sets, constants and axioms.&lt;br /&gt;
&lt;br /&gt;
[[Image:EMFcontext1.gif|EMF model of a Context]]&lt;br /&gt;
&lt;br /&gt;
===Persistence===&lt;br /&gt;
The Persistence plug-in &#039;&#039;org.eventb.emf.persistence&#039;&#039; overrides EMF&#039;s default XMI persistence so that models are serialised in the Rodin Database. The serialisation uses the Rodin API so that it is decoupled from the actual serialisation of the Rodin database. The Persistence API provides methods to open/create Rodin projects, load and unload components (from Rodin Database to cache), save changes, and register listeners to projects and components. An extension point is provided for offering synchronisers for new element kinds (extensions).&lt;br /&gt;
&lt;br /&gt;
Persistence takes a rewriting approach. That is, it is more efficient to clear the contents of a model component (machine or context) and regenerate it than to calculate what has been changed and only save the changes. Rodin uses an internal element naming scheme so that tools can uniquely identify elements even if the user has incorrectly labelled two elements by the same name. (This is different form the name, label or identifier visible to the user). The persistence mechanism preserves and re-uses internal names of elements from before the model was loaded. Elements that have been created in EMF (and therefore don&#039;t have an internal name already) are given a unique name using EMF&#039;s UUID facility. Since the Rodin naming approach is very different from UUIDs there is very little chance of a UUID clashing with a Rodin generated name. However, if this does happen the persistence will detect it and rename one of the elements using a new UUID. In this case a warning is logged in the Plugin error log.&lt;br /&gt;
&lt;br /&gt;
[[Image:EMFpersistence1UpdateNotification.png|EMF persistence]]&lt;br /&gt;
&lt;br /&gt;
===Event-B Mathematical Language Extension===&lt;br /&gt;
Using [[#Extensibility Mechanism|the Extension mechanism]] an EMF extension for the Mathmetical Language of EventB will be created. This means expressions, predicates and substitutions will be available as EMF models too.&lt;br /&gt;
&lt;br /&gt;
As the RodinDB only saves these constructs as plain strings, their EMF representation will be recreated every time a model is loaded. The existing RodinParser in combination with a conversion component will be used for this task.&lt;br /&gt;
To avoid unnecessary parsing the creation of these models will be postponed until the models are needed. For example, it will be up to the tool developers to decide when they need a fully resolved structure of predicates. API methods in the [[#Text Tools|Text Tools]] will ease parsing and model construction for tool developers.&lt;br /&gt;
&lt;br /&gt;
===Text Tools===&lt;br /&gt;
As several tools based on the EventB meta-model will deal with a textual representation of it, a component called &#039;Text Tools&#039; will be created. Text Tools will offer an API for basic tasks such as:&lt;br /&gt;
* Define a concrete syntax for the structure of machines and contexts&lt;br /&gt;
* Conversion from an EventB meta-model to text, i.e., pretty-print with configurable layout&lt;br /&gt;
* Parsing of text input which produces an EventB meta-model&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Structural parsing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Rodin core already provides a parser for expressions, predicates and substitutions. Therefore Text Tools will only provide a parser for the structural parts of the text representation of EventB machines and contexts. This parser will treat expressions, predicates and substitutions as plain strings that are stored in attributes in the meta-model.&lt;br /&gt;
As described in section [[#Event-B Mathematical Language Extension|Event-B Mathematical Language Extension]] the full mathematical language will be supported as an extension to the EventB meta-model. Tools that are interested in working on a fully parsed version of an expression, predicate or substitution will be able to use helper methods of the Text Tools API. These helper methods will make use of the existing Rodin parser and convert the resulting AST to the meta-model.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fallback strategy&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the user is editing the textual representation of a machine or context the input may contain syntactic errors which prevent converting the parse result into an EMF model. As the user might wish to save the text representation in this syntactically incorrect state, Text Tools will provide a fallback strategy for this case. API methods will be provided to store the plain text into the RodinDB. This plain text will be used as a basis for editing next time the model is loaded via Text Tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Conflict resolution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When Text Tools loads an EventB meta-model from the Rodin Database it will detect any conflicts in the model. Conflicts will occur if other editors, that do not work via Text Tools, have changed the model in the RodinDB after Text Tools has stored a syntactically incorrect version as plain text. In this case the tool that is using Text Tools to load the model will be informed about the conflict and asked to resolve it. Strategies to solve these conflicts could be &#039;automatic overwriting based on time stamps&#039; or using the editors described in the section [[#Compare/Merge Editor|Compare/Merge Editor]].&lt;br /&gt;
&lt;br /&gt;
===Tools That Will Use the Framework===&lt;br /&gt;
&lt;br /&gt;
The framework described above is not yet available. However, we already plan to use it in some tools.&lt;br /&gt;
&lt;br /&gt;
====Compare/Merge Editor====&lt;br /&gt;
In several situations conflicts between different versions of an Event-B model can occur. Often the responsible tool will not be able to resolve these conflicts automatically and user interaction is required. A compare and merge editor for Event-B models will help users to solve these conflicts. This editor will be based on the [http://wiki.eclipse.org/index.php/EMF_Compare EMF Compare] sub-project. It will compare the two conflicting versions and present the differences to the user. This visualization of the model will resemble the [[#Structure Editor|Structure Editor]]. &lt;br /&gt;
&lt;br /&gt;
If one of the two versions of the machine/context contains an invalid structure that means it is only available as text, the EMF based Compare/Merge editor cannot be used. A textual Compare/Merge editor will be available as an alternative view (integrated with the EMF Compare/Merge editor). The second view will be based on the [[#Text Editor|Text Editor]]. &lt;br /&gt;
&lt;br /&gt;
Usage scenarios are, for example:&lt;br /&gt;
* Merging after a conflict between RodinDB and Text Editor (as described in [[#Text Tools|Text Tools]])&lt;br /&gt;
* Team-based development, for example, using SVN or CVS&lt;br /&gt;
* Comparison of an abstract and a refining machine, highlighting the differences&lt;br /&gt;
&lt;br /&gt;
====Text Editor====&lt;br /&gt;
Requests by several users have shown that there is demand for a text editor for EventB models. Based on the EventB meta-model and the [http://www2.informatik.hu-berlin.de/sam/meta-tools/tef/index.html Text Editor Framework], a state-of-the-art text editor will be created.&lt;br /&gt;
The editor will make use of  [[#Text Tools|Text Tools]] and will provide an extensible set of features, such as (syntactical and semantical) highlighting, code completion, quick navigation and outline view.&lt;br /&gt;
&lt;br /&gt;
The text editor will be available in two forms. A first class Eclipse editor will offer editing of full machines and contexts. In addition a pop-up editor will be created that can be used by other tools to allow their users text editing of sub-components in machines and contexts. An example is the [[#Structure Editor|Structure Editor]], which will offer a pop-up text editor allowing the user to edit a single expression or a compound sub-component such as an event.&lt;br /&gt;
&lt;br /&gt;
====Rose: Structure Editor====&lt;br /&gt;
EMF provides support to generate structured (e.g. tree, list, table based) editors for models. An adapted version of these editors will allow users to edit machine and context elements within a structure using menu-guided selections. To allow feature-rich editing of elements containing expressions, predicates and substitutions this editor will use the pop-up variant of the [[#Text Editor|Text Editor]].&lt;br /&gt;
&lt;br /&gt;
====Project Diagram Editor====&lt;br /&gt;
A diagrammatic editor will be produced that shows the structure of an Event-B Project in terms of it&#039;s Machines and Contexts with their refines, sees and extends relationships. (This will replace the current UML-B package diagram). The Project Diagram editor will be produced using the Graphical Modelling Framework (GMF). It will allow machines and contexts to be created/deleted and their relationships changed. A feature to create a &#039;starting point&#039; refinement of a machine, will be included.&lt;br /&gt;
&lt;br /&gt;
====[[UML-B]]====&lt;br /&gt;
UML-B will be re-implemented as an extension to the Event-B meta-model. The UML-B meta-classes will extend and add to the meta-classes of Event-B. This will provide greater integration between the EMF based Event-B editors and the UML-B diagrammatic editors.&lt;br /&gt;
&lt;br /&gt;
====Refinement Pattern Editor====&lt;br /&gt;
The EMF framework will be used to implement the text editor for the Event-B pattern plugin. The syntax of facets - Event-B model templates used to describe patterns - is an extension of the Event-B syntax.&lt;br /&gt;
&lt;br /&gt;
====[[Parallel Composition using Event-B|Shared Event Composition Tool]]====&lt;br /&gt;
An editor for composing two machines based on shared events has been developed by Southampton. This tool will be re-implemented to utilise the Event-B EMF framework.&lt;br /&gt;
&lt;br /&gt;
See [[Parallel Composition using Event-B]].&lt;br /&gt;
&lt;br /&gt;
====[[Feature Composition Plug-in|Feature Composition Tool]]====&lt;br /&gt;
An editor for composing two machines based on feature selection has been developed by Southampton. The tool (which is already based on EMF) will be re-implemented to utilise the Event-B EMF framework.&lt;br /&gt;
See [[Feature Composition Plug-in]].&lt;br /&gt;
&lt;br /&gt;
===Tasklist ===&lt;br /&gt;
The following pages contain a list of tasks for the development and use of the EMF framework:&lt;br /&gt;
* [[Tasklist for EventB meta model development|Tasklist]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Design proposal]]&lt;br /&gt;
.&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
	<entry>
		<id>https://wiki.event-b.org/index.php?title=Template:Main_Page/Community&amp;diff=14342</id>
		<title>Template:Main Page/Community</title>
		<link rel="alternate" type="text/html" href="https://wiki.event-b.org/index.php?title=Template:Main_Page/Community&amp;diff=14342"/>
		<updated>2020-05-19T12:57:11Z</updated>

		<summary type="html">&lt;p&gt;Colin: add postponed Rodin workshop until 2021&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Displayed as follow on the Main Page ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0;width:43%;border:1px solid #AAAAAA;background:#FFFFFF&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
[http://wiki.event-b.org/index.php/Rodin_Workshop_2020 Rodin 2020 (POSTPONED TO 2021) -- The 8th Rodin User and Developer Workshop on 26 May 2020 co-located with ABZ2020.]&lt;br /&gt;
&lt;br /&gt;
[http://research.nii.ac.jp/eventb2016/ The Event-B Day at NII. November 21, 2016. NII, Tokyo, Japan.]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.event-b.org/index.php/Rodin_Workshop_2016 Rodin 2016 Workshop on 23-24 May 2016 co-located with ABZ2016.]&lt;br /&gt;
&lt;br /&gt;
[http://www.cdcc.faw.jku.at/ABZ2016/ ABZ 2016: The 5th International ABZ Conference, for ASM, Alloy, B, TLA, VDM, Z May 23-27, 2016 Linz, Austria]&lt;br /&gt;
&lt;br /&gt;
[http://research.nii.ac.jp/eventb2014/ The Event-B Day at NII. October 31, 2014. NII, Tokyo, Japan.]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.event-b.org/index.php/Rodin_Workshop_2014 Rodin 2014 Workshop on 2+3 June 2014 co-located with ABZ2014.]&lt;br /&gt;
&lt;br /&gt;
[http://link.springer.com/book/10.1007/978-3-642-33170-1/page/1 The DEPLOY book was published by Springer in July 2013: Industrial deployment of system engineering methods providing high dependability and productivity, A. Romanovsky, M. Thomas (Eds). ISBN: 978-3-642-33169-5] &lt;br /&gt;
&lt;br /&gt;
[http://2013.dsn.org/tutorial-a-romanovsky/ Tutorial: &#039;&#039;Correct-by-Construction Development of Dependable Systems&#039;&#039; at the 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks. June 24, 2013. Budapest, Hungary]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.event-b.org/index.php/Rodin_Workshop_2013 Rodin 2013 Workshop on 10+11 June 2013.]&lt;br /&gt;
&lt;br /&gt;
[http://www.rodintools.org/tutorial.html ICFEM 2012 Tutorial &#039;&#039;Correct-by-Construction Development of Dependable Systems&#039;&#039;. Nov 12, 2012, Kyoto, Japan]&lt;br /&gt;
 &lt;br /&gt;
[http://research.nii.ac.jp/eventb2012/ ICFEM 2012 Workshop on the experience of and advances in developing dependable systems in Event-B. Nov 13, 2012, Kyoto, Japan]&lt;br /&gt;
&lt;br /&gt;
[[Rodin Workshop 2012]] - Rodin 2012 Workshop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[[Rodin Workshop 2010]] - Programme for Rodin 2010 Workshop&lt;br /&gt;
[[Dagstuhl Seminar 2009|Industry Challenges identifed at Dagstuhl refinement seminar 2009]]&lt;br /&gt;
[[DEPLOY_Plenary_Workshop_2009|DEPLOY Plenary Meeting 2009]] - Call for Papers&lt;br /&gt;
[[Rodin Workshop 2009]] - Abstracts and slides from Rodin 2009 Workshop --&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Mailing lists]] - Rodin related mailing lists.&lt;br /&gt;
&lt;br /&gt;
[[Rodin Platform Releases]] - Track releases.&lt;br /&gt;
&lt;br /&gt;
[[Bugs and Feature Requests]] - Report a bug or request a new feature.&lt;br /&gt;
&lt;br /&gt;
[[Plug-in_Wishlist|Plug-in Wishlist]]&lt;br /&gt;
&lt;br /&gt;
[http://www.fm4industry.org FAQ about the use and the impact of formal engineering methods in Industry]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Do not hesitate to improve this wiki.&#039;&#039; You may find some help within the following pages:&lt;br /&gt;
&lt;br /&gt;
[[Help:Contents|Wiki Help]] - Some technical documentation about this wiki.&lt;br /&gt;
&lt;br /&gt;
[[EB:VP|Village Pump]] - Ask your questions and keep track of the main wiki events.&lt;br /&gt;
&lt;br /&gt;
[[Special:Recentchanges|Recent Changes]] - Monitor the wiki activity.&lt;br /&gt;
&lt;br /&gt;
[[Test area|Test Area]] - Wiki editing is simple. Try by yourself.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Main page templates|Community]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colin</name></author>
	</entry>
</feed>