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.

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

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

Saved successfully!

Ooh no, something went wrong!