CSP is a language where processes proceed from one state to another by engaging in (instantaneous) events. Processes may be composed by operators which require synchronisation on some events; each component must be willing to participate in a given event before the whole can make the transition. This, rather than assignments to shared state variables, is the fundamental means of interaction between agents.
The composition of processes is itself a process, allowing a hierarchical description of a system. The hiding operator makes a given set of events internal: invisible to, and beyond the control of, its environment; this provides an abstraction mechanism.
The theory of CSP has classically been based on mathematical models remote from the language itself. These models have been based on observable behaviours of processes such as traces, failures and divergences, rather than attempting to capture a full operational picture of how the process progresses.
On the other hand CSP can be given an operational semantics in terms of labelled transition systems. This operational semantics can be related to the mathematical models: that the standard semantics of CSP are congruent to a natural operational semantics is shown in, for example, [Roscoe88a].
Given that each of our models represents a process by the set of its possible behaviours, it is natural to represent refinement as the reduction of these options: the reverse containment of the set of behaviours. If Q refines P we write PQ sometimes subscripting to indicate which model the refinement it is respect to.
FDR directly supports three models:
All three of these models have the obvious congruence theorem with the standard operational semantics of CSP. In fact FDR works chiefly in the operational world: it computes how a process behaves by applying the rules of the operational semantics to expand it into a transition system. The congruence theorems are thus vital in supporting all its work: it can only claim to prove things about the abstractly-defined semantics of a process because we happen to know that this equals the set of behaviours of the operational process FDR works with.
The congruence theorems are also fundamental in supporting the hierarchical compressions described in 5.1 Using Compressions. For we know that, if C[.] is any CSP context, then the value in one of our semantic models of C[P] depends only on the value (in the same model) of P, not on the precise way it is represented as a transition system. Therefore, it may greatly be to our advantage to find another representation of P with fewer states. If, for example, we are combining processes P and Q in parallel and each has 1000 states, but can be compressed to 100, the compressed composition can have no more than 10,000 states while the uncompressed one may have up to 1,000,000.
Go to the Next or Previous section, the Detailed Contents, or the FS(E)L Home Page.