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.
Chapter 3<br />
Behavioural equivalences<br />
We have previously remarked that CCS, like all other process algebras, can be used<br />
to describe both implementations of processes <strong>and</strong> specifications of their expected<br />
behaviours. A language like CCS therefore supports the so-called single language<br />
approach to process theory—that is, the approach in which a single language is<br />
used to describe both actual processes <strong>and</strong> their specifications. An important ingredient<br />
of these languages is therefore a notion of behavioural equivalence or<br />
behavioural approximation betw<strong>ee</strong>n processes. One process description, say SYS,<br />
may describe an implementation, <strong>and</strong> another, say SPEC, may describe a specification<br />
of the expected behaviour. To say that SYS <strong>and</strong> SPEC are equivalent is taken<br />
to indicate that these two processes describe essentially the same behaviour, albeit<br />
possibly at different levels of abstraction or refinement. To say that, in some formal<br />
sense, SYS is an approximation of SPEC means roughly that every aspect of the<br />
behaviour of this process is allowed by the specification SPEC, <strong>and</strong> thus that nothing<br />
unexpected can happen in the behaviour of SYS. This approach to program<br />
verification is also sometimes called implementation verification or equivalence<br />
checking.<br />
3.1 Criteria for a good behavioural equivalence<br />
We have already informally argued that some of the processes that we have met so<br />
far ought to be considered behaviourally equivalent. For instance, we claimed that<br />
the behaviour of the process SmUni defined in equation 2.4 on page 13 should be<br />
considered equivalent to that of the specification<br />
Spec def<br />
= pub.Spec ,<br />
37