Rodin Platform 2.2 Release Notes: Difference between revisions

From Event-B
Jump to navigationJump to search
imported>Nicolas
imported>Tommy
mNo edit summary
 
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{TOCright}}
{{TOCright}}


== What's New in Rodin X.X? ==
== What's New in Rodin 2.2? ==
* General Interface
* General Interface
{{TODO | ...}}
:'''Improved general platform performance.''' The build time has been decreased by about 40% on average since Rodin 2.0.
 
:See: [[Rodin Performances]]
* Modelling
{{TODO | ...}}


* Proving
* Proving
{{TODO | ...}}
:'''New Tactics''',  such as ''Negation Normal Form'', ''Generalized Modus Ponens'', ''Case distinction from implication''.
:* Comments on the proof tree
:'''Highlight''' button, that shows occurrences of the selected text in proving perspective views.
:* Parenthesis highlighting in hypotheses and goal
:* Find/Highlight in hypotheses and goal


* Changes for plugin-developers
* Changes for plugin-developers
{{TODO | ...}}
:'''Proof storage''' has evolved with backward compatibility: it is transparent for common proof access (getting the proof tree/skeleton). However, for a plug-in that would access proofs using directly the database - which is highly discouraged, please note that IPRProofRule.getElementName() does no more contain a reasoner id, but instead a reference to a IPRReasoner, a newly introduced proof element type. See [[Proof Dependencies and Reasoner Conflicts]].
:* proof storage has evolved with backward compatibility: it is transparent for common proof access (getting the proof tree/skeleton). However, for a plug-in that would access proofs using directly the database - which is highly discouraged, please note that IPRProofRule.getElementName() does no more contain a reasoner id, but instead a reference to a IPRReasoner, a newly introduced proof element type. See [[Proof Storage]] {{TODO}}.
:'''Signature''': optionally, a reasoner may now implement the interface ''ISignatureReasoner''. It is designed for those whose behaviour evolves during a session. A signature represents a single reasoner behaviour. When present, the signature is stored in proofs. These proofs are invalidated when the signature changes (detected at build time).
:'''Extensible Refinement''': external plug-ins can now contribute to the "Refine" action which produces a new component from an existing one. It replaces the former non extensible actions ''Refine'' and ''Extend'' (see [[Extending Refinement Actions]]).
 
== Requirements ==
 
* Configuration
** Only a '''32-bit''' version of the Rodin platform is provided for '''PC'''s
** Only a '''64-bit''' version of the Rodin platform is provided for '''MAC'''
 
* 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 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].
 
* Linux: the internal browser does not work with xulrunner-2.0 (for instance, it causes the welcome page to display a link instead of a html page); xulrunner-1.9.x must be installed.
 
== Installing ==
 
=== Upgrading from Rodin 2.1.x ===
 
Use rodin-2.2-repo.zip, check "contact all update sites" (because a new version of Eclipse is used).
 
* download archive [http://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/2.2/rodin-2.2-repo.zip/download rodin-2.2-repo.zip]
* launch Rodin 2.1.x
* Help > Install New Software... > Add... > enter a name (for instance "Rodin 2.2") then
: Archive... > select the rodin-2.2-repo.zip archive
: Mac users may have to use Local... then point to archive root directory, in case the archive was automatically unzipped
* set options in the bottom of the page:
:* check
:** "Show only the latest versions of available software"
:** "Hide items that are already installed"
:** "Contact all update sites..."
:* uncheck
:** "Group items by category"
: the central area should now list 5 entries
* select "Rodin Platform", click "Next"
: a message informs "Your original request has been modified.  See the details."
: "Rodin Platform" is already installed, so an update will be performed instead.
* click Next, accept license, finish and restart


* Invisible but noteworthy changes
=== Downloading ===
:* to improve performance of proof status computation, proof storing has evolved, in a transparent and backward compatible way (see [[Proof Dependencies and Reasoner Conflicts]]).


== Requirements ==
[http://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/2.2/ Download Rodin 2.2 now !]
{{TODO | COPY REQUIREMENTS FROM PREVIOUS PAGES / VERIFY}}<br>
 
{{TODO | Inform here of some specific system requirements (version of Java, etc).}}
== External Plug-ins ==
 
{{:Rodin_Platform_2.2_External_Plug-ins}}
 
== Fixed Bugs and Implemented Feature Requests ==


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


== Downloading ==
  Bug 2952091: newPP is unsound
{{TODO | Add here a link to download the platform.}}
  Bug 2952645: Unable to parse ||
  Bug 2958877: {1 | true} --> Error Running Tool
  Bug 3105392: Auto Proved status is invisible with theory feature
  Bug 3189256: NPE when using defaut tactic profile at project scope
  Bug 3205664: Sample action button should not exist
  Bug 3237197: NPE when initialising org.eventb.ui
  Bug 3243479: Font is not updated in proof skeleton view
  Bug 3244113: neg_in_l is unsafe
  Bug 3256437: dependencies
  Bug 3299972: conversion to 2.1.1 causes out of memory error
  Bug 3301649: Marker for unrefined event invisible
  Bug 3303186: Highlight in prover UI at the first launch
  Bug 3303436: Complicated WD hypothesis popping up
  Bug 3305107: Renaming Machine creates NPE when trying to open in Camille


== Fixed Bugs ==
  FR 1689028: Abstract expression command
{{TODO | Add here a list of the fixed bugs.}}
  FR 2430736: Simplification with dom/ran restriction/subtraction
  FR 2820268: rewrite rules for NAT1
  FR 3136433: Automatic rewrite of predicates containing hypotheses
  FR 3136669: Highlight parentheses in prover interface
  FR 3137893: Make Remove Negation automatic
  FR 3137918: A generalize auto tactic for impI and mt
  FR 3137944: Instantiate Universal followed by modus tollens
  FR 3244115: safe version of modus ponens
  FR 3286529: Make "or" in goal to "not" in hypothesis automatic


== Known Issues ==
== Known Issues ==
{{TODO | COPY KNOWN ISSUES FROM PREVIOUS PAGES / VERIFY}}<br>
 
{{TODO | Add here a link to the SourceForge Bugs page, after filtering bugs (Assignee Any, Status Open, Category Any, Group 1.2).}}
 
[https://sourceforge.net/tracker/?group_id=108850&atid=651669&status=1 Bugs on SourceForge]
 
  Bug 1441596: Tool conflicts caused by identically named files
  Bug 1824177: B4free prover translation for <<-> fails
  Bug 1949927: newPP is too sensitive to unused hyps
  Bug 1954442: Too many handles used by Edit page on Windows
  Bug 2105507: too difficult to work with explicit set expressions
  Bug 2531738: RODIN crash adding text to note or text box in class diagram
  Bug 2573332: Long formulas get truncated
  Bug 2782243: BraveSansMono
  Bug 2817523: No paste in root contextual menu of explorer
  Bug 2824204: Change to Rodin Elements not reflected in editor
  Bug 2835692: Text Editor exception
  Bug 2844813: Turnstile unicode character
  Bug 2869663: Changing the font in the pretty print view
  Bug 2882318: Error while entering symbol from symbol table
  Bug 2883199: Fix "new" actions
  Bug 2886026: "Overflow" in partition rewriting
  Bug 2894645: Error on context named "axioms"
  Bug 2900427: Problems parsing complex expressions
  Bug 2916134: Atelier-B PP does not understand S /= {}
  Bug 2931450: editor extension - clause names defined in wrong element
  Bug 2934585: animB : impossible to start animation
  Bug 2937124: Symbol Table and Properties
  Bug 2937132: newPP unresponsive
  Bug 2940315: mod operator should be compatible with itself
  Bug 2940575: some fomulas are truncated
  Bug 2941496: NewPP outputs incorrect set of required Hypotheses
  Bug 2942182: unparsing then parsing gives a different expression
  Bug 2952134: conversion to mathematical symbols generates trailing spaces
  Bug 2952705: Progress bar running too fast
  Bug 2952758: Highlighting of bound variables
  Bug 2957980: Proof Skeleton View : \n displayed as squares
  Bug 2968560: Dependence of Explorer & eventb.ui
  Bug 2974867: Camille text editor -  doesn't allow non alphanumeric chars
  Bug 2987749: Axioms in classtypes not quantified
  Bug 2988294: Nested elaborated transitions produce conflicting actions
  Bug 2997510: undo behaviour
  Bug 3005167: Inherited elements
  Bug 3005170: Becomes such that
  Bug 3005202: Renaming and provers
  Bug 3005204: Cumbersome popup
  Bug 3007792: Theorems in Guards - Syntax Error
  Bug 3007793: Issue with refines clauses of events
  Bug 3009555: Search Hypothesis refresh
  Bug 3009838: Order of variables and invariants not preserved
  Bug 3014775: partition operator is not accepted by Camille
  Bug 3019063: Error on Double Click
  Bug 3020776: Issue with indentation
  Bug 3022742: Problem with Software Sites
  Bug 3024811: Leaks in Event-B Explorer
  Bug 3027387: Proof simplification does not remove useless rules
  Bug 3052238: Saving failed caused by AssertionError in rebuild
  Bug 3054228: Proof simplification too slow
  Bug 3075420: Unable to save project after renaming invariants
  Bug 3085129: Rename file and update occurrences can fail
  Bug 3086511: camille editor refuses to save
  Bug 3086755: Tacticals are not cancelable
  Bug 3102117: A theory with problems can be deployed nevertheless
  Bug 3102125: Deleting a deployed theory only removes the tuf file
  Bug 3106603: Theory plugin inherits unsoundness bug from rbp
  Bug 3106728: Unsoundness by wrong treatment of meta variables
  Bug 3106789: Rule based prover does not properly match set extensions
  Bug 3106792: RbP allows to generate theory with same name as a context
  Bug 3112508: Camille can not be installed on Rodin 2.0.1
  Bug 3112539: Proof status after theory change
  Bug 3122147: newPP can't do modus ponens
  Bug 3126433: the parser accepts a+-1  
  Bug 3143114: translation
  Bug 3143508: inherited elements in default editor
  Bug 3150302: callability lost in refinement
  Bug 3150394: miscounted parameters
  Bug 3151189: inappropriate abstraction of a return value
  Bug 3151805: inconsistencies in importing of events
  Bug 3154319: Unacceptable handling of unsupported expressions
  Bug 3158594: Rodin 2.0.1 provers are unsound
  Bug 3164791: Error and missing page in help contents
  Bug 3166636: newPP unable to reason with finite definition
  Bug 3206302: Records plugin: sloppy type checking with nasty consequences
  Bug 3216967: No AtelierB tactics if user profiles before installation
  Bug 3234433: Internal name collisions
  Bug 3275889: Heterogenous cursors in proving GUI
  Bug 3275897: scrolling too slow in Search Hypothesis view
  Bug 3275902: Navigation in yellow boxes


== Disclaimer ==
== Disclaimer ==
Line 44: Line 181:


== About ==
== About ==
Rodin Platform up to rxxxx
Rodin Platform up to r11814
Developer Release date : dd/mm/yyyy.
 
User Release date : dd/mm/yyyy.
Developer Release date : 17/05/2011 (2.2RC1).
 
User Release date : 01/06/2011.


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

Latest revision as of 13:31, 1 July 2011

What's New in Rodin 2.2?

  • General Interface
Improved general platform performance. The build time has been decreased by about 40% on average since Rodin 2.0.
See: Rodin Performances
  • Proving
New Tactics, such as Negation Normal Form, Generalized Modus Ponens, Case distinction from implication.
Highlight button, that shows occurrences of the selected text in proving perspective views.
  • Changes for plugin-developers
Proof storage has evolved with backward compatibility: it is transparent for common proof access (getting the proof tree/skeleton). However, for a plug-in that would access proofs using directly the database - which is highly discouraged, please note that IPRProofRule.getElementName() does no more contain a reasoner id, but instead a reference to a IPRReasoner, a newly introduced proof element type. See Proof Dependencies and Reasoner Conflicts.
Signature: optionally, a reasoner may now implement the interface ISignatureReasoner. It is designed for those whose behaviour evolves during a session. A signature represents a single reasoner behaviour. When present, the signature is stored in proofs. These proofs are invalidated when the signature changes (detected at build time).
Extensible Refinement: external plug-ins can now contribute to the "Refine" action which produces a new component from an existing one. It replaces the former non extensible actions Refine and Extend (see Extending Refinement Actions).

Requirements

  • Configuration
    • Only a 32-bit version of the Rodin platform is provided for PCs
    • Only a 64-bit version of the Rodin platform is provided for MAC
  • 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 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: the internal browser does not work with xulrunner-2.0 (for instance, it causes the welcome page to display a link instead of a html page); xulrunner-1.9.x must be installed.

Installing

Upgrading from Rodin 2.1.x

Use rodin-2.2-repo.zip, check "contact all update sites" (because a new version of Eclipse is used).

  • download archive rodin-2.2-repo.zip
  • launch Rodin 2.1.x
  • Help > Install New Software... > Add... > enter a name (for instance "Rodin 2.2") then
Archive... > select the rodin-2.2-repo.zip archive
Mac users may have to use Local... then point to archive root directory, in case the archive was automatically unzipped
  • set options in the bottom of the page:
  • check
    • "Show only the latest versions of available software"
    • "Hide items that are already installed"
    • "Contact all update sites..."
  • uncheck
    • "Group items by category"
the central area should now list 5 entries
  • select "Rodin Platform", click "Next"
a message informs "Your original request has been modified. See the details."
"Rodin Platform" is already installed, so an update will be performed instead.
  • click Next, accept license, finish and restart

Downloading

Download Rodin 2.2 now !

External Plug-ins

Rodin Update Site

Plug-in name Version Status MCV* Release Date Contact Additional info
UML-B 2.2.0 available 9th Feb. 2011 email
UML-B Statemachine Animation 1.1.0 not available 15th Feb. 2011 email Compatible with UML-B 2.2 and ProB 2.1.
Event-B EMF framework 3.5.0 available 24th Aug. 2011 Users should not need to install this framework. It will be installed automatically by other plug-ins as required.
Export to Isabelle available 2.x.x email
Rose 1.3.0 available 25th Aug. 2011 email
Records 1.0.1 not available email This release includes EMF and Refactory support for records.
Teamwork not available
Shared Event Composition 1.4.0 available 29th June 2011 email Compatible with Rodin 2.2.x. When project or machine is changed in the included section, the modification is propagated for the combined events.
Refactory 1.2.0 available 29th June 2011 email Version compatible with Rodin 2.2.x. More accurate monitor progress bar. Optimised rewriting of freeIdentifiers when renaming variables and constants. Added an additional wizard step corresponding to the indexer update (avoids the platform to hang while waiting for the indexer to update).
Decomposition 1.2.1 available 29th June 2011 email Compatible with Rodin 2.2.x. Optimisation: parameters not used in a decomposed event are not created at all.
Project Diagram 1.0.0 not available email
Relevance Filter 1.0.0 available 2.x.x email
Theory Plug-in v1.0 available 8th July 2011 email Compatible with Rodin 2.2 only.
Code Generation Feature 0.1.5 available 17th May 2011 email
Rodin Editor 0.5.0 available 2.2.x 13th July 2011 Nicolas Beauger or Thomas Muller The versions over 0.5.0 do not install on Rodin Plaforms greater than v.2.2.2 as shown by MCV.

B Method Update Site

Plug-in name Version Status MCV* Release Date Contact Additional info
Atelier-B provers 1.2.2 available 2.2.x 17th Feb. 2011

Other Update Sites

Plug-in name Version Status MCV* Release Date Contact Additional info
AnimB available Christophe Métayer Use the update site http://www.animb.org/updatesite
Camille available Michael Jastram Use the Camille update site. http://www.stups.uni-duesseldorf.de/camille_updates
Modularisation available 2.x.x email Use the update site http://www.iliasov.org/modplugin
Group refinement available 2.x.x email Use the update site http://iliasov.org/refplugin
Flows/Use case extension available 2.x.x email Use the update site http://iliasov.org/usecase
ProB 2.2 available 2.2.x 1st Jun. 2011 Use the ProB update site. http://www.stups.uni-duesseldorf.de/prob_updates
The Plug-in includes BMotion Studio
ProR 8.0.1 available 2.x.x 16th May 2011 Michael Jastram Update site: http://update.pror.org
Project web site: http://pror.org
MBT plugin 1.0 Available 2.2.x 8th of July 2011 Alin Stefanescu Use the update site http://fmi.upit.ro/mbt_plugin
Mode/FT Views 1.0.2 available 2.2.x 4th July 2011 Ilya Lopatkin Update site: http://rodinmodeftview.sourceforge.net/
Transformation patterns 1.0 available 2.2.x 4th July 2011 Ilya Lopatkin Update site: http://rodinmodeftview.sourceforge.net/

*MCV stands for the Rodin's Maximum Compatible Version

Known plug-in incompatibilities

It unfortunately 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 Feature Requests

  Bug 2952091: newPP is unsound
  Bug 2952645: Unable to parse ||
  Bug 2958877: {1 | true} --> Error Running Tool
  Bug 3105392: Auto Proved status is invisible with theory feature
  Bug 3189256: NPE when using defaut tactic profile at project scope
  Bug 3205664: Sample action button should not exist
  Bug 3237197: NPE when initialising org.eventb.ui
  Bug 3243479: Font is not updated in proof skeleton view
  Bug 3244113: neg_in_l is unsafe
  Bug 3256437: dependencies
  Bug 3299972: conversion to 2.1.1 causes out of memory error
  Bug 3301649: Marker for unrefined event invisible
  Bug 3303186: Highlight in prover UI at the first launch
  Bug 3303436: Complicated WD hypothesis popping up
  Bug 3305107: Renaming Machine creates NPE when trying to open in Camille
  FR 1689028: Abstract expression command
  FR 2430736: Simplification with dom/ran restriction/subtraction
  FR 2820268: rewrite rules for NAT1
  FR 3136433: Automatic rewrite of predicates containing hypotheses
  FR 3136669: Highlight parentheses in prover interface
  FR 3137893: Make Remove Negation automatic
  FR 3137918: A generalize auto tactic for impI and mt
  FR 3137944: Instantiate Universal followed by modus tollens
  FR 3244115: safe version of modus ponens
  FR 3286529: Make "or" in goal to "not" in hypothesis automatic

Known Issues

Bugs on SourceForge

  Bug 1441596: Tool conflicts caused by identically named files
  Bug 1824177: B4free prover translation for <<-> fails
  Bug 1949927: newPP is too sensitive to unused hyps
  Bug 1954442: Too many handles used by Edit page on Windows
  Bug 2105507: too difficult to work with explicit set expressions
  Bug 2531738: RODIN crash adding text to note or text box in class diagram
  Bug 2573332: Long formulas get truncated
  Bug 2782243: BraveSansMono
  Bug 2817523: No paste in root contextual menu of explorer
  Bug 2824204: Change to Rodin Elements not reflected in editor
  Bug 2835692: Text Editor exception
  Bug 2844813: Turnstile unicode character
  Bug 2869663: Changing the font in the pretty print view
  Bug 2882318: Error while entering symbol from symbol table
  Bug 2883199: Fix "new" actions
  Bug 2886026: "Overflow" in partition rewriting
  Bug 2894645: Error on context named "axioms"
  Bug 2900427: Problems parsing complex expressions
  Bug 2916134: Atelier-B PP does not understand S /= {}
  Bug 2931450: editor extension - clause names defined in wrong element
  Bug 2934585: animB : impossible to start animation
  Bug 2937124: Symbol Table and Properties
  Bug 2937132: newPP unresponsive
  Bug 2940315: mod operator should be compatible with itself
  Bug 2940575: some fomulas are truncated
  Bug 2941496: NewPP outputs incorrect set of required Hypotheses
  Bug 2942182: unparsing then parsing gives a different expression
  Bug 2952134: conversion to mathematical symbols generates trailing spaces
  Bug 2952705: Progress bar running too fast
  Bug 2952758: Highlighting of bound variables
  Bug 2957980: Proof Skeleton View : \n displayed as squares
  Bug 2968560: Dependence of Explorer & eventb.ui
  Bug 2974867: Camille text editor -  doesn't allow non alphanumeric chars 
  Bug 2987749: Axioms in classtypes not quantified
  Bug 2988294: Nested elaborated transitions produce conflicting actions
  Bug 2997510: undo behaviour
  Bug 3005167: Inherited elements
  Bug 3005170: Becomes such that
  Bug 3005202: Renaming and provers
  Bug 3005204: Cumbersome popup
  Bug 3007792: Theorems in Guards - Syntax Error
  Bug 3007793: Issue with refines clauses of events 
  Bug 3009555: Search Hypothesis refresh
  Bug 3009838: Order of variables and invariants not preserved
  Bug 3014775: partition operator is not accepted by Camille 
  Bug 3019063: Error on Double Click
  Bug 3020776: Issue with indentation
  Bug 3022742: Problem with Software Sites
  Bug 3024811: Leaks in Event-B Explorer
  Bug 3027387: Proof simplification does not remove useless rules
  Bug 3052238: Saving failed caused by AssertionError in rebuild 
  Bug 3054228: Proof simplification too slow
  Bug 3075420: Unable to save project after renaming invariants
  Bug 3085129: Rename file and update occurrences can fail
  Bug 3086511: camille editor refuses to save
  Bug 3086755: Tacticals are not cancelable
  Bug 3102117: A theory with problems can be deployed nevertheless
  Bug 3102125: Deleting a deployed theory only removes the tuf file
  Bug 3106603: Theory plugin inherits unsoundness bug from rbp
  Bug 3106728: Unsoundness by wrong treatment of meta variables
  Bug 3106789: Rule based prover does not properly match set extensions
  Bug 3106792: RbP allows to generate theory with same name as a context 
  Bug 3112508: Camille can not be installed on Rodin 2.0.1
  Bug 3112539: Proof status after theory change
  Bug 3122147: newPP can't do modus ponens
  Bug 3126433: the parser accepts a+-1 
  Bug 3143114: translation
  Bug 3143508: inherited elements in default editor
  Bug 3150302: callability lost in refinement
  Bug 3150394: miscounted parameters
  Bug 3151189: inappropriate abstraction of a return value
  Bug 3151805: inconsistencies in importing of events
  Bug 3154319: Unacceptable handling of unsupported expressions
  Bug 3158594: Rodin 2.0.1 provers are unsound
  Bug 3164791: Error and missing page in help contents
  Bug 3166636: newPP unable to reason with finite definition
  Bug 3206302: Records plugin: sloppy type checking with nasty consequences
  Bug 3216967: No AtelierB tactics if user profiles before installation
  Bug 3234433: Internal name collisions
  Bug 3275889: Heterogenous cursors in proving GUI
  Bug 3275897: scrolling too slow in Search Hypothesis view
  Bug 3275902: Navigation in yellow boxes

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 insure 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 r11814

Developer Release date : 17/05/2011 (2.2RC1).

User Release date : 01/06/2011.