CSP process 2026-10-31
A component specified by possible CSP events and successor behaviours. has no transitions. CSP prefixing, CSP choice and CSP parallel composition construct larger components.
Past exam of the computer science course of the University of Oxford 2015 Concurrency 1 c Solution 2026-10-31
Let . In this CSP alphabetized parallel composition, require both participants, belongs only to the left participant and only to the right participant. Expand the reachable states using CSP prefixing and CSP external choice:For example, after the synchronized , the left participant is back at but the right participant is at . The left participant's proposed is blocked until the right participant has performed . Similarly, after , only the synchronized is possible. Thus there is no extra interleaving to include.
Eliminating gives the guarded equationConsequently choose the sequential CSP processThe unique fixed point principle first establishes .
Now let . The CSP exception operator follows its left operand until that operand performs , includes this in the visible behaviour, and then switches to its right operand. Applying its CSP step law to the four-state expansion yieldsThe switch occurs exactly where the ordinary execution already returns to . Therefore . The answer uses neither a CSP exception operator nor a CSP parallel composition operator, and the argument gives equality in all three standard CSP semantic models.
Past exam of the computer science course of the University of Oxford 2015 Concurrency 2 c Solution 2026-10-31
If is injective, the equation is true:For a CSP event , the original CSP parallel composition permits exactly when both operands can perform . After CSP event renaming, the corresponding rule requires the same image in both operands. Injectivity ensures that matching images came from the same event, and that an event outside cannot acquire the image of one inside . Independent transitions remain independent, and CSP internal actions are unchanged. Matching these transition rules gives a strong bisimulation, hence equality in all three standard CSP semantic models.
For a non-injective , the equation need not hold. LetOn the left, both events require synchronization but the other operand offers the wrong event, so . On the right, both renamed operands offer , which can synchronize:The failure is already visible in the CSP traces model. A particular non-injective CSP event renaming may still preserve a particular composition; it is the unrestricted equivalence that fails.
Past exam of the computer science course of the University of Oxford 2015 Concurrency 2 f Solution 2026-10-31
Use fresh event tags to tell apart an action by and an interrupting action by . Put and introduce a disjoint copy . Let fix and map each to , and put . Define a process that always accepts an event from byand an ordinary CSP interrupt handler byFinally let fix every original event and send back to . A simulation containing no occurrence of the new operator isHere is the ordinary CSP interrupt, and the CSP event renaming is applied after the CSP parallel composition. It is non-injective, so part (c) explains why moving it inside would be unsafe.
Before the interrupt, 's events in synchronize with on the same events. Its events outside are unprimed and do not synchronize with . Meanwhile 's events outside are primed; they synchronize with and thereby interrupt and discard . After the first such event, the left operand is , so it imposes no further restriction on ; final CSP event renaming then yields exactly the remaining behaviour of .
For a formal strong bisimulation, relate a pre-interrupt state toand an already-interrupted state toThe three visible cases match the rules in part (d), including both transitions when both operands offer the same event outside . A CSP internal action of never activates , while a CSP internal action of remains possible exactly until the interrupt. The controller adds no CSP internal actions. Thus transitions match in both directions and related derivatives remain related.
Consequently this simulation is stronger than merely CSP trace equivalent:It preserves CSP stable states, their enabled-event sets and their CSP stable failures, and matches every possible infinite run of CSP internal actions. In particular, it introduces neither a premature commitment nor a new CSP divergence. A different simulation that guesses an interrupt with a hidden handshake would need a separate refusal analysis; the visible tagging construction above needs no hidden handshake.