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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.2. CCS, FORMALLY 27<br />
order: restriction <strong>and</strong> relabelling (tightest binding), action prefixing, parallel composition<br />
<strong>and</strong> summation. For example, the expression a.0 | b.P \ L + c.0 st<strong>and</strong>s<br />
for<br />
((a.0) | (b.(P \ L))) + (c.0) .<br />
Exercise 2.6 Which of the following expressions are syntactically correct CCS expressions?<br />
Why? Assume that A, B are process constants <strong>and</strong> a, b are channel<br />
names.<br />
• a.b.A + B<br />
• (a.0 + a.A) \ {a, b}<br />
• (a.0 | a.A) \ {a, τ},<br />
• a.B + [a/b]<br />
• τ.τ.B + 0<br />
• (a.B + b.B)[a/b, b/a]<br />
• (a.B + τ.B)[a/τ, b/a]<br />
• (a.b.A + a.0) | B<br />
• (a.b.A + a.0).B<br />
• (a.b.A + a.0) + B<br />
• (0 | 0) + 0<br />
Our readers can easily check that all of the processes presented in the previous<br />
section are ind<strong>ee</strong>d CCS expressions. Another example of a CCS expression is<br />
given by a counter, which is defined thus:<br />
Counter0<br />
Countern<br />
def<br />
= up.Counter1 (2.5)<br />
def<br />
= up.Countern+1 + down.Countern−1 (n > 0) . (2.6)<br />
The behaviour of such a process is intuitively clear. For each non-negative integer<br />
n, the process Countern behaves like a counter whose value is n; the ‘up’ actions<br />
increase the value of the counter by one, <strong>and</strong> the ‘down’ actions decrease it by one.<br />
It would also be easy to construct the (infinite state) LTS for this process based on<br />
its syntactic description, <strong>and</strong> on the intuitive underst<strong>and</strong>ing of process behaviour