Relation Rewrite Rules
From Event-B
| Name | Rule | Side Condition | A/M | |
|---|---|---|---|---|
| * | SIMP_DOM_COMPSET | ![]() |
A | |
| * | SIMP_DOM_CONVERSE | ![]() |
A | |
| * | SIMP_RAN_COMPSET | ![]() |
A | |
| * | SIMP_RAN_CONVERSE | ![]() |
A | |
| * | SIMP_SPECIAL_OVERL | ![]() |
A | |
| * | SIMP_MULTI_OVERL | ![]() |
A | |
| * | SIMP_TYPE_OVERL_CPROD | ![]() |
where is a type expression |
A |
| SIMP_SPECIAL_DOMRES_L | ![]() |
A | ||
| SIMP_SPECIAL_DOMRES_R | ![]() |
A | ||
| * | SIMP_TYPE_DOMRES | ![]() |
where is a type expression |
A |
| * | SIMP_MULTI_DOMRES_DOM | ![]() |
A | |
| * | SIMP_MULTI_DOMRES_RAN | ![]() |
A | |
| * | SIMP_DOMRES_ID | ![]() |
A | |
| SIMP_SPECIAL_RANRES_R | ![]() |
A | ||
| SIMP_SPECIAL_RANRES_L | ![]() |
A | ||
| * | SIMP_TYPE_RANRES | ![]() |
where is a type expression |
A |
| * | SIMP_MULTI_RANRES_RAN | ![]() |
A | |
| * | SIMP_MULTI_RANRES_DOM | ![]() |
A | |
| * | SIMP_RANRES_ID | ![]() |
A | |
| SIMP_SPECIAL_DOMSUB_L | ![]() |
A | ||
| SIMP_SPECIAL_DOMSUB_R | ![]() |
A | ||
| * | SIMP_TYPE_DOMSUB | ![]() |
where is a type expression |
A |
| * | SIMP_MULTI_DOMSUB_DOM | ![]() |
A | |
| * | SIMP_DOMSUB_ID | ![]() |
A | |
| SIMP_SPECIAL_RANSUB_R | ![]() |
A | ||
| SIMP_SPECIAL_RANSUB_L | ![]() |
A | ||
| * | SIMP_TYPE_RANSUB | ![]() |
where is a type expression |
A |
| * | SIMP_MULTI_RANSUB_RAN | ![]() |
A | |
| * | SIMP_RANSUB_ID | ![]() |
A | |
| SIMP_SPECIAL_FCOMP | ![]() |
A | ||
| * | SIMP_TYPE_FCOMP_ID | ![]() |
where is a type expression |
A |
| * | SIMP_TYPE_FCOMP_R | ![]() |
where is a type expression equal to ![]() |
A |
| * | SIMP_TYPE_FCOMP_L | ![]() |
where is a type expression equal to ![]() |
A |
| * | SIMP_FCOMP_ID | ![]() |
A | |
| SIMP_SPECIAL_BCOMP | ![]() |
A | ||
| * | SIMP_TYPE_BCOMP_ID | ![]() |
where is a type expression |
A |
| * | SIMP_TYPE_BCOMP_L | ![]() |
where is a type expression equal to ![]() |
A |
| * | SIMP_TYPE_BCOMP_R | ![]() |
where is a type expression equal to ![]() |
A |
| * | SIMP_BCOMP_ID | ![]() |
A | |
| SIMP_SPECIAL_DPROD_R | ![]() |
A | ||
| SIMP_SPECIAL_DPROD_L | ![]() |
A | ||
| * | SIMP_TYPE_DPROD | ![]() |
where \mathit{Ta} and \mathit{Tb} are type expressions and and ![]() |
A |
| SIMP_SPECIAL_PPROD_R | ![]() |
A | ||
| SIMP_SPECIAL_PPROD_L | ![]() |
A | ||
| * | SIMP_TYPE_PPROD | ![]() |
where \mathit{Ta} and \mathit{Tb} are type expressions and and ![]() |
A |
| * | SIMP_SPECIAL_RELIMAGE_R | ![]() |
A | |
| SIMP_SPECIAL_RELIMAGE_L | ![]() |
A | ||
| * | SIMP_TYPE_RELIMAGE | ![]() |
where is a type expression |
A |
| * | SIMP_MULTI_RELIMAGE_DOM | ![]() |
A | |
| * | SIMP_TYPE_RELIMAGE_ID | ![]() |
where is a type expression |
A |
| * | SIMP_RELIMAGE_ID | ![]() |
A | |
| * | SIMP_MULTI_RELIMAGE_CPROD_SING | ![]() |
where is a single expression |
A |
| * | SIMP_MULTI_RELIMAGE_SING_MAPSTO | ![]() |
where is a single expression |
A |
| * | SIMP_MULTI_RELIMAGE_CONVERSE_RANSUB | ![]() |
A | |
| * | SIMP_MULTI_RELIMAGE_CONVERSE_RANRES | ![]() |
A | |
| * | SIMP_RELIMAGE_CONVERSE_DOMSUB | ![]() |
A | |
| * | DERIV_RELIMAGE_RANSUB | ![]() |
M | |
| * | DERIV_RELIMAGE_RANRES | ![]() |
M | |
| * | SIMP_MULTI_RELIMAGE_DOMSUB | ![]() |
A | |
| * | DERIV_RELIMAGE_DOMSUB | ![]() |
M | |
| * | DERIV_RELIMAGE_DOMRES | ![]() |
M | |
| SIMP_SPECIAL_CONVERSE | ![]() |
A | ||
| * | SIMP_CONVERSE_ID | ![]() |
A | |
| * | SIMP_TYPE_CONVERSE | ![]() |
where is a type expression equal to ![]() |
A |
| * | SIMP_CONVERSE_SETENUM | ![]() |
A | |
| * | SIMP_CONVERSE_COMPSET | ![]() |
A | |
| SIMP_SPECIAL_ID | ![]() |
A | ||
| * | SIMP_DOM_ID | ![]() |
A | |
| * | SIMP_RAN_ID | ![]() |
A | |
| * | SIMP_FCOMP_ID_L | ![]() |
A | |
| * | SIMP_FCOMP_ID_R | ![]() |
A | |
| SIMP_SPECIAL_REL_R | ![]() |
idem for operators ![]() |
A | |
| SIMP_SPECIAL_REL_L | ![]() |
idem for operators ![]() |
A | |
| SIMP_SPECIAL_EQUAL_REL | ![]() |
idem for operators ![]() |
A | |
| SIMP_SPECIAL_EQUAL_RELDOM | ![]() |
idem for operators ![]() |
A | |
| SIMP_SPECIAL_PRJ1 | ![]() |
A | ||
| SIMP_SPECIAL_PRJ2 | ![]() |
A | ||
| * | SIMP_FUNIMAGE_PRJ1 | ![]() |
A | |
| * | SIMP_FUNIMAGE_PRJ2 | ![]() |
A | |
| * | SIMP_DOM_PRJ1 | ![]() |
A | |
| * | SIMP_DOM_PRJ2 | ![]() |
A | |
| * | SIMP_RAN_PRJ1 | ![]() |
A | |
| * | SIMP_RAN_PRJ2 | ![]() |
A | |
| SIMP_SPECIAL_LAMBDA | ![]() |
A | ||
| * | SIMP_FUNIMAGE_LAMBDA | ![]() |
A | |
| * | SIMP_DOM_LAMBDA | ![]() |
A | |
| * | SIMP_RAN_LAMBDA | ![]() |
A | |
| * | SIMP_MULTI_FUNIMAGE_SETENUM_LL | ![]() |
A | |
| * | SIMP_MULTI_FUNIMAGE_SETENUM_LR | ![]() |
A | |
| * | SIMP_MULTI_FUNIMAGE_OVERL_SETENUM | ![]() |
A | |
| * | SIMP_MULTI_FUNIMAGE_BUNION_SETENUM | ![]() |
A | |
| * | SIMP_FUNIMAGE_CPROD | ![]() |
A | |
| * | SIMP_FUNIMAGE_ID | ![]() |
A | |
| * | SIMP_FUNIMAGE_FUNIMAGE_CONVERSE | ![]() |
A | |
| * | SIMP_FUNIMAGE_CONVERSE_FUNIMAGE | ![]() |
A | |
| * | DEF_BCOMP | ![]() |
M | |
| * | DERIV_ID_SING | ![]() |
where is a single expression |
M |
| * | SIMP_SPECIAL_DOM | ![]() |
A | |
| * | SIMP_SPECIAL_RAN | ![]() |
A | |
| * | SIMP_CONVERSE_CONVERSE | ![]() |
A | |
| * | DERIV_RELIMAGE_FCOMP | ![]() |
M | |
| * | DERIV_FCOMP_DOMRES | ![]() |
M | |
| * | DERIV_FCOMP_DOMSUB | ![]() |
M | |
| * | DERIV_FCOMP_RANRES | ![]() |
M | |
| * | DERIV_FCOMP_RANSUB | ![]() |
M | |
| SIMP_SPECIAL_EQUAL_RELDOMRAN | ![]() |
idem for operators ![]() |
A | |
| * | SIMP_TYPE_DOM | ![]() |
where is a type expression equal to ![]() |
A |
| * | SIMP_TYPE_RAN | ![]() |
where is a type expression equal to ![]() |
A |
| * | SIMP_MULTI_DOM_CPROD | ![]() |
A | |
| * | SIMP_MULTI_RAN_CPROD | ![]() |
A | |
| * | DEF_IN_DOM | ![]() |
M | |
| * | DEF_IN_RAN | ![]() |
M | |
| * | DEF_IN_CONVERSE | ![]() |
M | |
| * | DEF_IN_DOMRES | ![]() |
M | |
| * | DEF_IN_RANRES | ![]() |
M | |
| * | DEF_IN_DOMSUB | ![]() |
M | |
| * | DEF_IN_RANSUB | ![]() |
M | |
| * | DEF_IN_RELIMAGE | ![]() |
M | |
| * | DEF_IN_FCOMP | ![]() |
M | |
| * | DEF_OVERL | ![]() |
M | |
| * | DEF_IN_ID | ![]() |
M | |
| * | DEF_IN_DPROD | ![]() |
M | |
| * | DEF_IN_PPROD | ![]() |
M | |
| * | DEF_IN_RELDOM | ![]() |
M | |
| * | DEF_IN_RELRAN | ![]() |
M | |
| * | DEF_IN_RELDOMRAN | ![]() |
M | |
| * | DEF_IN_FCT | ![]() |
M | |
| * | DEF_IN_TFCT | ![]() |
M | |
| * | DEF_IN_INJ | ![]() |
M | |
| * | DEF_IN_TINJ | ![]() |
M | |
| * | DEF_IN_SURJ | ![]() |
M | |
| * | DEF_IN_TSURJ | ![]() |
M | |
| * | DEF_IN_BIJ | ![]() |
M | |
| * | DISTRI_BCOMP_BUNION | ![]() |
M | |
| * | DISTRI_FCOMP_BUNION_R | ![]() |
M | |
| * | DISTRI_FCOMP_BUNION_L | ![]() |
M | |
| * | DISTRI_DPROD_BUNION | ![]() |
M | |
| * | DISTRI_DPROD_BINTER | ![]() |
M | |
| * | DISTRI_DPROD_SETMINUS | ![]() |
M | |
| * | DISTRI_DPROD_OVERL | ![]() |
M | |
| * | DISTRI_PPROD_BUNION | ![]() |
M | |
| * | DISTRI_PPROD_BINTER | ![]() |
M | |
| * | DISTRI_PPROD_SETMINUS | ![]() |
M | |
| * | DISTRI_PPROD_OVERL | ![]() |
M | |
| * | DISTRI_OVERL_BUNION_L | ![]() |
M | |
| * | DISTRI_OVERL_BINTER_L | ![]() |
M | |
| * | DISTRI_DOMRES_BUNION_R | ![]() |
M | |
| * | DISTRI_DOMRES_BUNION_L | ![]() |
M | |
| * | DISTRI_DOMRES_BINTER_R | ![]() |
M | |
| * | DISTRI_DOMRES_BINTER_L | ![]() |
M | |
| * | DISTRI_DOMRES_SETMINUS_R | ![]() |
M | |
| * | DISTRI_DOMRES_SETMINUS_L | ![]() |
M | |
| * | DISTRI_DOMRES_DPROD | ![]() |
M | |
| * | DISTRI_DOMRES_OVERL | ![]() |
M | |
| * | DISTRI_DOMSUB_BUNION_R | ![]() |
M | |
| * | DISTRI_DOMSUB_BUNION_L | ![]() |
M | |
| * | DISTRI_DOMSUB_BINTER_R | ![]() |
M | |
| * | DISTRI_DOMSUB_BINTER_L | ![]() |
M | |
| * | DISTRI_DOMSUB_DPROD | ![]() |
M | |
| * | DISTRI_DOMSUB_OVERL | ![]() |
M | |
| * | DISTRI_RANRES_BUNION_R | ![]() |
M | |
| * | DISTRI_RANRES_BUNION_L | ![]() |
M | |
| * | DISTRI_RANRES_BINTER_R | ![]() |
M | |
| * | DISTRI_RANRES_BINTER_L | ![]() |
M | |
| * | DISTRI_RANRES_SETMINUS_R | ![]() |
M | |
| * | DISTRI_RANRES_SETMINUS_L | ![]() |
M | |
| * | DISTRI_RANSUB_BUNION_R | ![]() |
M | |
| * | DISTRI_RANSUB_BUNION_L | ![]() |
M | |
| * | DISTRI_RANSUB_BINTER_R | ![]() |
M | |
| * | DISTRI_RANSUB_BINTER_L | ![]() |
M | |
| * | DISTRI_CONVERSE_BUNION | ![]() |
M | |
| * | DISTRI_CONVERSE_BINTER | ![]() |
M | |
| * | DISTRI_CONVERSE_SETMINUS | ![]() |
M | |
| * | DISTRI_CONVERSE_BCOMP | ![]() |
M | |
| * | DISTRI_CONVERSE_FCOMP | ![]() |
M | |
| * | DISTRI_CONVERSE_PPROD | ![]() |
M | |
| * | DISTRI_CONVERSE_DOMRES | ![]() |
M | |
| * | DISTRI_CONVERSE_DOMSUB | ![]() |
M | |
| * | DISTRI_CONVERSE_RANRES | ![]() |
M | |
| * | DISTRI_CONVERSE_RANSUB | ![]() |
M | |
| * | DISTRI_DOM_BUNION | ![]() |
M | |
| * | DISTRI_RAN_BUNION | ![]() |
M | |
| * | DISTRI_RELIMAGE_BUNION_R | ![]() |
M | |
| * | DISTRI_RELIMAGE_BUNION_L | ![]() |
M | |
| * | DISTRI_DOM_BUNION | ![]() |
M | |
| * | DISTRI_RAN_BUNION | ![]() |
M |







is a type expression



































and 




![r[\emptyset ] \;\;\defi\;\; \emptyset](/images/math/b/9/a/b9aaf14a5527d53ff1febab3e8883f03.png)
![\emptyset [S] \;\;\defi\;\; \emptyset](/images/math/6/4/8/648fbd380df0ae4c5d64da8bef51ee2d.png)
![r[Ty] \;\;\defi\;\; \ran (r)](/images/math/0/2/1/02153b3e9f952be7157a4d4e336374a7.png)
![r[\dom (r)] \;\;\defi\;\; \ran (r)](/images/math/0/3/4/0346b1b9c1146a8343fa2d18e1732769.png)
![\id (\mathit{Ty})[T] \;\;\defi\;\; T](/images/math/7/2/8/728d20e0dc8ffafa0814d996833d7418.png)
![\id (S)[T] \;\;\defi\;\; S \binter T](/images/math/7/8/9/789c033967506f18ca67b954cba3fe2c.png)
![(\{ E\} \cprod S)[\{ E\} ] \;\;\defi\;\; S](/images/math/c/5/2/c526fc7db223ce0bfe920622d54d64e0.png)
is a single expression![\{ E \mapsto F\} [\{ E\} ] \;\;\defi\;\; \{ F\}](/images/math/e/2/c/e2c3111e1660139c0d07f75c30de0e5c.png)
![(r \ransub S)^{-1} [S] \;\;\defi\;\; \emptyset](/images/math/0/d/8/0d87a3a40feb382450061c80f9ed103e.png)
![(r \ranres S)^{-1} [S] \;\;\defi\;\; r^{-1} [S]](/images/math/1/7/4/174952bb78d6d7afd42ee6a53ed2ac78.png)
![(S \domsub r)^{-1} [T] \;\;\defi\;\; r^{-1} [T] \setminus S](/images/math/3/4/2/342512ec589776fd0aae93fe8eb732e6.png)
![(r \ransub S)[T] \;\;\defi\;\; r[T] \setminus S](/images/math/5/9/3/5933212d9aad4f59b7641ea383b31a91.png)
![(r \ranres S)[T] \;\;\defi\;\; r[T] \binter S](/images/math/1/9/9/1994ec5d3fa539db498124fe8fd4a27d.png)
![(S \domsub r)[S] \;\;\defi\;\; \emptyset](/images/math/b/f/3/bf31fb9e2da1545464bd5baecc397c01.png)
![(S \domsub r)[T] \;\;\defi\;\; r[T \setminus S]](/images/math/f/2/4/f2407e5c136829c08c1bc390d74a77fe.png)
![(S \domres r)[T] \;\;\defi\;\; r[S \binter T]](/images/math/8/4/0/840633e87abc3f54638ede200920f377.png)











































![(p \fcomp q)[s] \;\;\defi\;\; q[p[s]]](/images/math/d/5/2/d525cb240947f85af66b077f0894364c.png)


















![F \in r[w] \;\;\defi\;\; \exists x \qdot x \in w \land x \mapsto F \in r](/images/math/e/a/7/ea7840f0b824a8db50a6356a02b00904.png)
































































![r[S \bunion T] \;\;\defi\;\; r[S] \bunion r[T]](/images/math/6/7/5/675105d6ac145c32895450ddb1a9515f.png)
![(p \bunion q)[S] \;\;\defi\;\; p[S] \bunion q[S]](/images/math/c/d/a/cdad0c6221ccb102d4f674695d7ff79c.png)

