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
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)