Extension Proof Rules: Difference between revisions
From Event-B
Jump to navigationJump to search
imported>Nicolas m SIMP_MULTI_COND was implemented |
imported>Laurent mNo edit summary |
||
Line 3: | Line 3: | ||
Other conventions used in these tables are described in [[The_Proving_Perspective_%28Rodin_User_Manual%29#Rewrite_Rules]]. | Other conventions used in these tables are described in [[The_Proving_Perspective_%28Rodin_User_Manual%29#Rewrite_Rules]]. | ||
== Rewrite Rules == | === Rewrite Rules === | ||
{{RRHeader}} | {{RRHeader}} | ||
Line 12: | Line 12: | ||
== Inference Rules == | === Inference Rules === | ||
{{RRHeader}} | {{RRHeader}} | ||
{{RRRow}}| ||{{Rulename|DATATYPE_DISTINCT_CASE}}||<math>\frac{\textbf{H}, x=c_1(p_{11}, \ldots, p_{1k}) \;\;\vdash \;\; \textbf{G} \qquad \ldots \qquad \textbf{H}, x=c_n(p_{n1}, \ldots, p_{nl}) \;\;\vdash \;\; \textbf{G} }{ \textbf{H} \;\;\vdash\;\; \textbf{G} }</math>|| where <math>x</math> has a datatype <math>DT</math> as type and appears free in <math>\textbf{G}</math>, <math>DT</math> has constructors <math>c_1, \ldots, c_n</math>, parameters <math>p_{ij}</math> are introduced as fresh identifiers || M | {{RRRow}}| ||{{Rulename|DATATYPE_DISTINCT_CASE}}||<math>\frac{\textbf{H}, x=c_1(p_{11}, \ldots, p_{1k}) \;\;\vdash \;\; \textbf{G} \qquad \ldots \qquad \textbf{H}, x=c_n(p_{n1}, \ldots, p_{nl}) \;\;\vdash \;\; \textbf{G} }{ \textbf{H} \;\;\vdash\;\; \textbf{G} }</math>|| where <math>x</math> has a datatype <math>DT</math> as type and appears free in <math>\textbf{G}</math>, <math>DT</math> has constructors <math>c_1, \ldots, c_n</math>, parameters <math>p_{ij}</math> are introduced as fresh identifiers || M |
Revision as of 11:07, 10 November 2010
Rules that are marked with a * in the first column are implemented in the latest version of Rodin. Rules without a * are planned to be implemented in future versions. Other conventions used in these tables are described in The_Proving_Perspective_(Rodin_User_Manual)#Rewrite_Rules.
Rewrite Rules
Name | Rule | Side Condition | A/M | |
---|---|---|---|---|
* | SIMP_SPECIAL_COND_BTRUE |
A | ||
* | SIMP_SPECIAL_COND_BFALSE |
A | ||
* | SIMP_MULTI_COND |
A |
Inference Rules
Name | Rule | Side Condition | A/M | |
---|---|---|---|---|
DATATYPE_DISTINCT_CASE |
where has a datatype as type and appears free in , has constructors , parameters are introduced as fresh identifiers | M
| ||
DATATYPE_INDUCTION |
where has inductive datatype as type and appears free in ; are the inductive parameters (if any); an antecedent is created for every constructor of ; all parameters are introduced as fresh identifiers; examples here | M |