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.

120 CHAPTER 6. HML WITH RECURSION<br />

‘invariantly F ’) by means of the equation<br />

X max<br />

= F ∧ [Act]X ,<br />

<strong>and</strong> that F possibly holds at some point (written Pos(F )) by<br />

Y min<br />

= F ∨ 〈Act〉Y .<br />

Intuitively, we use largest solutions for those properties that hold of a process unless<br />

it has a finite computation that disproves the property. For instance, process<br />

q does not have property Inv(〈a〉tt) because it can reach a state in which no alabelled<br />

transition is possible. Conversely, we use least solutions for those properties<br />

that hold of a process if it has a finite computation sequence which ‘witnesses’<br />

the property. For instance, a process has property Pos(〈a〉tt) if it has a computation<br />

leading to a state that can perform an a-labelled transition. This computation is a<br />

witness for the fact that the process can perform an a-labelled transition at some<br />

point in its behaviour.<br />

We shall appeal to the intuition given above in the following section, where we<br />

present examples of recursively defined properties.<br />

Exercise 6.3 Give a formula, built using HML <strong>and</strong> the temporal operators Pos<br />

<strong>and</strong>/or Inv, that expresses a property satisfied by exactly one of the processes in<br />

Exercise 5.13. <br />

6.1 Examples of recursive properties<br />

Adding recursive definitions to Hennessy-Milner logic gives us a very powerful<br />

language for specifying properties of processes. In particular this extension allows<br />

us to express different kinds of safety <strong>and</strong> liveness properties. Before developing<br />

the theory of HML with recursion, we give some more examples of its uses.<br />

Consider the formula Safe(F ) that is satisfied by a process p whenever it has<br />

a complete transition sequence<br />

p = p0<br />

a1 a2<br />

→ p1 → p2 · · · ,<br />

where each of the processes pi satisfies F . (A transition sequence is complete if it<br />

is infinite or its last state affords no transition.) This invariance of F under some<br />

computation can be expressed in the following way:<br />

X max<br />

= F ∧ ([Act]ff ∨ 〈Act〉X) .

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

Saved successfully!

Ooh no, something went wrong!