14.08.2013 Views

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

SHOW MORE
SHOW LESS

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 .

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!