Extension Proof Rules
From Event-B
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 x has a datatype DT as type and appears free in , DT has constructors , parameters pij are introduced as fresh identifiers | M
|
| * | DATATYPE_INDUCTION | ![]() | where x has inductive datatype DT as type and appears free in ; are the inductive parameters (if any); an antecedent is created for every constructor ci of DT; all parameters are introduced as fresh identifiers; examples here | M |




,
, parameters 
;
are the inductive parameters (if any); an antecedent is created for every constructor 