Theory Release History: Difference between revisions

From Event-B
Jump to navigationJump to search
imported>Im06r
Guillaume (talk | contribs)
Theory plug-in release 4.0.4
 
(38 intermediate revisions by 3 users not shown)
Line 4: Line 4:


===News===
===News===
* ''1st April 2022'': [[#Version_4.0.4|Version 4.0.4]] is released. It requires Rodin 3.5.
* ''29th September 2021'': [[#Version_4.0.3|Version 4.0.3]] is released. It requires Rodin 3.5.
* ''4th June 2021'': [[#Version_4.0.2|Version 4.0.2]] is released. It requires Rodin 3.5.
* ''22th December 2020'': [[#Version_4.0.1|Version 4.0.1]] is released. It requires Rodin 3.5.
* ''19th December 2014'': [[#Version_3.0.0|Version 3.0.o]] is released. It requires Rodin 3.1.
* ''10th July 2014'': [[#Version_2.0.2|Version 2.0.2]] is released. It requires Rodin 2.8.
* ''24th June 2014'': [[#Version_2.0.1|Version 2.0.1]] is released. It requires Rodin 2.8.
* ''30th April 2014'': [[#Version_2.0.0|Version 2.0.0]] is released. It requires Rodin 2.8. This release contains major changes in the features and accessibilities.
* ''20th April 2012'': [[#Version_1.3.2|Version 1.3.2]] is released. It requires Rodin 2.4.
* ''15th August 2011'': [[#Version_1.2|Version 1.2]] is released. It requires Rodin 2.2.2.
* ''6th August 2011'': [[#Version_1.1|Version 1.1]] is released. It requires Rodin 2.2.2.
* ''8th July 2011'': [[#Version_1.0|Version 1.0]] is released. It requires Rodin 2.2.
* ''22nd May 2011'': [[#Version_0.8|Version 0.8]] released. It is based on Rodin 2.1.1.
* ''22nd May 2011'': [[#Version_0.8|Version 0.8]] released. It is based on Rodin 2.1.1.
* ''11th April 2011'': [[#Version_0.7|Version 0.7]] released. It is based on Rodin 2.1.1.
* ''11th April 2011'': [[#Version_0.7|Version 0.7]] released. It is based on Rodin 2.1.1.
* ''6th January 2011'': [[#Version_0.6|Version 0.6]] released. It is based on Rodin 2.0.1.
* ''6th January 2011'': [[#Version_0.6|Version 0.6]] released. It is based on Rodin 2.0.1.
* ''10th November 2010'': [[#Version_1.0|Version 1.0]] is planned to be released Early 2011.
* ''28th October 2010'': [[#Version_0.5|Version 0.5]] released. It is based on Rodin 2.0.
* ''28th October 2010'': [[#Version_0.5|Version 0.5]] released. It is based on Rodin 2.0.


=== Installation & Update ===
===Releases===
===== Version 4.0.4 =====
''1st April 2022''
 
Release target: Rodin 3.5
* Bug fixes:
** Type annotations in theorem instantiations are correctly substituted
** Defining a commutative predicate operator does not cause an exception anymore
** The return type of axiomatic operators is correctly checked (beforehand, any syntactically valid type was accepted)
** A proof obligation is generated for the well-definedness condition of recursive operators
** Case expressions of recursive operators containing the same variable name twice are rejected (rather than silently failing)
* Feature requests:
** Theorems can be filtered by name in the theorem instantiation dialog
** The theorem instantiation dialog is now initialized with the project and context selected the last time the dialog was used
** When there is a single element in a combo box of the theorem instantiation dialog, it is selected by default
 
===== Version 4.0.3 =====
''29th September 2021''
 
Release target: Rodin 3.5
* Bug fixes:
** Operators that have parameters with the same name but different types are now handled correctly in both the editor and the prover (for rewriting the definition)
** Theorems instantiated during proof are now correctly typed (in some cases, some type information was missing)
 
===== Version 4.0.2 =====
''4th June 2021''
 
Release target: Rodin 3.5
* Bug fixes:
** Datatypes that have several type parameters are now serialized in the right order; it fixes some issues with proofs and proof replay.
** Manually applied inference and rewrite rules are now replayed correctly (in some cases, their replay was displayed as uncertain).
 
===== Version 4.0.1 =====
''22th December 2020''
 
Release target: Rodin 3.5
* Bug fixes:
** The theory plugin now takes into account updates in theories, as well as creating a theory after using it (there was a cache issue).
** The error messages at launch about rule-based provers failing to find the context of the proof have been removed.
** The dropdown list in theory imports is now usable (there was an off-by-one issue when selecting an element in the list).
** Manually applying an inference rule no longer throws a NullPointerException.
** It is now possible to rename theories.
** The TheoryPath creation dialog box has been simplified.
* Optimizations:
** The proving interface is now much more responsive, even when a theory contains a lot of rewrite rules (we have implemented a cache of the places where a rewrite rule can apply).
** The theory plugin now generates much simpler WD conditions, especially for the pred, succ, prj1, prj2, and id operators.
 
===== Version 4.0.0-RC1 =====
''10th April 2017''
 
Release target: Rodin 3.2
* AST Extensions (4.0.0) Major API change.
** Compatibility upgrade to Rodin 3.2
** Support for get operator position for INFIX extended predicate operators.
** Improve pattern matching for associative operators.
* Theory plug-in Branding (0.0.1) Initial version
* Theory Core (4.0.0) Internal implementation changes.
** Compatibility upgrade to Rodin 3.2
** Support for INFIX extended predicate operators.
** Various bugs fixed.
* Theory help (2.0.0) User documentations.
* Theory Keyboard (0.0.1) Initial version (A special plug-in for typesetting Theory).
** Support for typesetting Real arithmetics (plus, unary minus, multiply, divide, less than, less than or equal, greater than, greater than or equal).
* Theory Rule-based Prover (4.0.0)
** Reasoners' input does not contain the proof-obligation context.
** Use the current sequent's origin to get the proof-obligation context.
** Bug fixed: translate formula to ensure they have the same formula factory.
** Added version numbers for reasoners.
** Automatic rewrite and inference tactics are re-implemented so that each rule application is visible in proof trees.
* Theory UI (3.0.0)
 
===== Version 3.0.0 =====
''17th December 2014''
 
Release target : Rodin 3.1
* migration changes to Rodin 3.1
 
===== Version 2.0.2 =====
''10th July 2014''
 
Release target : Rodin 2.8
* bug fixes.
 
===== Version 2.0.1 =====
''24th June 2014''
 
Release target : Rodin 2.8
* bug fixes.
 
===== Version 2.0.0 =====
''30th April 2014''
 
Release target : Rodin 2.8
* Major changes in the usability.
* Important bug fixes.
 
===== Version 1.3.2 =====
''20th April 2012''
 
Release target : Rodin 2.4
* Important bug fixes.
* Improvement of deployment and un-deployment wizards
 
===== Version 1.2 =====
''15th August 2011''
 
Release target : Rodin 2.2.2
* Bug fixes.
* Added capability to instantiate multiple theorems at once.
* Added automatic tactic for expanding operator definitions RbPxd·


The installation or update for the Theory plug-in is available under the main Rodin Update site (http://rodin-b-sharp.sourceforge.net/updates) under the category "Modelling Extensions". Like always, after the installation, restarting Rodin is recommended.
===== Version 1.1 =====
''6th August 2011''


===User Manual===
Release target : Rodin 2.2.2
The user manual is available here, [http://wiki.event-b.org/images/Theory_UM.pdf Theory User Manual].
* Theory library first version.
* Bug fixes.
* Improved UI.
 
===== Version 1.0 =====
''8th July 2011''
 
Release target : Rodin 2.2
 
* Bug fixes.  
* Added import relationships between theories.  
* Added experimental support for recursive definitions.
* Improved project as well as workspace scope for mathematical and prover extensions.
* Added tactic (xd) to expand all definitions.
* Fixed support for polymorphic theorems.


===Releases===
===== Version 0.8 =====
===== Version 0.8 =====
''22nd May 2011''
''22nd May 2011''
Bug fixes. Added import relationships between theories. Added experimental support for recursive definitions.
 
Release target : Rodin 2.1.1
 
* Bug fixes.  
* Added import relationships between theories.  
* Added experimental support for recursive definitions.
* Added project as well as workspace scope for mathematical and prover extensions.


===== Version 0.7 =====
===== Version 0.7 =====
Line 37: Line 177:
This is the first release of the Theory plug-in with support for mathematical as well as prover extensions.
This is the first release of the Theory plug-in with support for mathematical as well as prover extensions.


===Worked Examples===
===Features Requests and Bugs===
In this section, you find examples of theories and models using theories. TODO Include examples ASAP.
Please do not hesitate to raise any issues with regards to usability as well as efficiency. Finally, please remember to report any bugs through the SourceForge portal.


===Features Requests and Bugs===
[[Category:Theory Plug-in]]
Please do not hesitate to raise any issues with regards to usability as well as bugs.
The following items are on the TODO list of Theory plug-in:
*Finalize AC/A pattern matching.
*Finalize support for forward inference rules.
*Improve backward inference and rewriting.
*D-library for generating D-WD conditions.
*Proof refactoring.
*Fixpoint definitions + recursive operators.
*Tactic to expand all extended formulae.
*A sizable case-study.
*More Documentation.
*Bug fixes (svn trackers).

Latest revision as of 13:50, 1 April 2022

Back to Theory Plug-in.

Follow this page for the latest on the Theory plug-in. The user manual is also provided together with the installation details.

News

  • 1st April 2022: Version 4.0.4 is released. It requires Rodin 3.5.
  • 29th September 2021: Version 4.0.3 is released. It requires Rodin 3.5.
  • 4th June 2021: Version 4.0.2 is released. It requires Rodin 3.5.
  • 22th December 2020: Version 4.0.1 is released. It requires Rodin 3.5.
  • 19th December 2014: Version 3.0.o is released. It requires Rodin 3.1.
  • 10th July 2014: Version 2.0.2 is released. It requires Rodin 2.8.
  • 24th June 2014: Version 2.0.1 is released. It requires Rodin 2.8.
  • 30th April 2014: Version 2.0.0 is released. It requires Rodin 2.8. This release contains major changes in the features and accessibilities.
  • 20th April 2012: Version 1.3.2 is released. It requires Rodin 2.4.
  • 15th August 2011: Version 1.2 is released. It requires Rodin 2.2.2.
  • 6th August 2011: Version 1.1 is released. It requires Rodin 2.2.2.
  • 8th July 2011: Version 1.0 is released. It requires Rodin 2.2.
  • 22nd May 2011: Version 0.8 released. It is based on Rodin 2.1.1.
  • 11th April 2011: Version 0.7 released. It is based on Rodin 2.1.1.
  • 6th January 2011: Version 0.6 released. It is based on Rodin 2.0.1.
  • 28th October 2010: Version 0.5 released. It is based on Rodin 2.0.

Releases

Version 4.0.4

1st April 2022

Release target: Rodin 3.5

  • Bug fixes:
    • Type annotations in theorem instantiations are correctly substituted
    • Defining a commutative predicate operator does not cause an exception anymore
    • The return type of axiomatic operators is correctly checked (beforehand, any syntactically valid type was accepted)
    • A proof obligation is generated for the well-definedness condition of recursive operators
    • Case expressions of recursive operators containing the same variable name twice are rejected (rather than silently failing)
  • Feature requests:
    • Theorems can be filtered by name in the theorem instantiation dialog
    • The theorem instantiation dialog is now initialized with the project and context selected the last time the dialog was used
    • When there is a single element in a combo box of the theorem instantiation dialog, it is selected by default
Version 4.0.3

29th September 2021

Release target: Rodin 3.5

  • Bug fixes:
    • Operators that have parameters with the same name but different types are now handled correctly in both the editor and the prover (for rewriting the definition)
    • Theorems instantiated during proof are now correctly typed (in some cases, some type information was missing)
Version 4.0.2

4th June 2021

Release target: Rodin 3.5

  • Bug fixes:
    • Datatypes that have several type parameters are now serialized in the right order; it fixes some issues with proofs and proof replay.
    • Manually applied inference and rewrite rules are now replayed correctly (in some cases, their replay was displayed as uncertain).
Version 4.0.1

22th December 2020

Release target: Rodin 3.5

  • Bug fixes:
    • The theory plugin now takes into account updates in theories, as well as creating a theory after using it (there was a cache issue).
    • The error messages at launch about rule-based provers failing to find the context of the proof have been removed.
    • The dropdown list in theory imports is now usable (there was an off-by-one issue when selecting an element in the list).
    • Manually applying an inference rule no longer throws a NullPointerException.
    • It is now possible to rename theories.
    • The TheoryPath creation dialog box has been simplified.
  • Optimizations:
    • The proving interface is now much more responsive, even when a theory contains a lot of rewrite rules (we have implemented a cache of the places where a rewrite rule can apply).
    • The theory plugin now generates much simpler WD conditions, especially for the pred, succ, prj1, prj2, and id operators.
Version 4.0.0-RC1

10th April 2017

Release target: Rodin 3.2

  • AST Extensions (4.0.0) Major API change.
    • Compatibility upgrade to Rodin 3.2
    • Support for get operator position for INFIX extended predicate operators.
    • Improve pattern matching for associative operators.
  • Theory plug-in Branding (0.0.1) Initial version
  • Theory Core (4.0.0) Internal implementation changes.
    • Compatibility upgrade to Rodin 3.2
    • Support for INFIX extended predicate operators.
    • Various bugs fixed.
  • Theory help (2.0.0) User documentations.
  • Theory Keyboard (0.0.1) Initial version (A special plug-in for typesetting Theory).
    • Support for typesetting Real arithmetics (plus, unary minus, multiply, divide, less than, less than or equal, greater than, greater than or equal).
  • Theory Rule-based Prover (4.0.0)
    • Reasoners' input does not contain the proof-obligation context.
    • Use the current sequent's origin to get the proof-obligation context.
    • Bug fixed: translate formula to ensure they have the same formula factory.
    • Added version numbers for reasoners.
    • Automatic rewrite and inference tactics are re-implemented so that each rule application is visible in proof trees.
  • Theory UI (3.0.0)
Version 3.0.0

17th December 2014

Release target : Rodin 3.1

  • migration changes to Rodin 3.1
Version 2.0.2

10th July 2014

Release target : Rodin 2.8

  • bug fixes.
Version 2.0.1

24th June 2014

Release target : Rodin 2.8

  • bug fixes.
Version 2.0.0

30th April 2014

Release target : Rodin 2.8

  • Major changes in the usability.
  • Important bug fixes.
Version 1.3.2

20th April 2012

Release target : Rodin 2.4

  • Important bug fixes.
  • Improvement of deployment and un-deployment wizards
Version 1.2

15th August 2011

Release target : Rodin 2.2.2

  • Bug fixes.
  • Added capability to instantiate multiple theorems at once.
  • Added automatic tactic for expanding operator definitions RbPxd·
Version 1.1

6th August 2011

Release target : Rodin 2.2.2

  • Theory library first version.
  • Bug fixes.
  • Improved UI.
Version 1.0

8th July 2011

Release target : Rodin 2.2

  • Bug fixes.
  • Added import relationships between theories.
  • Added experimental support for recursive definitions.
  • Improved project as well as workspace scope for mathematical and prover extensions.
  • Added tactic (xd) to expand all definitions.
  • Fixed support for polymorphic theorems.
Version 0.8

22nd May 2011

Release target : Rodin 2.1.1

  • Bug fixes.
  • Added import relationships between theories.
  • Added experimental support for recursive definitions.
  • Added project as well as workspace scope for mathematical and prover extensions.
Version 0.7

11th April 2011

Bug fixes. Fixed for Rodin 2.1.1.

Version 0.6

6th January 2011

Minor bug fixes and improvements to theories pretty printer.

Version 0.5

28th October 2010

This is the first release of the Theory plug-in with support for mathematical as well as prover extensions.

Features Requests and Bugs

Please do not hesitate to raise any issues with regards to usability as well as efficiency. Finally, please remember to report any bugs through the SourceForge portal.