CSP Is a Retract of CCS

  • Jifeng He
  • Tony Hoare
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4010)


Theories of concurrency can be distinguished by the set of processes that they model, and by their choice of pre-ordering relation used to compare processes and to prove their correctness. For example, theories based on CCS are often pre-ordered by simulation (or more commonly bisimulation), of which the main varieties are strong or weak or barbed. Theories based on CSP choose as their pre-order a refinement relation, defined as inclusion over sets of observations. The main varieties of observation are just traces, or failures and/or divergences. The processes of the CSP model are restricted to those that satisfy certain naturally arising ‘healthiness conditions’. This paper gives a unifying treatment of simulation and refinement, and illustrates it by the familiar varieties of CCS and CSP that are mentioned above.

We consider the variations two at a time. A link between two theories is a function L, which maps the processes of its source theory onto those of its target theory. The image of L defines exactly the set of processes of the target theory. The ordering relation of the target theory is obtained by applying the link L to one or both operands before applying the source theory ordering. We will use the normal transition rules of a structured operational semantics to define a series of linking functions: W for weak simulation, T for trace refinement, R for refusals, D for divergences. We then show that each function is a retraction, in the sense that it is idempotent and decreasing and (in most cases) monotonic in its source ordering. Finally, we show that certain compositions of these functions are also retractions.

The definition of a retraction ensures that (1) the processes of the target theory are a subset of those of the source theory; (2) all ordering theorems of the source theory are preserved in the target theory; (3) the healthiness conditions of the target theory are expressed as fixed-point equivalences of the form pLp; (4) model-checking the target theory can be optimised, by applying L to only one of the two operands of the ordering. Finally, we show how the separately defined retractions can be composed in a way that preserves these important properties. In other words, the transition systems of several alternative versions of CCS, as well as the main standard versions of CSP, are retracts of the universal transition system that underlies CCS.

The research reported here is a step towards completion of the unfinished business of the original ESPRIT Basic Research Action CONCUR [BRA 3009, 1989-92], which aimed to assimilate the theories and notations of CSP, ACP and CCS. A retraction is a good tool for this purpose, because it precisely codifies the similarities between the theories, and enables them to be used in combination, while preserving their essential and beneficial differences. Such unified families of theories may in due course serve as a rigorous foundation for a comprehensive programming toolset, one that provides reliable assistance at all stages of program design, development, testing and evolution. In this working draft, some of the later sections are incomplete.


Model Check Transition System Operational Semantic Transition Rule Deductive System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abramsky, S.: Observation equivalence as a testing equivalence. TCS 53, 225–241 (1987)CrossRefMathSciNetMATHGoogle Scholar
  2. 2.
    Brookes, S.D.: On the relationship of CCS and CSP. In: Díaz, J. (ed.) ICALP 1983. LNCS, vol. 154. Springer, Heidelberg (1983)Google Scholar
  3. 3.
    Brookes, S.D., Hoare, C.A.R., Roscoe, A.W.: A theory of communicating sequential processes. J. ACM 31 (1984)Google Scholar
  4. 4.
    Bergstra, J.A., Klop, J.W.: Algebra of communicating processes with abstraction. TCS 37(1), 77–121 (1985)CrossRefMathSciNetMATHGoogle Scholar
  5. 5.
    Cleaveland, R., Parrow, J., Steffen, B.: The Concurrency Workbench. In: Sifakis, J. (ed.) CAV 1989. LNCS, vol. 407, pp. 24–37. Springer, Heidelberg (1990)Google Scholar
  6. 6.
    Cleaveland, R., Hennessy, M.: Testing Equivalence as a Bisimulation Equivalence. FACS 3 (1992)Google Scholar
  7. 7.
    Gardiner, P.: Power simulation and its relation to traces and failures refinement. TCS 309(1), 157–176 (2003)CrossRefMathSciNetMATHGoogle Scholar
  8. 8.
    Hennessy, M., Milner, R.: Algebraic laws for non-determinism and concurrency. J. ACM 31(1), 137–161 (1985)CrossRefMathSciNetGoogle Scholar
  9. 9.
    Groote, J.F., Vaandrager, F.: Structured operational semantics and bisimulation as a congruence. Information and Computation 100(2), 202–260 (1992)CrossRefMathSciNetMATHGoogle Scholar
  10. 10.
    Hoare, C.A.R., Jifeng, H.: Unifying theories of programming. Prentice-Hall, Englewood Cliffs (1998)Google Scholar
  11. 11.
    Hoare, C.A.R., Misra, J.: Verified Software: theories, tools, experiments. In: Meyer, B., Woodcock, J. (eds.) VSTTE 2005. LNCS, vol. 4171, pp. 1–18. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  12. 12.
    Jensen, O.H., Milner, R.: Bigraphs and mobile processes (revised), UCAM-CL-TR-580 (2004)Google Scholar
  13. 13.
    Larsen, K., Skou, A.: Bisimulation through probabilistic testing. In: POPL proceedings (1989)Google Scholar
  14. 14.
    Milner, R.: Communication and concurrency. Prentice-Hall, Englewood Cliffs (1985)Google Scholar
  15. 15.
    Milner, R.: Communicating and mobile systems: the π-calculus. Cambridge University Press, Cambridge (1999)Google Scholar
  16. 16.
    Milner, R., Sangiorgi, D.: Barbed Bisimulation. In: ICALP 1992 (1992)Google Scholar
  17. 17.
    Phillips, I.: Refusal testing. In: Kott, L. (ed.) ICALP 1986. LNCS, vol. 226, pp. 304–313. Springer, Heidelberg (1986)Google Scholar
  18. 18.
    Plotkin, G.D.: A structural approach to operational semantics. DAIMI-FN-19, Aarhus University, Denmark (1981)Google Scholar
  19. 19.
    Rajamani, S.K., Rehof, J., Qadeer, S., Xie, Y., Andrews, T.: Zing: a model checker for concurrent software. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 484–487. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  20. 20.
    Roscoe, A.W.: The theory and practice of concurrency. Prentice-Hall, Englewood Cliffs (1998)Google Scholar
  21. 21.
    Roscoe, A.W.: Revivals, stuckness and responsiveness (unpublished draft)Google Scholar
  22. 22.
    Roscoe, A.W.: Model checking in CSP. In: A classical mind: essays in honour of C.A.R. Hoare. Prentice-Hall, Englewood Cliffs (1994)Google Scholar
  23. 23.
    Scott, D.: Data types as lattices. SIAM Journal on Computing 5, 522–587 (1976)CrossRefMathSciNetMATHGoogle Scholar
  24. 24.
    van Glabbeek, R.J.: Notes on the methodology of CCS and CSP, CWI report CS-R8624 (1986)Google Scholar
  25. 25.
    van Glabbeek, R.J.: The Linear Time – Branching time Spectrum. In: Handbook of Process Algebra, pp. 3–39. Elsevier, Amsterdam (2001)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Jifeng He
    • 1
  • Tony Hoare
    • 2
  1. 1.Software Engineering InstituteEast China Normal University 
  2. 2.Microsoft Research Ltd.Cambridge

Personalised recommendations