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.

40 CHAPTER 3. BEHAVIOURAL EQUIVALENCES<br />

The lack of consensus on what constitutes an appropriate notion of observable behaviour<br />

for reactive systems has led to a large number of proposals for behavioural<br />

equivalences for concurrent processes. (S<strong>ee</strong> the study (Glabb<strong>ee</strong>k, 2001), where van<br />

Glabb<strong>ee</strong>k presents the linear time-branching time spectrum—a lattice of known behavioural<br />

equivalences <strong>and</strong> preorders over labelled transition systems, ordered by<br />

inclusion.) In our search for a reasonable notion of behavioural relation to support<br />

implementation verification, we shall limit ourselves to presenting a tiny sample of<br />

these.<br />

So let’s begin our search!<br />

3.2 Trace equivalence: a first attempt<br />

Labelled transition systems (LTSs) (Keller, 1976) are a fundamental model of concurrent<br />

computation, which is widely used in light of its flexibility <strong>and</strong> applicability.<br />

In particular, they are the prime model underlying Plotkin’s Structural Operational<br />

Semantics (Plotkin, 2004b) <strong>and</strong>, following Milner’s pion<strong>ee</strong>ring work on<br />

CCS (Milner, 1989), are by now the st<strong>and</strong>ard semantic model for various process<br />

description languages.<br />

As we have already s<strong>ee</strong>n, LTSs model processes by explicitly describing their<br />

states <strong>and</strong> their transitions from state to state, together with the actions that produced<br />

them. Since this view of process behaviours is very detailed, several notions<br />

of behavioural equivalence <strong>and</strong> preorder have b<strong>ee</strong>n proposed for LTSs. The aim<br />

of such behavioural semantics is to identify those (states of) LTSs that afford the<br />

same ‘observations’, in some appropriate technical sense.<br />

Now, LTSs are essentially (possibly infinite state) automata, <strong>and</strong> the classic<br />

theory of automata suggests a ready made notion of equivalence for them, <strong>and</strong> thus<br />

for the CCS processes that denote them.<br />

Let us say that a trace of a process P is a sequence α1 · · · αk ∈ Act ∗ (k ≥ 0)<br />

such that there exists a sequence of transitions<br />

P = P0<br />

α1 α2<br />

αk<br />

→ P1 → P2 · · · Pk−1 → Pk ,<br />

for some P1, . . . , Pk. We write Traces(P ) for the collection of all traces of P .<br />

Since Traces(P ) describes all the possible finite sequences of interactions that we<br />

may have with process P , it is reasonable to require that our notion of behavioural<br />

equivalence only relates processes that afford the same traces, or else we should<br />

have a very good reason for telling them apart—namely a sequence of actions that<br />

can be performed with one, but not with the other. This means that, for all processes<br />

P <strong>and</strong> Q, we require that<br />

if P <strong>and</strong> Q are behaviourally equivalent, then Traces(P ) = Traces(Q) . (3.1)

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

Saved successfully!

Ooh no, something went wrong!