Difference between pages "B2Latex" and "Billaude's work to finish"

From Event-B
(Difference between pages)
Jump to navigationJump to search
imported>Tommy
 
imported>Billaude
(New section added (in order to replace the Membership Goal section))
 
Line 1: Line 1:
B2Latex is a plug-in for Rodin that allows you to export Event-B contexts and machines in Latex files that can then be further rendered.
+
This page is here to describe the work that I started, but which is yet to be finished.
  
Current Version : 0.5.3
+
= MembershipGoal =
  
== Installation/Upgrade ==
+
Here the rules that could be useful for the reasoner MembershipGoal.
The B2latex plugin or "Event-B to Latex exporter" is available from the Main Rodin update site.
 
Select the main Rodin Update site from the "work with:" field in the Help > Install New Software menu in Rodin.
 
  
== How to use B2Latex? ==
+
{| class="wikitable" style="text-align:center; width:80%;"
Righ click on a machine or a context directly from the project explorer and select 'Generate Latex Document' command to produce latex documents.
+
|+ Inference rules for the reasoner MembershipGoal
The latex docs are generated in the 'latex' folder in your Event-B project directory (i.e. ...\workspaceName\projectName\latex\*.tex) together
+
|-
with a style file named ''b2latex.sty''. bsymb.sty and b2latex.sty are required to process the latex.
+
! scope=col | Inference Rule
You can then run Latex on the source files using your own latex installation.
+
! scope=col | Side condition
 +
! scope=col | Implemented in the new version
 +
! scope=col | Implemented in the first version
 +
|-
 +
|align="left"|<math> x\in A,\;\; A\subseteq B\vdash x\in B </math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math> A\subset B\vdash A\subseteq B </math>
 +
|align="left"|
 +
|<math>\checkmark</math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math> A=B\vdash A\subseteq B</math>
 +
|align="left"|
 +
|<math>\checkmark</math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math> A=B\vdash B\subseteq A</math>
 +
|align="left"|
 +
|<math>\checkmark</math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math> A\subseteq B\vdash \dom(A)\subseteq\dom(B)</math>
 +
|align="left"|
 +
|<math>\checkmark</math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math> A\subseteq B\vdash \ran(A)\subseteq\ran(B)</math>
 +
|align="left"|
 +
|<math>\checkmark</math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math> x\in\dom(A\cprod B)\vdash x\in A</math>
 +
|align="left"|
 +
|<math>\checkmark</math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math> y\in\ran(A\cprod B)\vdash y\in B</math>
 +
|align="left"|
 +
|<math>\checkmark</math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math> x\mapsto y\in f\vdash x\in\dom(f)</math>
 +
|align="left"|
 +
|<math>\checkmark</math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math> x\mapsto y\in f\vdash y\in\ran(f)</math>
 +
|align="left"|
 +
|<math>\checkmark</math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math> \left\{a,\cdots,x,\cdots, z\right\}\subseteq A\vdash x\in A</math>
 +
|align="left"|
 +
|<math>\checkmark</math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math> f\ovl\cdots\ovl g\ovl\cdots\ovl h\subseteq A\vdash g\ovl\cdots\ovl h\subseteq A</math>
 +
|align="left"|
 +
|<math>\checkmark</math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math> f\in A\;op\;B\vdash f\subseteq A\cprod B</math>
 +
|align="left"|where <math>\mathit{op}</math> is one of <math>\rel</math>, <math>\trel</math>, <math>\srel</math>, <math>\strel</math>, <math>\pfun</math>, <math>\tfun</math>, <math>\pinj</math>, <math>\tinj</math>, <math>\psur</math>, <math>\tsur</math>, <math>\tbij</math>
 +
|<math>\checkmark</math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>e\subseteq f,\;\; f\setminus g\subseteq h\quad\vdash\quad e\setminus g\subseteq h</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>g\subseteq k,\;\; f\setminus g\subseteq h \quad\vdash\quad f\setminus k\subseteq h</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>e\subseteq f\setminus g,\;\; f\subseteq h\quad\vdash\quad e\subseteq h\setminus g</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>e\subseteq f\setminus g,\;\; k\subseteq g \quad\vdash\quad e\subseteq f\setminus k</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>e\subseteq f,\;\; f\ranres B\subseteq g \quad\vdash\quad e\ranres B\subseteq g</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>A\subseteq B ,\;\; f\ranres B\subseteq g \quad\vdash\quad f\ranres A\subseteq g</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>f\subseteq g\ranres A ,\;\; g\subseteq h \quad\vdash\quad f\subseteq h\ranres A</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>f\subseteq g\ranres A ,\;\; A\subseteq B \quad\vdash\quad f\subseteq g\ranres B</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>A\subseteq B ,\;\; B\domres f\subseteq g \quad\vdash\quad A\domres f\subseteq g</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>e\subseteq f ,\;\; B\domres f\subseteq g \quad\vdash\quad B\domres e\subseteq g</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>f\subseteq A\domres g ,\;\; A\subseteq B \quad\vdash\quad f\subseteq B\domres g</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>f\subseteq A\domres g ,\;\; g\subseteq h \quad\vdash\quad f\subseteq A\domres h</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>e\subseteq f ,\;\; f\ransub A\subseteq g \quad\vdash\quad e\ransub A\subseteq g</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>f\ransub A\subseteq g ,\;\; A\subseteq B \quad\vdash\quad f\ransub B\subseteq g</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>f\subseteq g\ransub A ,\;\; g\subseteq h \quad\vdash\quad f\subseteq h\ransub A</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>f\subseteq g\ransub B ,\;\; A\subseteq B \quad\vdash\quad f\subseteq g\ransub A</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>A\domsub f\subseteq g ,\;\; A\subseteq B \quad\vdash\quad B\domsub f\subseteq g</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>e\subseteq f ,\;\; A\domsub f\subseteq g \quad\vdash\quad A\domsub e\subseteq g</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>A\subseteq B ,\;\; f\subseteq B\domsub g \quad\vdash\quad f\subseteq A\domsub g</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>f\subseteq A\domsub g ,\;\; g\subseteq h \quad\vdash\quad f\subseteq A\domsub h</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>e\subseteq f ,\;\; f\ovl g\ovl\cdots\ovl h\subseteq k \quad\vdash\quad e\ovl g\ovl\cdots\ovl h\subseteq k</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>f\subseteq g\ovl h\ovl\cdots\ovl k ,\;\; e\subseteq g \quad\vdash\quad f\subseteq e\ovl h\ovl\cdots\ovl k</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>Z\subseteq B,\;\; A\bunion\cdots\bunion B\bunion\cdots\bunion C\subseteq D\quad\vdash\quad A\bunion\cdots\bunion Z\bunion\cdots\bunion C\subseteq D</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>B\subseteq Z ,\;\; D\subseteq A\bunion\cdots\bunion B\bunion\cdots\bunion C \quad\vdash\quad D\subseteq A\bunion\cdots\bunion Z\bunion\cdots\bunion C</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>Z\subseteq B,\;\; A\binter\cdots\binter B\binter\cdots\binter C\subseteq D\quad\vdash\quad A\binter\cdots\binter Z\binter\cdots\binter C\subseteq D</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>B\subseteq Z ,\;\; D\subseteq A\binter\cdots\binter B\binter\cdots\binter C \quad\vdash\quad D\subseteq A\binter\cdots\binter Z\binter\cdots\binter C</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>A\subseteq B,\;\; B\cprod D\subseteq E \quad\vdash\quad A\cprod D\subseteq E</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>C\subseteq D,\;\; B\cprod D\subseteq E \quad\vdash\quad B\cprod C\subseteq E</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>A\subseteq B\cprod D,\;\; B\subseteq C \quad\vdash\quad A\subseteq C\cprod D</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>A\subseteq B\cprod D,\;\; D\subseteq E\quad\vdash\quad A\subseteq B\cprod E</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>\dom(f\domres\prjone)\defi f</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>\dom(f\domres\prjtwo)\defi f</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>\dom(f\domres\id)\defi f</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>\ran(\prjone\ranres f)\defi f</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>\ran(\prjtwo\ranres f)\defi f</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>\ran(\id\ranres f)\defi f</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>\ran(f\domres\prjone)\defi\dom(f)</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>\ran(f\domres\prjtwo)\defi\ran(f)</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|align="left"|<math>\ran(f\domres\id)\defi f</math>
 +
|align="left"|
 +
|<math></math>
 +
|<math>\checkmark</math>
 +
|-
 +
|}
  
bsymb.sty can be dowloaded from http://www.event-b.org or https://sourceforge.net/projects/rodin-b-sharp/files/Doc_%20Event%20B%20LaTeX%20style/1.9/
+
This describe the rule that I implemented in the first version of MembershipGoal. Others should also be taken into account (they will be written later). Even if those rule have been checked, they may not be implemented in the reasoner since some can explode the time research.
== News? ==
 
The B2Latex 0.5.3 is now available from the Rodin update site. It is compatible with Rodin 2.4 and Rodin 2.5.
 
Since B2Latex 0.5.1, the command to export files has been moved to the Event-B project explorer. Users can select a machine or a context to produce latex documents directly from
 
the project explorer by pressing right click and then select menu 'Generate Latex Document' on the component of their choice. The latex documents are generated in the 'latex' folder like it was done in other previous releases.
 
  
== Tips ==
+
= Membership Goal Exhaustive rules =
  
- If you wish to have math formulas or B code in a comment, you need to put them in $..$.
+
To be completed ...
  
- The file ''b2latex.sty'' which is generated in the ''latex'' directory can be modified to change the style of the documentation.
+
= Autorewriter =
  
- To avoid copying ''bsymb.sty'' to every folder where it is used, please follow the procedure below:
+
In the AutorewriterL3, some re-writing about <math>\usucc</math> and <math>\upred</math> are proceeded. But, more re-writing should be done. Unfortunately, I did not take too much time to analyze all the possibilities about this two functions <math>\left(\finite(\usucc) = \bfalse,\;\cdots\right)</math>.
  (If you have used MikTex)
 
  (1) copy the bsmb.sty file into the MikTex directory
 
      (somewhere like C:\Program Files\MiKTeX 2.7\tex\latex),
 
  (2) select start -> program -> MikTex 2.x -> setting.
 
      You will see a dialog box "MikTeX Options".
 
  (3) Select "General" tab and then click "Refresh FNDB" to update to the miktex database.
 
 
 
  This process makes the bsymb.sty can be used everywhere without copying to any folders.
 
  
== Old releases ==
+
Nevertheless, one trail has been explored : instead of re-writing <math>\usucc(x) = x+1</math>, we may should better re-write : <math>\left(\lambda x\qdot\btrue\mid x+1\right)</math>.
B2Latex 0.5.0, is now available from the Rodin update site.
 
This release is for the Rodin 0.9.2.x or higher.  
 
  
B2Latex 0.4.1 is required for the Rodin 0.9.1.
+
Moreover, since <math>\upred\defi\usucc^{-1}</math>, instead of re-writing <math>\usucc^{-1}\defi\left(\lambda x\qdot\btrue\mid x+1\right)^{-1}\defi\left\{a\qdot\btrue\mid a-1\mapsto a\right\}</math> (the last re-writing is proceeded by the auto-rewriter, and is not really easy to read), I think that we should re-write <math>\usucc^{-1}\defi\left(\lambda x\qdot\btrue\mid x-1\right)</math>.
If you want to use the Rodin 0.8.x, you need to install the release 0.3.0 instead.
 
  
''How to use old versions?''
+
= Others Feature Requests =
After installation, releases 0.3.x up to 0.5.0, you will see an LX entry in the context menu in the Event-B perspective.
 
Select the Machine or Context you want to translate to Latex and then press the LX button.
 
A latex source file will be generated in a folder named ''latex''
 
in your Event-B project directory (i.e. ...\workspaceName\projectName\latex\*.tex) together
 
with a style file named ''b2latex.sty''. bsymb.sty and b2latex.sty are required to process the latex.
 
Run latex on the source files using your own latex installation.
 
  
bsymb.sty can be dowloaded from http://www.event-b.org or http://sourceforge.net/projects/rodin-b-sharp/
+
The feature request #2887264 should also be treated.
  
 
+
[[Category:Design proposal]]
[[Category:User documentation]]
 
[[Category:Plugin]]
 

Latest revision as of 11:50, 26 February 2013

This page is here to describe the work that I started, but which is yet to be finished.

MembershipGoal

Here the rules that could be useful for the reasoner MembershipGoal.

Inference rules for the reasoner MembershipGoal
Inference Rule Side condition Implemented in the new version Implemented in the first version
 x\in A,\;\; A\subseteq B\vdash x\in B \checkmark
 A\subset B\vdash A\subseteq B \checkmark \checkmark
 A=B\vdash A\subseteq B \checkmark \checkmark
 A=B\vdash B\subseteq A \checkmark \checkmark
 A\subseteq B\vdash \dom(A)\subseteq\dom(B) \checkmark \checkmark
 A\subseteq B\vdash \ran(A)\subseteq\ran(B) \checkmark \checkmark
 x\in\dom(A\cprod B)\vdash x\in A \checkmark \checkmark
 y\in\ran(A\cprod B)\vdash y\in B \checkmark \checkmark
 x\mapsto y\in f\vdash x\in\dom(f) \checkmark \checkmark
 x\mapsto y\in f\vdash y\in\ran(f) \checkmark \checkmark
 \left\{a,\cdots,x,\cdots, z\right\}\subseteq A\vdash x\in A \checkmark \checkmark
 f\ovl\cdots\ovl g\ovl\cdots\ovl h\subseteq A\vdash g\ovl\cdots\ovl h\subseteq A \checkmark \checkmark
 f\in A\;op\;B\vdash f\subseteq A\cprod B where \mathit{op} is one of \rel, \trel, \srel, \strel, \pfun, \tfun, \pinj, \tinj, \psur, \tsur, \tbij \checkmark \checkmark
e\subseteq f,\;\; f\setminus g\subseteq h\quad\vdash\quad e\setminus g\subseteq h \checkmark
g\subseteq k,\;\; f\setminus g\subseteq h \quad\vdash\quad f\setminus k\subseteq h \checkmark
e\subseteq f\setminus g,\;\; f\subseteq h\quad\vdash\quad e\subseteq h\setminus g \checkmark
e\subseteq f\setminus g,\;\; k\subseteq g \quad\vdash\quad e\subseteq f\setminus k \checkmark
e\subseteq f,\;\; f\ranres B\subseteq g \quad\vdash\quad e\ranres B\subseteq g \checkmark
A\subseteq B ,\;\; f\ranres B\subseteq g \quad\vdash\quad f\ranres A\subseteq g \checkmark
f\subseteq g\ranres A ,\;\; g\subseteq h \quad\vdash\quad f\subseteq h\ranres A \checkmark
f\subseteq g\ranres A ,\;\; A\subseteq B \quad\vdash\quad f\subseteq g\ranres B \checkmark
A\subseteq B ,\;\; B\domres f\subseteq g \quad\vdash\quad A\domres f\subseteq g \checkmark
e\subseteq f ,\;\; B\domres f\subseteq g \quad\vdash\quad B\domres e\subseteq g \checkmark
f\subseteq A\domres g ,\;\; A\subseteq B \quad\vdash\quad f\subseteq B\domres g \checkmark
f\subseteq A\domres g ,\;\; g\subseteq h \quad\vdash\quad f\subseteq A\domres h \checkmark
e\subseteq f ,\;\; f\ransub A\subseteq g \quad\vdash\quad e\ransub A\subseteq g \checkmark
f\ransub A\subseteq g ,\;\; A\subseteq B \quad\vdash\quad f\ransub B\subseteq g \checkmark
f\subseteq g\ransub A ,\;\; g\subseteq h \quad\vdash\quad f\subseteq h\ransub A \checkmark
f\subseteq g\ransub B ,\;\; A\subseteq B \quad\vdash\quad f\subseteq g\ransub A \checkmark
A\domsub f\subseteq g ,\;\; A\subseteq B \quad\vdash\quad B\domsub f\subseteq g \checkmark
e\subseteq f ,\;\; A\domsub f\subseteq g \quad\vdash\quad A\domsub e\subseteq g \checkmark
A\subseteq B ,\;\; f\subseteq B\domsub g \quad\vdash\quad f\subseteq A\domsub g \checkmark
f\subseteq A\domsub g ,\;\; g\subseteq h \quad\vdash\quad f\subseteq A\domsub h \checkmark
e\subseteq f ,\;\; f\ovl g\ovl\cdots\ovl h\subseteq k \quad\vdash\quad e\ovl g\ovl\cdots\ovl h\subseteq k \checkmark
f\subseteq g\ovl h\ovl\cdots\ovl k ,\;\; e\subseteq g \quad\vdash\quad f\subseteq e\ovl h\ovl\cdots\ovl k \checkmark
Z\subseteq B,\;\; A\bunion\cdots\bunion B\bunion\cdots\bunion C\subseteq D\quad\vdash\quad A\bunion\cdots\bunion Z\bunion\cdots\bunion C\subseteq D \checkmark
B\subseteq Z ,\;\; D\subseteq A\bunion\cdots\bunion B\bunion\cdots\bunion C \quad\vdash\quad D\subseteq A\bunion\cdots\bunion Z\bunion\cdots\bunion C \checkmark
Z\subseteq B,\;\; A\binter\cdots\binter B\binter\cdots\binter C\subseteq D\quad\vdash\quad A\binter\cdots\binter Z\binter\cdots\binter C\subseteq D \checkmark
B\subseteq Z ,\;\; D\subseteq A\binter\cdots\binter B\binter\cdots\binter C \quad\vdash\quad D\subseteq A\binter\cdots\binter Z\binter\cdots\binter C \checkmark
A\subseteq B,\;\; B\cprod D\subseteq E \quad\vdash\quad A\cprod D\subseteq E \checkmark
C\subseteq D,\;\; B\cprod D\subseteq E \quad\vdash\quad B\cprod C\subseteq E \checkmark
A\subseteq B\cprod D,\;\; B\subseteq C \quad\vdash\quad A\subseteq C\cprod D \checkmark
A\subseteq B\cprod D,\;\; D\subseteq E\quad\vdash\quad A\subseteq B\cprod E \checkmark
\dom(f\domres\prjone)\defi f \checkmark
\dom(f\domres\prjtwo)\defi f \checkmark
\dom(f\domres\id)\defi f \checkmark
\ran(\prjone\ranres f)\defi f \checkmark
\ran(\prjtwo\ranres f)\defi f \checkmark
\ran(\id\ranres f)\defi f \checkmark
\ran(f\domres\prjone)\defi\dom(f) \checkmark
\ran(f\domres\prjtwo)\defi\ran(f) \checkmark
\ran(f\domres\id)\defi f \checkmark

This describe the rule that I implemented in the first version of MembershipGoal. Others should also be taken into account (they will be written later). Even if those rule have been checked, they may not be implemented in the reasoner since some can explode the time research.

Membership Goal Exhaustive rules

To be completed ...

Autorewriter

In the AutorewriterL3, some re-writing about \usucc and \upred are proceeded. But, more re-writing should be done. Unfortunately, I did not take too much time to analyze all the possibilities about this two functions \left(\finite(\usucc) = \bfalse,\;\cdots\right).

Nevertheless, one trail has been explored : instead of re-writing \usucc(x) = x+1, we may should better re-write : \left(\lambda x\qdot\btrue\mid x+1\right).

Moreover, since \upred\defi\usucc^{-1}, instead of re-writing \usucc^{-1}\defi\left(\lambda x\qdot\btrue\mid x+1\right)^{-1}\defi\left\{a\qdot\btrue\mid a-1\mapsto a\right\} (the last re-writing is proceeded by the auto-rewriter, and is not really easy to read), I think that we should re-write \usucc^{-1}\defi\left(\lambda x\qdot\btrue\mid x-1\right).

Others Feature Requests

The feature request #2887264 should also be treated.