Difference between revisions of "Rodin Platform 3.3 Release Notes"
imported>Laurent |
imported>Laurent (→About) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
Here is a short overview of the newly implemented or fixed features. | Here is a short overview of the newly implemented or fixed features. | ||
− | + | === Better support for the Theory plug-in === | |
+ | |||
+ | We have vastly improved the support for the Theory plug-in, which will allow to finally have a workable Theory plug-in compatible with Rodin 3.x. | ||
+ | |||
+ | === Improved interactive proving === | ||
+ | |||
+ | The ''Generalized Modus Ponens'' reasoner no longer considers hidden hypotheses. This avoids leading the proof to a dead-end. | ||
+ | |||
+ | The interface to external provers has been improved. Now, most mathematical extensions are translated to the external prover (e.g. as an uninterpreted function). This improves the rate of automated proofs when using theories. | ||
+ | |||
+ | === Better proof reuse === | ||
+ | |||
+ | When a proof has become uncertain (colored in purple), the Rodin platform tries harder to salvage it by rebuilding a similar sound proof. This is particularly useful when restoring projects proved with an old version of Rodin (typically 2.x). | ||
=== Partial and total surjection shortcuts === | === Partial and total surjection shortcuts === | ||
Line 14: | Line 26: | ||
* partial surjection: <tt>+>></tt> and <tt>+->></tt> | * partial surjection: <tt>+>></tt> and <tt>+->></tt> | ||
* total surjection: <tt>->></tt> and <tt>-->></tt> | * total surjection: <tt>->></tt> and <tt>-->></tt> | ||
+ | |||
+ | === Rule Details view gets refreshed === | ||
+ | |||
+ | In some circumstances, the Rule Details view would not refresh in a timely fashion. One had to select another proof tree node, and then again the first node to trigger a refresh. Now, the view gets refreshed consistently as soon as the proof rule on the selected node changes. | ||
=== Changes for plug-in developers === | === Changes for plug-in developers === | ||
− | Rodin 3.3 is built on top of Eclipse 4.6.2 (Neon). | + | Rodin 3.3 is built on top of Eclipse 4.6.2 (Neon), which requires Java 8. This shall not be an issue normally (Java is upward compatible), but can cause some glitch in places where code depends on the order of elements in a HashMap traversal, since the hashing algorithm is different. |
+ | |||
+ | ==== AST plug-in ==== | ||
+ | The AST parser now supports infix binary relational predicates specified by the Theory plug-in. This allows to define new predicates looking like <tt>a = b</tt>. | ||
+ | |||
+ | The ISpecialization class of the Event-B AST has been strengthened to detect more error cases (cases where the specialization would produce ill-typed formulas). It is thus not 100 % compatible with Rodin 3.2. But this should not be an issue in general. | ||
+ | |||
+ | ==== Event-B UI ==== | ||
+ | The Rodin Math font is not loaded anymore during the startup of the Event-B UI plugin (this could cause deadlock). It is now loaded lazily and plug-ins that wish to use this font must call | ||
+ | RodinKeyboardUIPlugin.getDefault().ensureMathFontIsAvailable() | ||
+ | from the UI thread before attempting to load this font. | ||
− | + | ==== Rodin Editor ==== | |
+ | The enabling conditions for Rodin editor actions has changed from | ||
+ | fr.systerel.editor.definition.inRodinEditor | ||
+ | to | ||
+ | fr.systerel.editor.definition.editableStructuralMode | ||
+ | which is more precise (and works around a bug in the previous condition). | ||
== Installing == | == Installing == | ||
Line 53: | Line 84: | ||
== External plug-ins == | == External plug-ins == | ||
− | + | {{:Rodin_Platform_3.3.0_External_Plug-ins}} | |
== Fixed Bugs and Implemented Features == | == Fixed Bugs and Implemented Features == | ||
Line 75: | Line 106: | ||
== About == | == About == | ||
− | Rodin Platform with git commit: | + | Rodin Platform with git commit: a240d5e71677c3ce48c9d7c3c36bccbc6f37e77d<br/> |
− | User Release date : | + | User Release date : 13 April 2017. |
MD5 sums of distributed files: | MD5 sums of distributed files: | ||
− | + | d8cf7065a1236f58d537989d56816cb809580b86 rodin-3.3.0.201704022034-f9fbb0d-linux.gtk.x86.tar.gz | |
+ | 4eee7b4d4f92053484aea82c989a50b7a55d7e81 rodin-3.3.0.201704022034-f9fbb0d-linux.gtk.x86_64.tar.gz | ||
+ | 5cd4e0575fe3529be6da6b8dda6952ac41be608b rodin-3.3.0.201704022034-f9fbb0d-macosx.cocoa.x86_64.tar.gz | ||
+ | e98b05297d6c0b181267fe70cac40a661d344ca6 rodin-3.3.0.201704022034-f9fbb0d-win32.win32.x86.zip | ||
+ | 0a5b59f9d970418e9b8358cdf11edf1e30f7024f rodin-3.3.0.201704022034-f9fbb0d-win32.win32.x86_64.zip | ||
+ | 4293e9fbfb9190c232029aa2661e603361d71363 org.rodinp.dev-3.3.0-f9fbb0d.zip | ||
[[Category:Rodin Platform Release Notes]] | [[Category:Rodin Platform Release Notes]] |
Latest revision as of 13:54, 12 July 2017
What's New in Rodin 3.3?
Rodin 3.3 is mainly a corrective version of the Rodin platform which solves stability and usability issues, especially concerning the Theory plug-in.
Here is a short overview of the newly implemented or fixed features.
Better support for the Theory plug-in
We have vastly improved the support for the Theory plug-in, which will allow to finally have a workable Theory plug-in compatible with Rodin 3.x.
Improved interactive proving
The Generalized Modus Ponens reasoner no longer considers hidden hypotheses. This avoids leading the proof to a dead-end.
The interface to external provers has been improved. Now, most mathematical extensions are translated to the external prover (e.g. as an uninterpreted function). This improves the rate of automated proofs when using theories.
Better proof reuse
When a proof has become uncertain (colored in purple), the Rodin platform tries harder to salvage it by rebuilding a similar sound proof. This is particularly useful when restoring projects proved with an old version of Rodin (typically 2.x).
Partial and total surjection shortcuts
Now, one can use the following shortcuts to enter the symbols for surjections:
- partial surjection: +>> and +->>
- total surjection: ->> and -->>
Rule Details view gets refreshed
In some circumstances, the Rule Details view would not refresh in a timely fashion. One had to select another proof tree node, and then again the first node to trigger a refresh. Now, the view gets refreshed consistently as soon as the proof rule on the selected node changes.
Changes for plug-in developers
Rodin 3.3 is built on top of Eclipse 4.6.2 (Neon), which requires Java 8. This shall not be an issue normally (Java is upward compatible), but can cause some glitch in places where code depends on the order of elements in a HashMap traversal, since the hashing algorithm is different.
AST plug-in
The AST parser now supports infix binary relational predicates specified by the Theory plug-in. This allows to define new predicates looking like a = b.
The ISpecialization class of the Event-B AST has been strengthened to detect more error cases (cases where the specialization would produce ill-typed formulas). It is thus not 100 % compatible with Rodin 3.2. But this should not be an issue in general.
Event-B UI
The Rodin Math font is not loaded anymore during the startup of the Event-B UI plugin (this could cause deadlock). It is now loaded lazily and plug-ins that wish to use this font must call
RodinKeyboardUIPlugin.getDefault().ensureMathFontIsAvailable()
from the UI thread before attempting to load this font.
Rodin Editor
The enabling conditions for Rodin editor actions has changed from
fr.systerel.editor.definition.inRodinEditor
to
fr.systerel.editor.definition.editableStructuralMode
which is more precise (and works around a bug in the previous condition).
Installing
Downloading
Upgrading from a previous version of Rodin 3.x
The recommended way to upgrade is to download the platform afresh. It is possible that one could upgrade using the Eclipse mechanism, but we did not tested it.
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 (8 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 Class Diagrams | 1.2.0 | available | 3.x.x | 18 Dec 2015 | Class diagrams contained in Event-B Machines. | ||
![]() |
Event-B State-machines | 3.4.1 | available | 3.x.x | 31st Dec 2015 | State-machines contained in Event-B Machines. | ||
![]() |
Event-B State-machine Animation | 2.1.2 | available | 3.x.x | 19th Dec 2014 | Compatible with Event-B statemachines 3.x.x and ProB 3.0.x. | ||
![]() |
Project Diagram | 1.0.1 | available | 3.x.x | 1st Feb. 2015 | Machine - Context relationship diagram | ||
![]() |
UML-B | 2.3.0 | available | 3.x.x | 18th Oct. 2014 | Original UML-B modelling environment | ||
![]() |
UML-B Statemachine Animation | 1.3.0 | available | 3.x.x | 18th Oct. 2014 | Compatible with UML-B 2.3 and ProB 3.0 | ||
Event-B EMF framework | 5.4.0 | available | 3.x.x | 17th Dec 2015 | 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 | 5.4.0 | available | 3.x.x | 2nd Sept 2017 | 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 | 6.1.0 | available | 3.2.x | 2nd Sept 2017 | 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. | |||
![]() |
Rose | 1.6.0 | available | 3.x.x | 22nd Dec 2014 | Mainly useful for Plug-in developers. Tree-structured editor for Event-B EMF that handles extensions without modification | ||
Teamwork | 1.2.0 | available | 3.2.x | 5th Sept. 2016 | 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). | |||
![]() |
Shared Event Composition | 1.7.1 | available | 5th July 2017 | Compatible with Rodin 3.x.x (checked by cfs 5/05/17) | |||
![]() |
Decomposition | 1.3.1 | available | 4th July 2017 | Compatible with Rodin 3.x.x (checked by cfs 4/05/17) | |||
Refactory | 1.3.0 | not checked | 3.x.x | 6th May 2014 | Compatible with Rodin 3.0.x. | |||
Theory Plug-in | 3.0.0 | not checked | 17th Dec 2014 | |||||
Code Generation | 0.2.5 | not checked | 29th Aug. 2013 | For Java, Ada, and OpenMP C code | ||||
Relevance Filter | 1.1.1 | not checked | ?.x.x | (appears to still work - cfsnook 23/06/15) | ||||
Isabelle for Rodin | not checked | 2.x.x | ||||||
SMT Solvers | 1.3.0 | available | 15th March 2016 | Laurent Voisin | ||||
Pattern | 0.9.0 | not checked | 3.x.x | 13th March 2015 | Thai Son Hoang | |||
Qualitative Probability | 0.2.4 | available | 3.x.x | 23rd July 2017 | Thai Son Hoang | |||
B2Latex export | 0.5.5 | not checked | 2.5.x | 27th May 2015 | ||||
Generic Instantiation (Soton) | 1.0.1 | not checked | 05th March 2013 | |||||
Records | 2.0.0 | available | 2.x.x | 31st July 2016 | ||||
eXtended Event-B | 0.0.6 | available | 3.3.0 | 10th Jul. 2017 | Thai Son Hoang | Text editors and support for machine-inclusion/event-synchronisation |
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.2.0 | available | 3.3.x | 12th July 2017 | Read the instructions concerning 64-bit compatibility : here .
Some antiviruses are suspicious about krt.exe (the AtelierB prover executable): just authorize its execution. |
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.1.x | available | 3.1.0 | 23th June 2015 | 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 5.0.0 or greater. | ||
![]() |
Modularisation | not checked | 2.x.x | Use the update site http://www.iliasov.org/modplugin | ||||
Generic Instantiation | 1.1.1 | available | 3.2.x | 9 September 2015 | Thai Son Hoang | Use the update site http://gen-inst.sourceforge.net/updates | ||
Group refinement | not checked | 2.x.x | Use the update site http://iliasov.org/refplugin | |||||
Flows/Use case extension | not checked | 2.x.x | Use the update site http://iliasov.org/usecase | |||||
![]() |
ProB | 3.0.x | available | 3.x.x | 23th June 2015 | 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 | 0.12.0 | not checked | 3.1.x | 13th January 2015 | 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.eventb-to-vhdl.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
Bugs
764 Generalized Modus Ponens leads to unprovable sub-goal 763 Some symbols do not display properly in the symbols panel 762 Symbols for total and partial surjection 760 B2LaTeX and operator oftype 759 Rule details view not refreshed 757 Error when cloning a specialization
Feature Requests
None
Known Issues
See known bugs on SourceForge.
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 with git commit: a240d5e71677c3ce48c9d7c3c36bccbc6f37e77d
User Release date : 13 April 2017.
MD5 sums of distributed files:
d8cf7065a1236f58d537989d56816cb809580b86 rodin-3.3.0.201704022034-f9fbb0d-linux.gtk.x86.tar.gz 4eee7b4d4f92053484aea82c989a50b7a55d7e81 rodin-3.3.0.201704022034-f9fbb0d-linux.gtk.x86_64.tar.gz 5cd4e0575fe3529be6da6b8dda6952ac41be608b rodin-3.3.0.201704022034-f9fbb0d-macosx.cocoa.x86_64.tar.gz e98b05297d6c0b181267fe70cac40a661d344ca6 rodin-3.3.0.201704022034-f9fbb0d-win32.win32.x86.zip 0a5b59f9d970418e9b8358cdf11edf1e30f7024f rodin-3.3.0.201704022034-f9fbb0d-win32.win32.x86_64.zip 4293e9fbfb9190c232029aa2661e603361d71363 org.rodinp.dev-3.3.0-f9fbb0d.zip