Reactive Systems: Modelling, Specification and Verification - Cs.ioc.ee
Reactive Systems: Modelling, Specification and Verification - Cs.ioc.ee
Reactive Systems: Modelling, Specification and Verification - Cs.ioc.ee
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
7.3. TESTING MUTUAL EXCLUSION 173<br />
1. For every action a in L, the formula 〈a〉tt is not testable.<br />
2. Let a <strong>and</strong> b be two distinct actions in L. Then the formula [a]ff ∨ [b]ff is not<br />
testable.<br />
Proof: We prove each statement in turn.<br />
• PROOF OF (1). Assume, towards a contradiction, that a test T tests for the<br />
formula 〈a〉tt. Since T tests for 〈a〉tt <strong>and</strong> 0 |= 〈a〉tt, we have that<br />
(0 | root(T )) \ L bad<br />
⇒ .<br />
Consider now the term P = a.0 + τ.0. As P a → 0, the process P satisfies<br />
the formula 〈a〉tt. However, P fails the test T because<br />
(P | root(T )) \ L τ → (0 | root(T )) \ L bad<br />
⇒ .<br />
This contradicts our assumption that T tests for 〈a〉tt.<br />
• PROOF OF (2). Assume, towards a contradiction, that a test T tests for the<br />
formula [a]ff ∨ [b]ff, with a = b. Since the state a.0 + b.0 does not satisfy<br />
the formula [a]ff ∨ [b]ff, it follows that<br />
((a.0 + b.0) | root(T )) \ L bad<br />
⇒ . (7.2)<br />
We now proc<strong>ee</strong>d to show that this implies that either the state a.0 fails the<br />
test T or b.0 does. This we do by examining the possible forms transition<br />
(7.2) may take.<br />
– CASE: ((a.0 + b.0) | root(T )) \ L bad<br />
⇒ because root(T ) bad<br />
⇒. In this<br />
case, every state of an LTS fails the test T , <strong>and</strong> we are done.<br />
– CASE: ((a.0 + b.0) | root(T )) \ L τ ⇒ (0 | t) \ L bad<br />
→, because<br />
root(T ) ā ⇒ t for some state t of T . In this case, we may infer that<br />
(a.0 | root(T )) \ L τ ⇒ (0 | t) \ L bad<br />
→<br />
<strong>and</strong> thus that a.0 fails the test T .<br />
– CASE: ((a.0 + b.0) | root(T )) \ L τ ⇒ (0 | t) \ L bad<br />
→, because<br />
root(T ) ¯ b ⇒ t for some state t of T . In this case, reasoning as above, it<br />
is easy to s<strong>ee</strong> that b.0 fails the test T .