Rodin Platform 3.0 Release Notes: Difference between revisions

From Event-B
Jump to navigationJump to search
imported>Tommy
mNo edit summary
imported>Nicolas
 
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Rodin 3.0 IS NOT YET AVAILABLE.<br>
For developers, see [[Rodin 3.0 Plug-in Migration Guide]].
This release is planned for beginning of 2014.


For developers, there are API evolutions, see [[Rodin 3.0 Plug-in Migration Guide]].
{{TOCright}}
 
== What's New in Rodin 3.0? ==
 
=== General Interface ===
==== Tactic profiles ====
The tactic profiles are now quickly available while proving: from Proof Control, click the green triangle dropdown list and choose the profile, it is applied immediately.


<tt>Release Notes are commented on this page here below.</tt><br>
[[Image:Proof_Control_Profiles.png]]<br/>
<tt>Uncomment when finishing edition.</tt>


<!--
==== Menus ====
{{TOCright}}
Commands available from the Event-B explorer have been refactored and reorganized.<br/>
See changes on the images below.<br/>
::* At the project level :
[[Image:Rodin_File_Commands.png|650px]]<br/>
::* At the component level :
[[Image:Rodin_Root_Commands.png|450px]]
 
==== Modelling ====
Consolidation of the Rodin Editor<br> The Rodin editor has been lifted up to provide its users with basic edition functionnalities such as navigation actions, edition actions, etc. The undo-redo actions have also been fixed.
 
==== Proving ====
The automated reasoners that try to match predicates (HYP, HYP_OR, CNTR, GEN_MP) now use a fuzzy algorithm which succeeds more often. This increases the rate of automated proofs.


== What's New in Rodin 3.0? ==
Add specific support for empty sets and projections in the normalizer.
* General Interface
{{TODO | ...}}


* Modelling
The prover now has an explicit notion of rewriting in hypotheses (which was only simulated before). This avoids strange behaviors that could happen when a proof obligation changes several times.
** Consolidation of the Rodin Editor<br> The Rodin editor has been lifted up to provide its users with basic edition functionnalities such as navigation actions, edition actions, etc. The undo-redo actions have also been fixed.


* Proving
Better integration of the Theory plug-in in proofs.
{{TODO | ...}}


* Changes for plugin-developers
=== Changes for plugin-developers ===


==== Separation of symbols translation and UI related translation ====
==== Separation of symbols translation and UI related translation ====
The dependency on the Event-B UI plug-in has been removed by splitting text translation from translation within graphical components.
The dependency on the Event-B UI plug-in has been removed by splitting text translation from translation within graphical components.
<tt>org.rodinp.keyboard.core</tt> plug-in contains the textual translation utilities,
<tt>org.rodinp.keyboard.core</tt> plug-in contains the textual translation utilities,
<tt>org.rodinp.keyboard.ui</tt> plug-in contains the UI translation capabilties that where available from the legacy <tt>org.rodinp.keyboard</tt> plug-in.
<tt>org.rodinp.keyboard.ui</tt> plug-in contains the UI translation capabilities that where available from the legacy <tt>org.rodinp.keyboard</tt> plug-in.


==== [[Stronger AST Library]] ====
==== [[Stronger AST Library]] ====
{{TODO | ...}}
The API of the AST library has been strengthened to mitigate risks of unsoundness when mixing several formula factories. Now, every AST node carries the formula factory with which it was built, and the AST operations that combine several formulas check that formula factories are compatible.
 
The AST library now offers support for immutable type environments, which simplifies the code of the Sequent prover (no need to make defensive copies anymore).


==== Stronger sequent prover ====
==== Stronger sequent prover ====
{{TODO | ...}}
In order to improve the reliability of the proof status when working with mathematical extensions, the reasoners can be declared as context-dependent. The proofs that use a context dependent reasoner will not be trusted merely based on their dependencies, but instead they will be replayed in order to update their status. This applies in particular to Theory Plug-in reasoners, that depend on the mathematical language and proof rules defined in theories, which change over time.
 


==== Parent-child relationship enforcement ====  
==== Parent-child relationship enforcement ====  
Parent-child relationship were moved appart from UI to the EventB core.
Parent-child relationship were moved apart from UI to the EventB core.
A dedicated page [[Element Hierarchy Extension Point & Library]] exist and documents the performed changes.
A dedicated page [[Element Hierarchy Extension Point & Library]] exist and documents the performed changes.
== Installing ==
=== Downloading ===
[http://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.0/ Download Rodin 3.0 now !]
=== (Not) Upgrading from Rodin 2.x ===
For this major release, upgrading from Rodin 2.x is not supported.
This is due to limitations in Eclipse p2 (about conflict resolutions) and would work only if no plug-ins are installed... which makes it close to useless !
In case some would be interested anyway, here are the steps:
* Upgrade Rodin Handbook to the latest version (2.5.0.201310101603)
* Add Eclipse 3.8 Update Site: http://download.eclipse.org/eclipse/updates/3.8/
* Upgrade to Rodin 3 using the 'Core Rodin Updates' site


== Requirements - Compatibility ==
== Requirements - Compatibility ==
Line 45: Line 73:
** Windows 32-bit
** Windows 32-bit
** Windows 64-bit
** Windows 64-bit
** Mac 64-bit
** Mac OS X 64-bit


* You need to have a Java JRE (6.0 or later) installed on your computer. The Rodin product will not work with a previous version. To run Rodin 64-bit, you need a 64-bit JRE.
* You need to have a Java JRE (6.0 or later) installed on your computer. The Rodin product will not work with a previous version. To run Rodin 64-bit, you need a 64-bit JRE.
Line 51: Line 79:
* To enhance your proving experience, the eclipse font settings (size, aspect...) are available from the preferences (General > Appearance > Colors and Fonts > Rodin). These settings allow you to modify the properties set on the Event-B Keyboard Text Font which is used in many views of the Proving UI. However, to enjoy these functionnalities, you need to install the Brave Sans Mono font on your system. You can download this font from the link [http://sourceforge.net/projects/rodin-b-sharp/files/Font_%20Brave%20Sans%20Mono/0.12/ here].
* To enhance your proving experience, the eclipse font settings (size, aspect...) are available from the preferences (General > Appearance > Colors and Fonts > Rodin). These settings allow you to modify the properties set on the Event-B Keyboard Text Font which is used in many views of the Proving UI. However, to enjoy these functionnalities, you need to install the Brave Sans Mono font on your system. You can download this font from the link [http://sourceforge.net/projects/rodin-b-sharp/files/Font_%20Brave%20Sans%20Mono/0.12/ here].


{{TODO | VERIFY/COMPLETE REQUIREMENTS ABOVE}}<br>
* Linux 64-bit:
{{TODO | Inform here of some specific system requirements}}
: package 'libc6-amd64:i386' must be installed, in particular in order to run external prover binaries
: depending on the distribution, you could instead need these packages: lib32z1 lib32ncurses5 lib32bz2-1.0
* Windows 64-bit:
: Atelier B provers work more slowly; it can cause ML to not automatically discharge some sequents that it discharges on windows 32-bit, due to its timeout. A workaround is to download a custom profile: [http://sourceforge.net/projects/rodin-b-sharp/files/DefaultAuto_ML800 DefaultAuto_ML800], then Window > Preferences > Event-B > Sequent Prover > Auto/Post Tactic > Profiles (tab) > Import..., point to the downloaded file, 'Select All' profiles (there are 2), OK. Then in 'Auto/Post Tactic' tab, select 'Default Auto Tactic Profile (ML 800)' profile for auto-tactics. It is the same as the 'Default Auto Tactic Profile', except ML has a longer timeout (800 ms). You can of course change this timeout by editing the 'ML (800)' profile.
: We have not noticed this problem for Linux 64-bit, nor for other platforms; however if you do, the same workaround applies.


== External plug-ins ==
== External plug-ins ==
{{TODO | Link to the external page for plug-ins}}<br>
{{:Rodin_Platform_3.0.0_External_Plug-ins}}
Link of the form:
<nowiki>{{:Rodin_Platform_3.0.0_External_Plug-ins}}</nowiki>


== Installing ==
== Fixed Bugs and Implemented Features ==
{{TODO | Add here a link to download the platform.}}


=== Downloading ===
Fixed bugs:
[http://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.0/ Download Rodin 3.0 now !]
<pre>
705 AssertionError building WD of 'min' with math extensions
704 Can't display information about VAR and NAT PO
702 Temporary root still visible after deletion
699 Exception when using profile with auto inference rules
697 NPE in Static Checker, FormulaFreeIdentsModule
696 Paste sometimes operates in the abstraction
695 Exceptions when attempting to evaluate Overlay.isActive()
694 Caret placement on line delimiters creates IllegalArgumentException
693 Can not undo a move operation
692 Keyboard widget translation create side-effects
691 Wizards allow modification of generated components
690 Hypothesis has disappeared
689 Auto Rewriter does not remove trivial hypotheses
687 unsound datatype translation
686 Math symbols not translated if present as subchain
685 ac.soton.composition - failed to load due to missing class
683 EventB editor - IllegalStateException when autobuilding
673 Wrong placement of caret when deleting elements
667 NPE in POLoader.readPO()
652 Multiple exceptions in EventB Explorer when updating with Teamwork
642 NPE in systerel editor
636 Typo in Rodin User's Handbook, range restriction
601 proof support for prj1 and prj2
554 Heterogenous cursors in proving GUI
382 editor extension - clause names defined in wrong element
362 Fix "new" actions
</pre>


== Fixed Bugs ==
Implemented features:
{{TODO | Add here a list of the fixed bugs.}}
<pre>
318 Dynamic tactic buttons in proving UI
312 copy/​paste from Type Environment
309 Consider variants in HYP, CNTR and GenMP
298 Add auto rewrites about emptyness
119 non-emptiness of a set of total functions
</pre>


== Known Issues ==
== Known Issues ==
{{TODO | COPY KNOWN ISSUES FROM PREVIOUS PAGES / VERIFY}}<br>
See [http://sourceforge.net/p/rodin-b-sharp/bugs known bugs on SourceForge].
{{TODO | Add here a link to the SourceForge Bugs page, after filtering bugs (Assignee Any, Status Open, Category Any, Group 1.2).}}
 
On Linux platforms, a crash may occur when closing the Welcome page. After restarting Rodin, everything works fine.<br/>
This is a known Eclipse bug: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=400626]


== Disclaimer ==
== Disclaimer ==
Line 76: Line 140:


== About ==
== About ==
Rodin Platform up to rxxxx.<br>
Rodin Platform up to e3d282b.<br>
Developer Release date : dd/mm/yyyy.<br>
Developer Release date : 17/03/2014.<br>
User Release date : dd/mm/yyyy.
User Release date : 20/03/2014.


[[Category:Rodin Platform Release Notes]]
[[Category:Rodin Platform Release Notes]]
-->

Latest revision as of 16:35, 9 July 2014

For developers, see Rodin 3.0 Plug-in Migration Guide.

What's New in Rodin 3.0?

General Interface

Tactic profiles

The tactic profiles are now quickly available while proving: from Proof Control, click the green triangle dropdown list and choose the profile, it is applied immediately.


Menus

Commands available from the Event-B explorer have been refactored and reorganized.
See changes on the images below.

  • At the project level :


  • At the component level :

Modelling

Consolidation of the Rodin Editor
The Rodin editor has been lifted up to provide its users with basic edition functionnalities such as navigation actions, edition actions, etc. The undo-redo actions have also been fixed.

Proving

The automated reasoners that try to match predicates (HYP, HYP_OR, CNTR, GEN_MP) now use a fuzzy algorithm which succeeds more often. This increases the rate of automated proofs.

Add specific support for empty sets and projections in the normalizer.

The prover now has an explicit notion of rewriting in hypotheses (which was only simulated before). This avoids strange behaviors that could happen when a proof obligation changes several times.

Better integration of the Theory plug-in in proofs.

Changes for plugin-developers

Separation of symbols translation and UI related translation

The dependency on the Event-B UI plug-in has been removed by splitting text translation from translation within graphical components. org.rodinp.keyboard.core plug-in contains the textual translation utilities, org.rodinp.keyboard.ui plug-in contains the UI translation capabilities that where available from the legacy org.rodinp.keyboard plug-in.

Stronger AST Library

The API of the AST library has been strengthened to mitigate risks of unsoundness when mixing several formula factories. Now, every AST node carries the formula factory with which it was built, and the AST operations that combine several formulas check that formula factories are compatible.

The AST library now offers support for immutable type environments, which simplifies the code of the Sequent prover (no need to make defensive copies anymore).

Stronger sequent prover

In order to improve the reliability of the proof status when working with mathematical extensions, the reasoners can be declared as context-dependent. The proofs that use a context dependent reasoner will not be trusted merely based on their dependencies, but instead they will be replayed in order to update their status. This applies in particular to Theory Plug-in reasoners, that depend on the mathematical language and proof rules defined in theories, which change over time.


Parent-child relationship enforcement

Parent-child relationship were moved apart from UI to the EventB core. A dedicated page Element Hierarchy Extension Point & Library exist and documents the performed changes.

Installing

Downloading

Download Rodin 3.0 now !

(Not) Upgrading from Rodin 2.x

For this major release, upgrading from Rodin 2.x is not supported. This is due to limitations in Eclipse p2 (about conflict resolutions) and would work only if no plug-ins are installed... which makes it close to useless !

In case some would be interested anyway, here are the steps:

Requirements - Compatibility

  • Configurations supported (and for which binaries are provided)
    • Linux 32-bit
    • Linux 64-bit
    • Windows 32-bit
    • Windows 64-bit
    • Mac OS X 64-bit
  • You need to have a Java JRE (6.0 or later) installed on your computer. The Rodin product will not work with a previous version. To run Rodin 64-bit, you need a 64-bit JRE.
  • To enhance your proving experience, the eclipse font settings (size, aspect...) are available from the preferences (General > Appearance > Colors and Fonts > Rodin). These settings allow you to modify the properties set on the Event-B Keyboard Text Font which is used in many views of the Proving UI. However, to enjoy these functionnalities, you need to install the Brave Sans Mono font on your system. You can download this font from the link here.
  • Linux 64-bit:
package 'libc6-amd64:i386' must be installed, in particular in order to run external prover binaries
depending on the distribution, you could instead need these packages: lib32z1 lib32ncurses5 lib32bz2-1.0
  • Windows 64-bit:
Atelier B provers work more slowly; it can cause ML to not automatically discharge some sequents that it discharges on windows 32-bit, due to its timeout. A workaround is to download a custom profile: DefaultAuto_ML800, then Window > Preferences > Event-B > Sequent Prover > Auto/Post Tactic > Profiles (tab) > Import..., point to the downloaded file, 'Select All' profiles (there are 2), OK. Then in 'Auto/Post Tactic' tab, select 'Default Auto Tactic Profile (ML 800)' profile for auto-tactics. It is the same as the 'Default Auto Tactic Profile', except ML has a longer timeout (800 ms). You can of course change this timeout by editing the 'ML (800)' profile.
We have not noticed this problem for Linux 64-bit, nor for other platforms; however if you do, the same workaround applies.

External plug-ins

Rodin Update Site

http://rodin-b-sharp.sourceforge.net/updates


Plug-in name Version Status MCV* Release Date Contact Additional info
Event-B State-machines 2.2.0 available 19th Aug. 2014 email State-machines contained in Event-B Machines. [Requires adding the following update site for dependencies: http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/releases/]
Event-B State-machine Animation 2.1.1 available 27th May 2014 email Compatible with Event-B statemachines 2.x.x and ProB 3.0.x.
UML-B 2.3.0 available 18th Oct. 2014 email Original UML-B modelling environment
UML-B Statemachine Animation 1.3.0 available 18th Oct. 2014 email Compatible with UML-B 2.3 and ProB 3.0
Event-B EMF framework 4.1.0 available 27th May 2014 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.
Event-B EMF support for extensions 3.1.0 available 27th May 2014 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.
Event-B EMF support for diagrams 4.1.0 available 27th May 2014 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. [Requires adding the following update site for dependencies: http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/releases/]
Isabelle for Rodin not checked 2.x.x
Rose 1.5.0 available 27th May 2014 email Mainly useful for Plug-in developers. Tree-structured editor that handles extensions without modification
Records 1.0.1 not checked 16th Oct. 2010 email No longer actively supported - please email if you wish to use this plugin
Teamwork 1.1.0 not checked 15th Oct. 2010 email No longer actively supported - please email if you wish to use this plugin
Shared Event Composition 1.7.0 available 25th Nov. 2014 email Compatible with Rodin 3.0.x
Refactory 1.3.0 available 3.x.x 6th May 2014 email Compatible with Rodin 3.0.x.
Decomposition 1.3.0 available 25th Nov. 2014 email Compatible with Rodin 3.0.x.
Project Diagram 1.0.0 not checked 15th Nov. 2010 email Machine - Context relationship diagram
Relevance Filter 1.1.1 not checked 2.x.x
Theory Plug-in 2.0.2 not checked 10th July 2014 email Compatible with Rodin 2.8 only.
Code Generation 0.2.5 not checked 29th Aug. 2013 email For Java, Ada, and OpenMP C code
SMT Solvers 1.2.1 available 3.0 14th March 2014 Laurent Voisin
Qualitative Probability 0.2.1 not checked 2.3.x 23rd November 2011 Thai Son Hoang
B2Latex export 0.5.4 available 2.5.x 16th April 2012 email
Generic Instantiation (Soton) 1.0.1 not checked 05th March 2013 email

B Method Update Site

http://methode-b.com/update_site/atelierb_provers


Plug-in name Version Status MCV* Release Date Contact Additional info
Atelier-B provers 2.1.0 available 3.x.x 18th March 2014 email Read the instructions concerning 64-bit compatibility : here

Other Update Sites

Plug-in name Version Status MCV* Release Date Contact Additional info
AnimB not checked Christophe Métayer Use the update site http://www.animb.org/updatesite
Camille 3.0.x available 3.0.x Sebastian Krings Use the Camille update site. http://www.stups.uni-duesseldorf.de/camille_updates
Make sure to install the Event-B EMF Framework version 3.7.0 or greater.
Modularisation not checked 2.x.x email Use the update site http://www.iliasov.org/modplugin
Generic Instantiation 1.1.0 available 3.0.x 1 August 2014 Thai Son Hoang Use the update site http://gen-inst.sourceforge.net/updates
Group refinement not checked 2.x.x email Use the update site http://iliasov.org/refplugin
Flows/Use case extension not checked 2.x.x email Use the update site http://iliasov.org/usecase
ProB 3.0.x available 3.0.x 18th March 2014 Jens Bendisposto Use the ProB update site. http://www.stups.uni-duesseldorf.de/prob_updates_rodin3
The Plug-in includes BMotion Studio
For older Rodin versions use http://www.stups.uni-duesseldorf.de/prob_updates
ProR available 3.0.x Lukas Ladenberger Update site: http://update.formalmind.com/rodin
Project web site: http://eclipse.org/rmf
MBT plugin 2.0 not checked 2.7.x 5th of March 2012 Alin Stefanescu Use the update site http://fmi.upit.ro/mbt_plugin
Mode/FT Views 1.0.2 not checked 2.4.x 4th July 2011 Ilya Lopatkin Update site: http://rodinmodeftview.sourceforge.net/
Transformation patterns 1.0 not checked 2.x.x 4th July 2011 Ilya Lopatkin Update site: http://rodinmodeftview.sourceforge.net/
VHDL code generator 2.0.2 not checked 2.x.x 12th March 2012 Sergey Ostroumov Update site: http://www.eb2vhdl.tk/

*MCV stands for the Rodin's Maximum Compatible Version

Known plug-in incompatibilities

It unfortunately might exists some incompatibilities between plug-ins. This list might be non exhaustive and is updated accorded to user experiences. If you encounter some conflict while installing or using plug-ins, please send a mail to the Rodin User List or feel free to complete the following table.

Plug-in name Incompatible with

Fixed Bugs and Implemented Features

Fixed bugs:

705	AssertionError building WD of 'min' with math extensions
704	Can't display information about VAR and NAT PO
702	Temporary root still visible after deletion
699	Exception when using profile with auto inference rules
697	NPE in Static Checker, FormulaFreeIdentsModule
696	Paste sometimes operates in the abstraction
695	Exceptions when attempting to evaluate Overlay.isActive()
694	Caret placement on line delimiters creates IllegalArgumentException
693	Can not undo a move operation
692	Keyboard widget translation create side-effects
691	Wizards allow modification of generated components
690	Hypothesis has disappeared
689	Auto Rewriter does not remove trivial hypotheses
687	unsound datatype translation
686	Math symbols not translated if present as subchain
685	ac.soton.composition - failed to load due to missing class
683	EventB editor - IllegalStateException when autobuilding
673	Wrong placement of caret when deleting elements
667	NPE in POLoader.readPO()
652	Multiple exceptions in EventB Explorer when updating with Teamwork
642	NPE in systerel editor
636	Typo in Rodin User's Handbook, range restriction
601	proof support for prj1 and prj2
554	Heterogenous cursors in proving GUI
382	editor extension - clause names defined in wrong element
362	Fix "new" actions

Implemented features:

318	Dynamic tactic buttons in proving UI
312	copy/​paste from Type Environment
309	Consider variants in HYP, CNTR and GenMP
298	Add auto rewrites about emptyness
119	non-emptiness of a set of total functions

Known Issues

See known bugs on SourceForge.

On Linux platforms, a crash may occur when closing the Welcome page. After restarting Rodin, everything works fine.
This is a known Eclipse bug: [1]

Disclaimer

Since Rodin is continuously maintained, several unsoundness bugs which have been encountered were investigated and fixed. However, despite the total commitment of our teams to ensure the soundness of the platform, some unexpected and unknown soundness issues could remain. We would be grateful if you would report these issues to the development mailing list.

About

Rodin Platform up to e3d282b.
Developer Release date : 17/03/2014.
User Release date : 20/03/2014.