proof: This follows from theorem 5.7
and the definition of fusion,
once we establish that (switchable
P) (switchable
P) and
(No-dup-send
map(evt;tr)) (No-dup-send
tr). Both of these
follow easily from the facts that the map operation commutes with every list
operation used in the definitions of switchable
and No-dup-send
, and that,
by definition, evt, maps the event structure of A to E.
The switching protocol layer delays the delivery of messages from one sub-protocol
until the messages from the previous sub-protocol have been delivered. It thus
reorders the trace of tagged events (the actions A) in its lower trace tr
so that the reordered trace, which we call tr, for the middle trace, satisfies
the switch_inv
property. In this reordering, the switch does not
change the ordering of actions from the same protocol, it only changes the ordering
of actions from different protocols. Thus, the lower and middle traces, tr and
tr, will be related by the following tag relation
With the tags removed, the reordered actions in tr are the same as the events
in the upper trace tr, except that further delays in the switch may change
the order of these events, and the upper trace tr may contain additional send
events that have not yet been communicated through the switch to the lower
(or middle) trace. Thus, map(evt;tr) is related to tr by the
layer relation:
Putting all of these things together, we have the following definition of the
full invariant that the switch layer must guarantee.
We can finally derive our main theorem.
proof: We use theorem 6.1 with tr for tr. We must show
which follows from the
assumption No-dup-send
tr and the easy lemma that No-dup-send
is
preserved by layerR
. We must also show that
which follows from the assumption m:Label. (P map(evt;tr)) and the
easy lemma that
The conclusion of theorem 6.1 then gives us
P map(evt;tr) and we must show P tr.
But this follows from fact that P is preserved by the layer relation
and map(evt;tr) layerR
tr, by the full_switch_inv assumption.