Rodin Platform 3.0 Release Notes

From Event-B
Jump to navigationJump to search

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.

Proof Control Profiles.png

Menus

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

  • At the project level :

Rodin File Commands.png

  • At the component level :

Rodin Root Commands.png

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
IUMLB big.png 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/]
IUMLB big.png 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.
Umlb32.gif UML-B 2.3.0 available 18th Oct. 2014 email Original UML-B modelling environment
Umlb32.gif 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.gif 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.
DecompositionPlug-in logo.png Decomposition 1.3.0 available 25th Nov. 2014 email Compatible with Rodin 3.0.x.
Project diagram icon s.png 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
AtelierB.png 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.png 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.
Mlogo big.png 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 eventb wiki logo.png 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 logo.png ProR available 3.0.x Lukas Ladenberger Update site: http://update.formalmind.com/rodin
Project web site: http://eclipse.org/rmf
MBT for Event-B Logo Medium.png 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/
EHDL Ver2.png
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.