Skip to main content

The Process Algebra CSP

  • Chapter
  • First Online:
Formal Methods for Software Engineering

Abstract

Concerning distributed systems, process algebra plays a role similar to the one lambda calculus takes for sequential systems: phenomena such as deadlock, fairness, causality can be made precise and studied within process calculi. Furthermore, process algebra is applied in the modelling and verification of industrial strength systems. This chapter introduces syntax, semantics, and methods of the process algebra Csp and studies tool support for Csp including simulation, model checking, theorem proving and code-generation. Examples studied include an automated teller machine, a jet engine controller, a fault tolerant communication system, and a self-stabilising system in the form of a mathematical puzzle. Advanced material on the semantic models of Csp, process algebraic equations, denotational semantics for recursive equations, and refinement based proof methods for deadlock, livelock, and determinism conclude the chapter.

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
eBook
USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 84.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Change history

  • 20 December 2022

    .

References

  1. Pedro Antonino, Thomas Gibson-Robinson, and A. W. Roscoe. Efficient verification of concurrent systems using synchronisation analysis and SAT/SMT solving. ACM Trans. Softw. Eng. Methodol., 28(3):18:1–18:43, 2019.

    Google Scholar 

  2. Niaz Arijo, Reiko Heckel, Mirco Tribastone, and Stephen Gilmore. Modular performance modelling for mobile applications. In Second Joint WOSP/SIPEW International Conference on Performance Engineering, pages 329–334. ACM, 2011.

    Google Scholar 

  3. Bowen Alpern and Fred B. Schneider. Defining liveness. Inf. Process. Lett., 21(4):181–185, 1985.

    Article  MathSciNet  MATH  Google Scholar 

  4. Jan A. Bergstra and Jan Willem Klop. Process algebra for synchronous communication. Information and Control, 60(1-3):109–137, 1984.

    Google Scholar 

  5. Bettina Buth, Michel Kouvaras, Jan Peleska, and Hui Shi. Deadlock analysis for a fault-tolerant system. In AMAST, LNCS 1349. Springer, 1997.

    Google Scholar 

  6. Tom Bohman, Oleg Pikhurko, Alan Frieze, and Danny Sleator. Puzzle 6: Uniform candy distribution. http://www.cs.cmu.edu/puzzle/puzzle6.html, Last accessed: August 2021.

  7. Bettina Buth, Jan Peleska, and Hui Shi. Combining methods for the livelock analysis of a fault-tolerant system. In AMAST, LNCS 1548. Springer, 1998.

    Google Scholar 

  8. Ana Cavalcanti and Marie-Claude Gaudel. Testing for refinement in CSP. In 9th International Conference on Formal Engineering Methods, LNCS 4789. Springer, 2007.

    Google Scholar 

  9. Clemens Fischer. CSP-OZ: a combination of object-Z and CSP. In Formal methods for open object-based distributed systems. Chapman & Hall, 1997.

    Google Scholar 

  10. Bill Gardner. Converging CSP specifications and C++ programming via selective formalism. ACM Transactions on Embedded Computing Systems, 4(2), 2005.

    Google Scholar 

  11. Bill Gardner, 2015. http://www.uoguelph.ca/~gardnerw/csp++/, Last accessed August 2021.

  12. Andy Gimblett, Markus Roggenbach, and Bernd-Holger Schlingloff. Towards a formal specification of an electronic payment system in CSP-CASL. In WADT, LNCS 3423. Springer, 2004.

    Google Scholar 

  13. Greg Holland, Temesghen Kahsai, Markus Roggenbach, and Bernd-Holger Schlingloff. Towards formal testing of jet engine rolls-royce BR725. In Proc. 18th Int. Conf on Concurrency, Specification and Programming, Krakow, Poland, pages 217–229, 2009.

    Google Scholar 

  14. Charles Antony Richard Hoare. Communicating Sequential Processes. Prentice Hall, 1985.

    Google Scholar 

  15. Yoshinao Isobe, Faron Moller, Hoang Nga Nguyen, and Markus Roggenbach. Safety and line capacity in railways - an approach in timed CSP. In Integrated Formal Methods, LNCS 7321. Springer, 2012.

    Google Scholar 

  16. Yoshinao Isobe and Markus Roggenbach. Webpage on CSP-Prover. http://staff.aist.go.jp/y-isobe/CSP-Prover/CSP-Prover.html, Last accessed: August 2021.

  17. Yoshinao Isobe and Markus Roggenbach. A generic theorem prover of CSP refinement. In TACAS 2005, LNCS 3440. Springer, 2005.

    Google Scholar 

  18. Yoshinao Isobe and Markus Roggenbach. A complete axiomatic semantics for the CSP stable-failures model. In CONCUR 2006, LNCS 4137. Springer, 2006.

    Google Scholar 

  19. Yoshinao Isobe and Markus Roggenbach. Proof principles of CSP - CSP-Prover in practice. In Dynamics in Logistics. Springer, 2007.

    Google Scholar 

  20. Yoshinao Isobe and Markus Roggenbach. CSP-Prover - a proof tool for the verification of scalable concurrent systems. Japan Society for Software Science and Technology, Computer Software, 25, 2008.

    Google Scholar 

  21. Yoshinao Isobe, Markus Roggenbach, and Stefan Gruner. Extending CSP-Prover by deadlock-analysis: Towards the verification of systolic arrays. In FOSE 2005, Japanese Lecture Notes Series 31. Kindai-kagaku-sha, 2005.

    Google Scholar 

  22. Temesghen Kahsai, Markus Roggenbach, and Bernd-Holger Schlingloff. Specification-based testing for refinement. In SEFM 2007. IEEE Computer Society, 2007.

    Google Scholar 

  23. Temesghen Kahsai, Markus Roggenbach, and Bernd-Holger Schlingloff. Specification-based testing for software product lines. In SEFM 2008. IEEE Computer Society, 2008.

    Google Scholar 

  24. Jiang Liu, Jidong Lv, Zhao Quan, Naijun Zhan, Hengjun Zhao, Chaochen Zhou, and Liang Zou. A calculus for Hybrid CSP. In Programming Languages and Systems, LNCS 6461. Springer, 2010.

    Google Scholar 

  25. Robin Milner. Communication and concurrency. Prentice Hall, 1989.

    Google Scholar 

  26. Jeff Magee and Jeff Kramer. Concurrency: State Models & Java Programs. Wiley, 2nd edition, 2006.

    Google Scholar 

  27. Robin Milner, Joachim Parrow, and David Walker. A calculus of mobile processes, I. Inf. Comput., 100(1), 1992.

    Google Scholar 

  28. Marcel Oliveira, Ana Cavalcanti, and Jim Woodcock. A UTP semantics for Circus. Formal Asp. Comput., 21(1-2), 2009.

    Google Scholar 

  29. J. Ouaknine and J. Worrell. Timed CSP = closed timed \(\varepsilon \)-automata. Nordic Journal of Computing, 10:1–35, 2003.

    MathSciNet  MATH  Google Scholar 

  30. Jan Peleska and Bettina Buth. Formal methods for the international space station ISS. In Correct System Design, LNCS 1710. Springer, 1999.

    Google Scholar 

  31. Markus Roggenbach. CSP-CASL: A new integration of process algebra and algebraic specification. Theoretical Computer Science, 354(1):42–71, 2006.

    Article  MathSciNet  MATH  Google Scholar 

  32. A.W. Roscoe. The theory and practice of concurrency. Prentice Hall, 1998.

    Google Scholar 

  33. A. W. Roscoe. On the expressive power of CSP refinement. Formal Aspects of Computing, 17, 2003.

    Google Scholar 

  34. A. W. Roscoe. The three platonic models of divergence-strict CSP. In Theoretical Aspects of Computing, LNCS 5160. Springer, 2008.

    Google Scholar 

  35. A.W. Roscoe. Understanding Concurrent Systems. Springer, 2010.

    Google Scholar 

  36. Bryan Scattergood. The Semantics and Implementation of Machine-Readable CSP, 1998. DPhil thesis, University of Oxford.

    Google Scholar 

  37. Steve A. Schneider. Concurrent and Real-time Systems: the CSP Approach. Wiley, 2000.

    Google Scholar 

  38. Vladimiro Sassone, Mogens Nielsen, and Glynn Winskel. Models for concurrency: Towards a classification. Theor. Comput. Sci., 170(1-2):297–348, 1996.

    Article  MathSciNet  MATH  Google Scholar 

  39. Steve Schneider and Helen Treharne. CSP theorems for communicating B machines. Formal Asp. Comput., 17(4):390–422, 2005.

    Article  MATH  Google Scholar 

  40. R.J. van Glabbeek. The linear time-branching time spectrum I – the semantics of concrete, sequential processes. In Handbook of Process Algebra. Elsevier, 2001.

    MATH  Google Scholar 

  41. Peter Welch, Neil Brown, James Moores, Kevin Chalmers, and Bernhard Sputh. Integrating and extending JCSP. In CPA 2007. IOS Press, 2007.

    Google Scholar 

  42. Peter Welch. http://www.cs.kent.ac.uk/projects/ofa/jcsp/, Last accessed: August 2021.

  43. Glynn Winskel. The formal semantics of programming languages: an introduction. MIT Press, 1993.

    Google Scholar 

  44. Kirsten Winter. Model checking railway interlocking systems. Australian Computer Science Communications, 24(1), 2002.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Markus Roggenbach .

Rights and permissions

Reprints and permissions

Copyright information

© 2022 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Roggenbach, M., Shaikh, S.A., Cerone, A. (2022). The Process Algebra CSP. In: Formal Methods for Software Engineering. Texts in Theoretical Computer Science. An EATCS Series. Springer, Cham. https://doi.org/10.1007/978-3-030-38800-3_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-38800-3_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-38799-0

  • Online ISBN: 978-3-030-38800-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics