Thm* E:EventStruct, tr:|E| List, ls: ||tr||.
is-send(E)(tr[ls]) ![](FONT/eq.png)
( j: ||tr||. ls < j ![](FONT/eq.png) is-send(E)(tr[j])) ![](FONT/eq.png)
( i,j: ||tr||. i j ![](FONT/eq.png) is-send(E)(tr[j]) ![](FONT/eq.png) (i (switchR(tr)^*) ls) ![](FONT/eq.png) (j (switchR(tr)^*) ls)) | [switch_inv_rel_closure_lemma1] |
Thm* E:TaggedEventStruct, tr:|E| List, ls: ||tr||.
switch_inv(E)(tr) ![](FONT/eq.png)
( i,j: ||tr||. (i (switchR(tr)^*) ls) ![](FONT/eq.png) (j (switchR(tr)^*) ls) ![](FONT/eq.png) tag(E)(tr[i]) = tag(E)(tr[j])) | [switch_inv_rel_closure] |
Thm* E:EventStruct, tr:|E| List, ls,i: ||tr||.
is-send(E)(tr[ls]) ![](FONT/eq.png) (i (switchR(tr)^*) ls) ![](FONT/eq.png) is-send(E)(tr[i]) | [switch_inv_rel_closure_send] |
Def adR(E) == (delayableR(E) asyncR(E))^* | [R_ad] |
Def layerR(E) == ((asyncR(E) delayableR(E)) send-enabledR(E))^* | [layer_rel] |
Def R(tg) == swap adjacent[ tg(x) = tg(y) Label]^* | [tag_rel] |