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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

20 CHAPTER 2. THE LANGUAGE CCS<br />

Since τ actions are supposed to be unobservable, the following process s<strong>ee</strong>ms to<br />

be an appropriate high level specification of the behaviour exhibited by process<br />

SmUni:<br />

Spec def<br />

= pub.Spec .<br />

Ind<strong>ee</strong>d, we expect that SmUni <strong>and</strong> Spec describe the same observable behaviour,<br />

albeit at different levels of abstraction. We shall s<strong>ee</strong> in the remainder of this book<br />

that one of the big questions in process theory is to come up with notions of ‘behavioural<br />

equivalence’ betw<strong>ee</strong>n processes that will allow us to establish formally<br />

that, for instance, SmUni <strong>and</strong> Spec do offer the same behaviour. But this is getting<br />

ahead of our story.<br />

2.2 CCS, formally<br />

Having introduced CCS by example, we now proc<strong>ee</strong>d to present formal definitions<br />

for its syntax <strong>and</strong> semantics.<br />

2.2.1 The model of labelled transition systems<br />

We have already indicated in our examples how the operational semantics for CCS<br />

can be given in terms of automata—which we have called labelled transition systems,<br />

as customary in concurrency theory. These we now proc<strong>ee</strong>d to define, for the<br />

sake of clarity. We first introduce the ingredients in the model of labelled transition<br />

systems informally, <strong>and</strong> then provide its formal definition.<br />

In the model of labelled transition systems, processes are represented by vertices<br />

of certain edge-labelled directed graphs (the labelled transition systems themselves)<br />

<strong>and</strong> a change of process state caused by performing an action is understood<br />

as moving along an edge, labelled by the action name, that goes out of that state.<br />

A labelled transition system consists therefore of a set of states (also referred to<br />

as processes or configurations), a set of labels (or actions), <strong>and</strong> a transition relation<br />

→ describing changes in process states: if a process p can perform an action a <strong>and</strong><br />

become a process p ′ , we write p a → p ′ . Sometimes a state is singled out as the start<br />

state in the labelled transition system under consideration. In that case, we say that<br />

the labelled transition system is rooted.<br />

Example 2.1 Let us start with a variation on the classic example of a tea/coff<strong>ee</strong><br />

vending machine. The very simplified behaviour of the process which determines<br />

the interaction of the machine with a customer can be described as follows. From<br />

the initial state—say, p—representing the situation ‘waiting for a request’, two possible<br />

actions are enabled. Either the tea button or the coff<strong>ee</strong> button can be pressed

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

Saved successfully!

Ooh no, something went wrong!