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.
2.1. SOME CCS PROCESS CONSTRUCTIONS 13<br />
✬<br />
CM<br />
✫✉<br />
coin<br />
✩<br />
✪<br />
✬<br />
CS<br />
✫✉<br />
coin<br />
✩<br />
coff<strong>ee</strong><br />
✉<br />
✉ ✉ pub<br />
coff<strong>ee</strong><br />
Figure 2.2: The interface for process CM | CS<br />
✪<br />
computer scientist <strong>and</strong> the coff<strong>ee</strong> machine to communicate in the parallel composition<br />
CM | CS. However, we do not require that they must communicate with one<br />
another. Both the computer scientist <strong>and</strong> the coff<strong>ee</strong> machine could use their complementary<br />
ports to communicate with other reactive systems in their environment.<br />
For example, another computer scientist CS ′ can use the coff<strong>ee</strong> machine CM, <strong>and</strong>,<br />
in so doing, make sure that he can produce publications to b<strong>ee</strong>f up his curriculum<br />
vitae, <strong>and</strong> thus be a worthy competitor for CS in the next competition for a tenured<br />
position. (S<strong>ee</strong> Figure 2.3.) Alternatively, the computer scientist may have access<br />
to another coff<strong>ee</strong> machine in her environment, as pictured in Figure 2.4.<br />
In general, given two CCS expressions P <strong>and</strong> Q, the process P | Q describes a<br />
system in which<br />
• P <strong>and</strong> Q may proc<strong>ee</strong>d independently or<br />
• may communicate via complementary ports.<br />
Restriction <strong>and</strong> relabelling Since academics like the computer scientist often<br />
live in a highly competitive ‘publish or perish’ environment, it may be fruitful<br />
for her to make the coff<strong>ee</strong> machine CM private to her, <strong>and</strong> therefore inaccessible<br />
to her competitors. To make this possible, the language CCS offers an operation<br />
called restriction, whose aim is to delimit the scope of channel names in much the<br />
same way as variables have scope in block structured programming languages. For<br />
instance, using the operations \coin <strong>and</strong> \coff<strong>ee</strong>, we may hide the coin <strong>and</strong> coff<strong>ee</strong><br />
ports from the environment of the processes CM <strong>and</strong> CS. Define the process SmUni<br />
(for ‘Small University’) thus:<br />
SmUni def<br />
= (CM | CS) \ coin \ coff<strong>ee</strong> . (2.4)