Abstract
We present a translation of CCS into CSP which is correct with respect to strong bisimulation. To our knowledge this is the first such translation to enjoy a correctness property. This contributes to the unification of the CCS and CSP families of concurrent calculi, in the spirit of Hoare and He’s unification programme through Unifying Theories of Programming. To facilitate this translation, we define CCSTau, the extension of CCS with visible synchronisation actions and the hiding operator. This separation of concerns between synchronisation and hiding turns out be sufficient to obtain our correct translation. Our translation, implemented in a Haskell prototype, makes it possible to use CSP-based verifiers such as FDR to reason about trace and failure (hence may- and must-testing) preorders for CCS processes.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
In what follows, whether P, Q, R refer to CCS or CSP will be clear by the context.
- 2.
Although more involved versions of \(c2ccs\tau \) would lift the restriction on recursion here, the same restriction would be needed for the end-to-end translation into CSP.
- 3.
References
Aceto, L., Larsen, K.A., Ingolfsdottir, A.: An Introduction to Milner’s CCS (2005). http://twiki.di.uniroma1.it/pub/MFS/WebHome/intro2ccs.pdf. Accessed 30 July 2021
Bengtson, J., Parrow, J., Weber, T.: Psi-calculi in Isabelle. J. Autom. Reason. 56(1), 1–47 (2015). https://doi.org/10.1007/s10817-015-9336-2
Brookes, S.D.: On the relationship of CCS and CSP. In: Diaz, J. (ed.) ICALP 1983. LNCS, vol. 154, pp. 83–96. Springer, Heidelberg (1983). https://doi.org/10.1007/BFb0036899
Ngondi, G.E.: Denotational semantics of channel mobility in UTP-CSP. Formal Aspects Comput. 33(1), 803–826 (2021). https://doi.org/10.1007/s00165-021-00546-3
FDR Documentation. https://cocotec.io/fdr/manual/. Accessed 30 July 2021
Felleisen, M.: On the expressive power of programming languages. Sci. Comput. Program. 17, 35–75 (1991). https://doi.org/10.1016/0167-6423(91)90036-W
Foster, S., Zeyda, F., Woodcock, J.: Isabelle/UTP: a mechanised theory engineering framework. In: Naumann, D. (ed.) UTP 2014. LNCS, vol. 8963, pp. 21–41. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-14806-9_2
Fu, Y., Lu, H.: On the expressiveness of interaction. TCS 411, 1387–1451 (2010). https://doi.org/10.1016/j.tcs.2009.11.011
Garavel, H.: Revisiting sequential composition in process calculi. J. Log. Algebraic Methods Program 84, 742–762 (2015). https://doi.org/10.1016/j.jlamp.2015.08.001
van Glabbeek, R.: Musings on encodings and expressiveness. In: EPTCS, vol. 89, pp. 81–98 (2012). https://doi.org/10.4204/EPTCS.89.7
Gorla, D.: Towards a unified approach to encodability and separation results for process calculi. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 492–507. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-85361-9_38
Hatzel, M., Wagner, C., Peters, K., Nestmann, U.: Encoding CSP into CCS. In: EXPRESS/SOS Workshop. EPTCS, vol. 190, pp. 61–75 (2015). https://doi.org/10.4204/EPTCS.190.5
He, J., Hoare, C.A.R.: CSP is a retract of CCS. TCS 411, 1311–1337 (2010). https://doi.org/10.1016/j.tcs.2009.12.012
Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Hoboken (1985)
Hoare, C.A.R.: Why ever CSP. ENTCS 162, 209–215 (2006). https://doi.org/10.1016/j.entcs.2006.01.031
Milner, R.: Communicating and Mobile Systems: The Pi-Calculus. Cambridge University Press, Cambridge (1999)
Milner, R.: Communication and Concurrency. Prentice-Hall, Hoboken (1989)
De Nicola, R., Hennessy, M.: CCS without \(\tau \)’s. In: Ehrig, H., Kowalski, R., Levi, G., Montanari, U. (eds.) CAAP 1987. LNCS, vol. 249, pp. 138–152. Springer, Heidelberg (1987). https://doi.org/10.1007/3-540-17660-8_53
Parrow, J.: Expressiveness of process algebras. ENTCS 209, 173–186 (2008). https://doi.org/10.1016/j.entcs.2008.04.011
Peters, K.: Comparing process calculi using encodings. In: EXPRESS/SOS Workshop. EPTCS, vol. 300, pp. 19–38 (2019). https://doi.org/10.4204/EPTCS.300.2
Sangiorgi, D.: Introduction to Bisimulation and Coinduction. Cambridge University Press, Cambridge (2012)
Schneider, S.: Concurrent and Real-Time Systems - The CSP Approach. Wiley, Hoboken (2000)
Haskell Prototype Automation of CCS-to-CSP Translation: GitHub Repository. https://github.com/andrewbutterfield/ccs2csp. Accessed 30 July 2021
Acknowledgments
The authors are grateful to the anonymous reviewers for their suggestions on how to improve this paper. This work was funded in part by the Science Foundation Ireland grant 13/RC/2094 (LERO), and co-funded by the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No 754489. For the purpose of Open Access, the authors have applied a CC BY public copyright licence to any Author Accepted Manuscript version arising from this submission.
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Ngondi, G.E., Koutavas, V., Butterfield, A. (2021). Translation of CCS into CSP, Correct up to Strong Bisimulation. In: Calinescu, R., Păsăreanu, C.S. (eds) Software Engineering and Formal Methods. SEFM 2021. Lecture Notes in Computer Science(), vol 13085. Springer, Cham. https://doi.org/10.1007/978-3-030-92124-8_14
Download citation
DOI: https://doi.org/10.1007/978-3-030-92124-8_14
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-92123-1
Online ISBN: 978-3-030-92124-8
eBook Packages: Computer ScienceComputer Science (R0)