Rodin Platform 1.3 Release Notes
From Event-B
What's New in Rodin 1.3?
- General Interface
- Error log view is now available among the other General views. It is accessible through Window > Show view > Other... and shows the contents of the log file. This provides very useful informations to developers for correcting bugs, and is intended to be copy/pasted by users when posting bug reports.
- Modelling
- New in component popup menu. "New Event-B Project" and "New Event-B Component" wizards have been added to the "New" context menu of the Event-B Explorer. Right-clicking in a blank part or on a project in the Event-B Explorer, a popup appears; then in the "New" section, these two actions are proposed. The wizards are those that also appear when clicking the buttons at the top of the Event-B Explorer, or through File > New.
- New preference/properties mechanism. A new preference/properties mechanism to handle and use prefix settings. It is now possible to set prefixes for a workspace scope or a project scope. Prefix settings are extended automatically by editor contributions.
- See also: Customize Prefixes
- Building
- Direct children processing only. The builder now only processes direct children of project. Files located in subfolders are ignored.
- Proving
- The simplification rewrites tactic has been fixed: a clean has to be performed on all projects. Many proofs use this tactic and will be marked as broken, but correct ones will replay successfully (see next item).
- A new "Replay Proof" command. Right-clicking any element in the Event-B Explorer shows the contextual menu, which contains a new command "Proof Replay on Undischarged POs" next to "Retry Auto Provers" and "Recalculate Auto Status".
- See also: Proof Obligation Commands
- NewPP. Changed the name displayed in proofs to "NewPP" to avoid ambiguity with "PP". It used to be displayed as "Predicate Prover".
- Changes for plugin-developers
- Added the origin of predicates in a proof. In the sequent of the root node of a IProofTree, the IAxiom, IInvariant, ..., a predicate (hypothesis or goal) comes from can be fetched through the origin of its source location.
- For instance: proofTree.getRoot().getSequent().goal().getSourceLocation().getOrigin()
- Knowing nature of proof obligations. The nature of a proof obligation (Theorem, Well-Definedness, Invariant Preservation, ...) can be known from a IPOSequent.
- See IPOGNature and IPOSequent#getPOGNature().
- NewPP Plug-in. The newPP tactic has been published. See PPCore#newPP()
- Added ExplorerPlugin#getSelectedStatuses(). Added a function ExplorerPlugin#getSelectedStatuses() to get the PS elements under the current explorer selection.
- Extensible pretty print. It is now possible to extend the pretty print page with the same kind of mechanism used to extend the structured editor.
- See also: Extending the Pretty Print Page
Requirements
- It is recommended to run the Rodin platform with a Java 1.5 Runtime Environment.
- Only a 32-bit version of the Rodin platform is provided. Some optional libraries dedicated to 32-bit support may be required in order to run it on a 64-bit OS. Moreover, you will have to install a 32-bit Java Virtual Machine (JVM), and then to set the -vm option to make sure that Rodin is run with the correct JVM.
- eg. /usr/local/rodin/rodin -vm /usr/lib/jvm/ia32-java-1.5.0-sun/bin/java (You have to adjust paths to your system.)
External plug-ins
TODO: Describe here the available plug-ins, and the supported versions for this release.
- UML-B - Statemachine Animation (version 0.1.3)
- UML-B (version 1.0.1)
- Camille Editor (version 1.1.4)
- Shared Event Composition plug-in (version 1.1.5)
- Refactory plug-in (version 0.0.6)
- Records Extension (version 0.2.0.beta)
B Method Update Site
Downloading
Bugs Fixed and Feature Requests Implemented
Bug 1813657: Refactoring menu is not related to refactoring Bug 1818464: Trivial PO does not discharge Bug 1897572: Error in Proof Obligation Generator Bug 1919546: P1,PP,M0-M3 not available as post tactic Bug 1948095: importing existing projects Bug 2414463: Builder called on non-Rodin files Bug 2433212: Poor performance under KDE Bug 2648946: Predicate Provers (newPP, P0) unable to discharge simple PO Bug 2656831: saving proofs does not always work Bug 2694492: proB widget do not display on second proB launch Bug 2744052: NullPointerException in Builder on cyclic refinement Bug 2782126: Your platform does not support SWT Browser widget. Bug 2827806: Zombie files in buffer Bug 2836774: Text Editor unable to save (exception) Bug 2844797: The Proof Skeleton View does not adapt to the container Bug 2895507: MH and other rules are ill-defined Bug 2945276: Rodin keyboard view displayed untimely Bug 2952087: Rodin 1.2 reuses erroneous Rodin 1.1 proof Bug 2952090: when renaming a context, the proofs are gone Bug 2952143: EB-Editor refuses to save Bug 2952959: Disabling auto-provers doesn't work Bug 2958878: Associative Predicate does not accept <=> Bug 2961115: Pipe as internal name Bug 2961857: p ∈ dom(prj1) causes internal error in New PP Bug 2962503: PPTrans throws NPE Bug 2962688: Clean with AutoProve on works the second time Bug 2964353: Rule based prover does not properly match set extensions. Bug 2964360: unsound inference rule Bug 2976578: Invalid Thread Access in EventB Editor Manager Bug 2977104: Editors still opened when deleting a project Bug 2987050: Incoherences in proof statistics Bug 2988112: Plugin not found on ProB update site Bug 2990491: SM animation sub-folder breaks navigator for UML-B projects
FR 1834561: auto-provers on discharged proof obligations FR 1834715: Interactively proving A <<: B FR 1834725: copy and paste FR 2543189: Rename proof file together with component FR 2682079: Renaming issue FR 2822916: How to add proof rules FR 2891163: One Point on reversed equality FR 2926238: extensible pretty print etc. FR 2942210: Make SC symbolFactory visible FR 2942231: provide child creation in attribute manipulator FR 2949606: Add a replay proof command in event-B explorer FR 2952709: Meaning of Retry auto-provers / Recalculate auto-status FR 2979236: oftype everywhere FR 2979325: Make symbolTable classes visible FR 2979446: using a newly deployed theory without restart FR 2990974: Error Log
Known Issues
- Early releases of XULRunner 1.9.1 may cause an SWT exception that prevents from opening an editor (as well as any browser-based ui component). More recent releases fix this bug (works fine with xulrunner-1.9.1.7). Alternatively, it is possible to specify XULRunner path to point to 1.9.0: edit "rodin.ini" and add the following line:
-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner-1.9.0.14
where "/usr/lib/xulrunner-1.9.0.14" must be replaced with your actual XULRunner 1.9.0 installation directory.
- A warning like the following one is displayed to the standard output when platform starts on GNOME desktop:
(rodin:17254): GLib-WARNING **: g_set_prgname() called multiple times
- It's a GNOME bug, referenced at: [[1]]
- The error log shows the following problem:
org.osgi.framework.BundleException: The bundle could not be resolved. Reason: Missing Constraint: Import-Package: org.eclipse.equinox.internal.util.event; version="1.0.0" at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1313) ...
- It's an Eclipse 3.5 bug. Information found there: [[2]]
- The list of the currently open bugs is given below:
Bug 1441596: Tool conflicts caused by identically named files Bug 1737819: WD properties are not fully propagated Bug 1766826: Error messages from math parser incomprehensible Bug 1824177: B4free prover translation for <<-> fails Bug 1841129: Incorrect proof status Bug 1949927: newPP is too sensitive to unused hyps Bug 1954442: Too many handles used by Edit page on Windows Bug 2082375: input file write-protection a problem to Rodin Bug 2105507: too difficult to work with explicit set expressions Bug 2174629: No PO generated for unrefined event Bug 2371318: Unable to apply equality from left to right Bug 2510307: Proof information window empty for grd/WD Bug 2531738: RODIN crash adding text to note or text box in class diagram Bug 2573332: Long formulas get truncated Bug 2630205: reasoning with "finite" clause 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 2844786: Invisible icons in Proof Control coolbar Bug 2844813: Turnstile unicode character Bug 2869663: Changing the font in the pretty print view Bug 2871281: Bad display of marked math symbols Bug 2871290: Comments are still editable in a generated model Bug 2882318: Error while entering symbol from symbol table Bug 2883199: Fix "new" actions Bug 2886026: "Overflow" in partition rewriting Bug 2893782: error when building new project with a context Bug 2894645: Error on context named "axioms" Bug 2900427: Event-B keyboard does not translate "or" 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 2949652: Event-B editor doesn't refresh Bug 2952091: newPP is unsound Bug 2952134: conversion to mathematical symbols generates trailing spaces Bug 2952645: Unable to parse || Bug 2952705: Progress bar running too fast Bug 2952758: Highlighting of bound variables Bug 2957980: Proof Skeleton View : \n displayed as squares Bug 2958877: {1 | true} --> Error Running Tool Bug 2964346: RBP: illegal theory directory leads to strange behaviour Bug 2964350: RBP allows to generate theory with same name as a context Bug 2964359: Rule based prover allows me to define unsound rule Bug 2968560: Dependence of Explorer & eventb.ui Bug 2974863: Camille text editor - Class cast exception when saving a sm Bug 2974867: Camille text editor - doesn't allow non alphanumeric chars Bug 2979365: Auto completion in wizards Bug 2979444: Matching ; Bug 2987749: Axioms in classtypes not quantified Bug 2988294: Nested elaborated transitions produce conflicting actions Bug 2989932: SM translation flow-down buttons KO Bug 2990934: UML-B Cannot add statemachines to refined Class Bug 2991364: Project explorer jumps to first element
- The list of the currently open bugs is given below:
FR 1402874: SC: constant machine invariants, theorems, and guards FR 1469740: Add information on the splash screen FR 1581775: Preference for auto-provers FR 1585072: Labels which display the same FR 1592551: Sorting guards, events when adding it FR 1592565: Undo/Redo -- Conserving old stuff FR 1595966: Sequence types FR 1596879: Systematic deletion of derived resources FR 1609286: A single button to delete all empty var's, guards and action FR 1630595: Deletion of related elements FR 1664082: Printing FR 1689028: Abstract expression command FR 1729169: Traduction des messages FR 1733653: Witnesses for FIS POs FR 1737015: Inheriting events in Outline FR 1737333: Refines button FR 1777260: Propagation of changes FR 1777262: statemachine transition naming FR 1777263: comment out eventB statements / UMLB FR 1777265: comment on specific variable (etc) in UMLB FR 1777268: refinement by statemachine FR 1777274: refinement by statemachine FR 1779366: umlb - integrated roundtrip engineering FR 1779420: error messages FR 1793844: Decomposition Support FR 1793869: Proof Display/PrettyPrint FR 1794833: B to C translation FR 1798603: Recomposition Support FR 1811398: Better default witness FR 1811619: Hierarchy View FR 1828319: Renaming constants and variables FR 1841787: case distinction at an earlier point FR 1866801: Having one up/down button next to keyword in Edit Page FR 1866804: Undo in Proof FR 1902598: Re: proof of x : dom(expression) FR 1947658: Automatic simplification for membership FR 1968032: ISCEvent class needs isInherited method FR 2000805: expand the model components in a shorter duration FR 2018737: Provide reasoner for pred and succ FR 2019655: Project based settings for provers FR 2032817: Copy & Paste FR 2041493: extended class types FR 2042920: editing proofs before copy/pasting them FR 2046282: choose the name of the variable ... FR 2060085: Support for exponentiation FR 2075318: Additional support of card and finite FR 2115637: add more criterias for looking for invariant properties FR 2130277: more support to multiplication FR 2139994: availability status of "build project" button menu FR 2140171: Use of key-word "finite" incompatible with use of animator FR 2154812: Proof obligation view does not display extended elements FR 2154814: Editor should display extended elements FR 2226159: management of no longer used constants in models FR 2254737: search for words only FR 2254761: double clicking should select full identifier (including _) FR 2392103: non-emptiness of a set of total functions FR 2430736: Simplification with dom/ran restriction/subtraction FR 2510206: Priorities on builder tasks. FR 2571735: Add a refactor option for renaming Event-B elements FR 2572371: Global check - Verify refinement of anticipated events FR 2605012: manually prooving while building FR 2629813: No mean to witness several linked variables at once FR 2672783: animation of ":|" FR 2682114: Having an extra row in "statistics view†FR 2682144: Import facility in the “statistics view†FR 2682154: Using Double digits for labelling FR 2685484: Allow submitting bug reports from platform FR 2686302: Uniform event storage in database FR 2721983: Search and replace in event-B editor FR 2740289: Suggest witness labels FR 2744212: A nice unicode symbole for ~ FR 2764848: New complex context provider FR 2793244: Make legibility check optional FR 2806192: 'Link with Editor' button FR 2820268: rewrite rules for NAT1 FR 2845632: Arithmetic Prover Rules for distributivity FR 2849077: Prover support for expanding d : S x T FR 2864928: be able to change the event name FR 2871880: Decorator for warnings in Event-B explorer FR 2887264: rules about projection FR 2894692: Integer Rules FR 2903740: Event Hierarchy Navigation FR 2922258: Launch prover(s) automatically on added hypothesis FR 2922263: Simplifying relational image FR 2922269: Proving r1 \/ r2 : E <-> F FR 2922308: Bijection and cardinality FR 2922314: Proof by case for <= FR 2922318: <= and >= to get = FR 2932968: (NAVIGATOR) Carrier Sets sb "higher" FR 2936413: auto scroll while selecting text FR 2942197: Generic Navigator Node FR 2942199: Navigator Label Provider - extensible FR 2942201: make utils visible FR 2942216: Make SC module base classes visible FR 2946976: Post-tactic eh is too greedy FR 2954917: Too many logs for unknown element types FR 2979367: Auto completion in Proof Control FR 2990197: Theorem labels FR 2990497: Provide Rename feature for UML-B Projects