Arithmetic Rewrite Rules: Difference between revisions
From Event-B
Jump to navigationJump to search
imported>Laurent Added star column |
imported>Laurent mNo edit summary |
||
Line 1: | Line 1: | ||
{{RRHeader}} | {{RRHeader}} | ||
{{RRRow}}| ||<font size="-2"> SIMP_SPECIAL_MOD_0 </font>||<math> 0 \,\bmod\, E \;\;\defi\;\; 0 </math>|| || A | {{RRRow}}| ||<font size="-2"> SIMP_SPECIAL_MOD_0 </font>||<math> 0 \,\bmod\, E \;\;\defi\;\; 0 </math>|| || A | ||
{{RRRow}}| ||<font size="-2"> SIMP_SPECIAL_MOD_1 </font>||<math> E \ | {{RRRow}}| ||<font size="-2"> SIMP_SPECIAL_MOD_1 </font>||<math> E \,\bmod\, 1 \;\;\defi\;\; 0 </math>|| || A | ||
{{RRRow}}|*||<font size="-2"> SIMP_MIN_SING </font>||<math> \min (\{ E\} ) \;\;\defi\;\; E </math>|| where <math>E</math> is a single expression || A | {{RRRow}}|*||<font size="-2"> SIMP_MIN_SING </font>||<math> \min (\{ E\} ) \;\;\defi\;\; E </math>|| where <math>E</math> is a single expression || A | ||
{{RRRow}}|*||<font size="-2"> SIMP_MAX_SING </font>||<math> \max (\{ E\} ) \;\;\defi\;\; E </math>|| where <math>E</math> is a single expression || A | {{RRRow}}|*||<font size="-2"> SIMP_MAX_SING </font>||<math> \max (\{ E\} ) \;\;\defi\;\; E </math>|| where <math>E</math> is a single expression || A | ||
Line 57: | Line 57: | ||
{{RRRow}}|*||<font size="-2"> SIMP_LIT_MINUS </font>||<math> - (i) \;\;\defi\;\; (-i) </math>|| where <math>i</math> is a literal || A | {{RRRow}}|*||<font size="-2"> SIMP_LIT_MINUS </font>||<math> - (i) \;\;\defi\;\; (-i) </math>|| where <math>i</math> is a literal || A | ||
{{RRRow}}|*||<font size="-2"> SIMP_LIT_MINUS_MINUS </font>||<math> - (-i) \;\;\defi\;\; i </math>|| where <math>i</math> is a literal || A | {{RRRow}}|*||<font size="-2"> SIMP_LIT_MINUS_MINUS </font>||<math> - (-i) \;\;\defi\;\; i </math>|| where <math>i</math> is a literal || A | ||
{{RRRow}}|*||<font size="-2"> SIMP_LIT_EQUAL </font>||<math> | {{RRRow}}|*||<font size="-2"> SIMP_LIT_EQUAL </font>||<math> i = j \;\;\defi\;\; \btrue \;or\; \bfalse \;\;(computation) </math>|| where <math>i</math> and <math>j</math> are literals || A | ||
{{RRRow}}|*||<font size="-2"> SIMP_LIT_LE </font>||<math> i \leq j \;\;\defi\;\; \btrue \;or\; \bfalse \;\;(computation) </math>|| where <math>i</math> and <math>j</math> are literals || A | {{RRRow}}|*||<font size="-2"> SIMP_LIT_LE </font>||<math> i \leq j \;\;\defi\;\; \btrue \;or\; \bfalse \;\;(computation) </math>|| where <math>i</math> and <math>j</math> are literals || A | ||
{{RRRow}}|*||<font size="-2"> SIMP_LIT_LT </font>||<math> i < j \;\;\defi\;\; \btrue \;or\; \bfalse \;\;(computation) </math>|| where <math>i</math> and <math>j</math> are literals || A | {{RRRow}}|*||<font size="-2"> SIMP_LIT_LT </font>||<math> i < j \;\;\defi\;\; \btrue \;or\; \bfalse \;\;(computation) </math>|| where <math>i</math> and <math>j</math> are literals || A | ||
{{RRRow}}|*||<font size="-2"> SIMP_LIT_GE </font>||<math> i \geq j \;\;\defi\;\; \btrue \;or\; \bfalse \;\;(computation) </math>|| where <math>i</math> and <math>j</math> are literals || A | {{RRRow}}|*||<font size="-2"> SIMP_LIT_GE </font>||<math> i \geq j \;\;\defi\;\; \btrue \;or\; \bfalse \;\;(computation) </math>|| where <math>i</math> and <math>j</math> are literals || A | ||
{{RRRow}}|*||<font size="-2"> SIMP_LIT_GT </font>||<math> | {{RRRow}}|*||<font size="-2"> SIMP_LIT_GT </font>||<math> i > j \;\;\defi\;\; \btrue \;or\; \bfalse \;\;(computation) </math>|| where <math>i</math> and <math>j</math> are literals || A | ||
{{RRRow}}|*||<font size="-2"> SIMP_DIV_MINUS </font>||<math> (- E) \div (-F) \;\;\defi\;\; E \div F </math>|| || A | {{RRRow}}|*||<font size="-2"> SIMP_DIV_MINUS </font>||<math> (- E) \div (-F) \;\;\defi\;\; E \div F </math>|| || A | ||
{{RRRow}}| ||<font size="-2"> SIMP_SPECIAL_DIV_1 </font>||<math> E \div 1 \;\;\defi\;\; E </math>|| || A | {{RRRow}}| ||<font size="-2"> SIMP_SPECIAL_DIV_1 </font>||<math> E \div 1 \;\;\defi\;\; E </math>|| || A | ||
Line 72: | Line 72: | ||
{{RRRow}}|*||<font size="-2"> SIMP_MULTI_GT </font>||<math> E > E \;\;\defi\;\; \bfalse </math>|| || A | {{RRRow}}|*||<font size="-2"> SIMP_MULTI_GT </font>||<math> E > E \;\;\defi\;\; \bfalse </math>|| || A | ||
{{RRRow}}|*||<font size="-2"> SIMP_MULTI_DIV </font>||<math> E \div E \;\;\defi\;\; 1 </math>|| || A | {{RRRow}}|*||<font size="-2"> SIMP_MULTI_DIV </font>||<math> E \div E \;\;\defi\;\; 1 </math>|| || A | ||
{{RRRow}}|*||<font size="-2"> SIMP_MULTI_MOD </font>||<math> E \ | {{RRRow}}|*||<font size="-2"> SIMP_MULTI_MOD </font>||<math> E \,\bmod\, E \;\;\defi\;\; 0 </math>|| || A | ||
{{RRRow}}|*||<font size="-2"> DISTRI_PROD_PLUS </font>||<math> a * (b + c) \;\;\defi\;\; (a * b) + (a * c) </math>|| || M | {{RRRow}}|*||<font size="-2"> DISTRI_PROD_PLUS </font>||<math> a * (b + c) \;\;\defi\;\; (a * b) + (a * c) </math>|| || M | ||
{{RRRow}}|*||<font size="-2"> DISTRI_PROD_MINUS </font>||<math> a * (b - c) \;\;\defi\;\; (a * b) - (a * c) </math>|| || M | {{RRRow}}|*||<font size="-2"> DISTRI_PROD_MINUS </font>||<math> a * (b - c) \;\;\defi\;\; (a * b) - (a * c) </math>|| || M |
Revision as of 18:16, 24 March 2009
Name | Rule | Side Condition | A/M | |
---|---|---|---|---|
SIMP_SPECIAL_MOD_0 | ![]() |
A | ||
SIMP_SPECIAL_MOD_1 | ![]() |
A | ||
* | SIMP_MIN_SING | ![]() |
where ![]() |
A |
* | SIMP_MAX_SING | ![]() |
where ![]() |
A |
* | SIMP_MIN_NATURAL | ![]() |
A | |
* | SIMP_MIN_NATURAL1 | ![]() |
A | |
* | SIMP_MIN_BUNION_SING | ![]() |
A | |
* | SIMP_MAX_BUNION_SING | ![]() |
A | |
* | SIMP_MIN_UPTO | ![]() |
A | |
* | SIMP_MAX_UPTO | ![]() |
A | |
* | SIMP_LIT_MIN | ![]() |
where ![]() ![]() ![]() |
A |
* | SIMP_LIT_MAX | ![]() |
where ![]() ![]() ![]() |
A |
* | SIMP_LIT_MIN_UPTO | ![]() |
where ![]() |
A |
* | SIMP_LIT_MAX_UPTO | ![]() |
where ![]() |
A |
* | SIMP_SPECIAL_CARD | ![]() |
A | |
* | SIMP_CARD_SING | ![]() |
where ![]() |
A |
* | SIMP_SPECIAL_EQUAL_CARD | ![]() |
A | |
* | SIMP_CARD_POW | ![]() |
A | |
* | SIMP_CARD_BUNION | ![]() |
A | |
* | SIMP_CARD_CONVERSE | ![]() |
A | |
* | SIMP_CARD_ID | ![]() |
A | |
* | SIMP_CARD_LAMBDA | ![]() |
A | |
* | SIMP_CARD_COMPSET | ![]() |
where ![]() ![]() |
A |
* | SIMP_LIT_CARD_UPTO | ![]() |
where ![]() ![]() ![]() |
A |
* | SIMP_TYPE_CARD | ![]() |
where ![]() ![]() |
A |
* | SIMP_LIT_GE_CARD_0 | ![]() |
A | |
* | SIMP_LIT_LE_CARD_1 | ![]() |
A | |
* | SIMP_LIT_LE_CARD_0 | ![]() |
A | |
* | SIMP_LIT_GE_CARD_0 | ![]() |
A | |
* | SIMP_LIT_GT_CARD_0 | ![]() |
A | |
* | SIMP_LIT_LT_CARD_0 | ![]() |
A | |
* | SIMP_LIT_EQUAL_CARD_1 | ![]() |
A | |
* | SIMP_CARD_NATURAL | ![]() |
A | |
* | SIMP_CARD_NATURAL1 | ![]() |
A | |
* | SIMP_LIT_IN_NATURAL | ![]() |
where ![]() |
A |
SIMP_SPECIAL_IN_NATURAL1 | ![]() |
A | ||
* | SIMP_LIT_IN_NATURAL1 | ![]() |
where ![]() ![]() |
A |
* | SIMP_LIT_UPTO | ![]() |
where ![]() ![]() ![]() |
A |
* | SIMP_LIT_IN_MINUS_NATURAL | ![]() |
where ![]() ![]() |
A |
* | SIMP_LIT_IN_MINUS_NATURAL1 | ![]() |
where ![]() |
A |
SIMP_SPECIAL_KBOOL_BTRUE | ![]() |
A | ||
SIMP_SPECIAL_KBOOL_BFALSE | ![]() |
A | ||
* | SIMP_LIT_EQUAL_KBOOL_TRUE | ![]() |
A | |
* | SIMP_LIT_EQUAL_KBOOL_FALSE | ![]() |
A | |
* | DEF_EQUAL_MIN | ![]() |
where ![]() ![]() |
M |
* | DEF_EQUAL_MAX | ![]() |
where ![]() ![]() |
M |
* | SIMP_SPECIAL_PLUS | ![]() |
A | |
* | SIMP_SPECIAL_MINUS_R | ![]() |
A | |
* | SIMP_SPECIAL_MINUS_L | ![]() |
A | |
* | SIMP_MINUS_MINUS | ![]() |
A | |
* | SIMP_MULTI_MINUS | ![]() |
A | |
* | SIMP_SPECIAL_PROD_0 | ![]() |
A | |
* | SIMP_SPECIAL_PROD_1 | ![]() |
A | |
* | SIMP_SPECIAL_PROD_MINUS_EVEN | ![]() |
if an even number of ![]() |
A |
* | SIMP_SPECIAL_PROD_MINUS_ODD | ![]() |
if an odd number of ![]() |
A |
* | SIMP_LIT_MINUS | ![]() |
where ![]() |
A |
* | SIMP_LIT_MINUS_MINUS | ![]() |
where ![]() |
A |
* | SIMP_LIT_EQUAL | ![]() |
where ![]() ![]() |
A |
* | SIMP_LIT_LE | ![]() |
where ![]() ![]() |
A |
* | SIMP_LIT_LT | ![]() |
where ![]() ![]() |
A |
* | SIMP_LIT_GE | ![]() |
where ![]() ![]() |
A |
* | SIMP_LIT_GT | ![]() |
where ![]() ![]() |
A |
* | SIMP_DIV_MINUS | ![]() |
A | |
SIMP_SPECIAL_DIV_1 | ![]() |
A | ||
* | SIMP_SPECIAL_DIV_0 | ![]() |
A | |
* | SIMP_SPECIAL_EXPN_1 | ![]() |
A | |
* | SIMP_SPECIAL_EXPN_0 | ![]() |
A | |
* | SIMP_MULTI_LE | ![]() |
A | |
* | SIMP_MULTI_LT | ![]() |
A | |
* | SIMP_MULTI_GE | ![]() |
A | |
* | SIMP_MULTI_GT | ![]() |
A | |
* | SIMP_MULTI_DIV | ![]() |
A | |
* | SIMP_MULTI_MOD | ![]() |
A | |
* | DISTRI_PROD_PLUS | ![]() |
M | |
* | DISTRI_PROD_MINUS | ![]() |
M | |
* | DERIV_LE_CARD | ![]() |
![]() ![]() |
M |
* | DERIV_GE_CARD | ![]() |
![]() ![]() |
M |
* | DERIV_LT_CARD | ![]() |
![]() ![]() |
M |
* | DERIV_GT_CARD | ![]() |
![]() ![]() |
M |
* | DERIV_EQUAL_CARD | ![]() |
![]() ![]() |
M |