Skip to main content

Translation of CCS into CSP, Correct up to Strong Bisimulation

  • Conference paper
  • First Online:
Software Engineering and Formal Methods (SEFM 2021)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    In what follows, whether PQR refer to CCS or CSP will be clear by the context.

  2. 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. 3.

    E.g., let \(P=Q=0\) in Example 33 then, compare the mixed choice case with Example 32.

References

  1. 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

  2. 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

    Article  MathSciNet  MATH  Google Scholar 

  3. 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

    Chapter  Google Scholar 

  4. 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

    Article  MathSciNet  MATH  Google Scholar 

  5. FDR Documentation. https://cocotec.io/fdr/manual/. Accessed 30 July 2021

  6. 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

    Article  MathSciNet  MATH  Google Scholar 

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

    Chapter  Google Scholar 

  8. Fu, Y., Lu, H.: On the expressiveness of interaction. TCS 411, 1387–1451 (2010). https://doi.org/10.1016/j.tcs.2009.11.011

    Article  MathSciNet  MATH  Google Scholar 

  9. 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

    Article  MathSciNet  MATH  Google Scholar 

  10. van Glabbeek, R.: Musings on encodings and expressiveness. In: EPTCS, vol. 89, pp. 81–98 (2012). https://doi.org/10.4204/EPTCS.89.7

  11. 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

    Chapter  Google Scholar 

  12. 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

  13. 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

    Article  MathSciNet  MATH  Google Scholar 

  14. Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Hoboken (1985)

    MATH  Google Scholar 

  15. Hoare, C.A.R.: Why ever CSP. ENTCS 162, 209–215 (2006). https://doi.org/10.1016/j.entcs.2006.01.031

    Article  MATH  Google Scholar 

  16. Milner, R.: Communicating and Mobile Systems: The Pi-Calculus. Cambridge University Press, Cambridge (1999)

    MATH  Google Scholar 

  17. Milner, R.: Communication and Concurrency. Prentice-Hall, Hoboken (1989)

    MATH  Google Scholar 

  18. 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

    Chapter  Google Scholar 

  19. Parrow, J.: Expressiveness of process algebras. ENTCS 209, 173–186 (2008). https://doi.org/10.1016/j.entcs.2008.04.011

    Article  MathSciNet  MATH  Google Scholar 

  20. 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

  21. Sangiorgi, D.: Introduction to Bisimulation and Coinduction. Cambridge University Press, Cambridge (2012)

    MATH  Google Scholar 

  22. Schneider, S.: Concurrent and Real-Time Systems - The CSP Approach. Wiley, Hoboken (2000)

    Google Scholar 

  23. Haskell Prototype Automation of CCS-to-CSP Translation: GitHub Repository. https://github.com/andrewbutterfield/ccs2csp. Accessed 30 July 2021

Download references

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

Authors

Corresponding authors

Correspondence to Gerard Ekembe Ngondi , Vasileios Koutavas or Andrew Butterfield .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics