We are looking for a metaproperty switchable
and a property switch_inv
such that switch_inv
is a fusion condition for any
property P that satisfies switchable
P. We find this pair by a sequence of
refinements.
We begin by assuming that P will be a memoryless, composable, safety property.
So it satisfies the metaproperty
We can now define a basic condition, single-tag decomposable,
that fuses any MCS property.
It says that any non null trace L can be decomposed as the append of two lists,
L and L
, such that the two lists have no messages in common and the
second list L
is non null and all events in it have the same tag.
The MCS induction theorem states that a single-tag decomposable, safety property
is a fusion condition for any MCS property.
proof:
We have to prove that (I tr) (P tr) under the assumptions that
m:Label. (P tr) and the other hypotheses in the theorem.
We proceed by induction on the length of tr.
If tr has length 0, then it is the null list. Then,
for any label m, tr
= tr, so P tr by hypothesis.
Now tr is non null. Since I tr, and since I refines
single tag decomposability, we can find message-disjoint tr
and tr
such that tr = (tr
@ tr
) and tr
is non null and has only one tag.
Since the length of tr
is less than the length of tr, we can apply
the induction hypothesis to conclude that P tr
provided that we can show
that I tr
and m:Label. (P tr
). The first of these follows from the
assumption that I is a safety property, and the second follows from the
assumption that P is a safety property and from the fact that
m:Label. (tr
tr tr
tr
).
Since P is a composable property, we can conclude P tr if we can show
P tr
. By assumption, there is a tag m such that tr
= tr
,
so it's enough to show P tr
. But tr
= (tr
@ tr
) and
tr
and tr
have no messages in common, and therefore tr
can
be obtained by removing all messages in tr
from tr
. Since P tr
is
true by assumption and since P is memoryless, we can conclude that P tr
and we are done.