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.
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) .