Skip to main content

Developing an Algebra for Rely/Guarantee Concurrency: Design Decisions and Challenges

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 11885))

Abstract

An algebra for rely/guarantee concurrency has been constructed via a hierarchy of algebraic theories starting from basic theories like lattices through to theories of synchronous behaviour of atomic steps and a theory to support localisation. The algebra is supported by a model based on Aczel traces. We examine the role of these theories in developing a mechanised theory for deriving concurrent programs and outline some of the challenges remaining.

This research was supported by Discovery Grant DP190102142 from the Australian Research Council (ARC).

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Learn about institutional subscriptions

Notes

  1. 1.

    In algebraic terms it forms a monoid with identity \(\mathbf {nil}\).

  2. 2.

    In algebraic terms it forms a commutative monoid with identity \(\mathbf {skip}\).

  3. 3.

    For this version q is a set of states; a more general version where q is a binary relation between states can also be defined.

  4. 4.

    More generally it can be a set of variables.

References

  1. Aczel, P.H.G.: On an inference rule for parallel composition. Private communication to Cliff Jones (1983). http://homepages.cs.ncl.ac.uk/cliff.jones/publications/MSs/PHGA-traces.pdf

  2. Back, R.-J.R.: Correctness preserving program refinements: proof theory and applications. Tract 131, Mathematisch Centrum, Amsterdam (1980)

    Google Scholar 

  3. Back, R.-J.R., von Wright, J.: Refinement Calculus: A Systematic Introduction. Springer, New York (1998)

    Book  Google Scholar 

  4. Brookes, S.: A semantics for concurrent separation logic. Theoret. Comput. Sci. 375(1–3), 227–270 (2007)

    Article  MathSciNet  Google Scholar 

  5. Cohen, E.: Separation and reduction. In: Backhouse, R., Oliveira, J.N. (eds.) MPC 2000. LNCS, vol. 1837, pp. 45–59. Springer, Heidelberg (2000). https://doi.org/10.1007/10722010_4

    Chapter  Google Scholar 

  6. Coleman, J.W., Jones, C.B.: A structural proof of the soundness of rely/guarantee rules. J. Log. Comput. 17(4), 807–841 (2007)

    Article  MathSciNet  Google Scholar 

  7. Colvin, R.J., Hayes, I.J., Meinicke, L.A.: Designing a semantic model for a wide-spectrum language with concurrency. Formal Aspects Comput. 29, 853–875 (2016)

    Article  MathSciNet  Google Scholar 

  8. de Roever, W.-P.: Concurrency Verification: Introduction to Compositional and Noncompositional Methods. Cambridge University Press, Cambridge (2001)

    MATH  Google Scholar 

  9. Dijkstra, E.W.: Guarded commands, nondeterminacy, and a formal derivation of programs. CACM 18, 453–458 (1975)

    Article  MathSciNet  Google Scholar 

  10. Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Upper Saddle River (1976)

    MATH  Google Scholar 

  11. Dingel, J.: A refinement calculus for shared-variable parallel and distributed programming. Formal Aspects Comput. 14(2), 123–197 (2002)

    Article  Google Scholar 

  12. Dongol, B., Hayes, I.J., Meinicke, L.A., Struth, G.: Cylindric kleene lattices for program construction. In: Hutton, G. (ed.) Mathematics of Program Construction 2019. LNCS. Springer, Cham, October 2019 (2019)

    Google Scholar 

  13. Hayes, I.J.: Generalised rely-guarantee concurrency: an algebraic foundation. Formal Aspects Comput. 28(6), 1057–1078 (2016)

    Article  MathSciNet  Google Scholar 

  14. Hayes, I.J., Colvin, R.J., Meinicke, L.A., Winter, K., Velykis, A.: An algebra of synchronous atomic steps. In: Fitzgerald, J., Heitmeyer, C., Gnesi, S., Philippou, A. (eds.) FM 2016. LNCS, vol. 9995, pp. 352–369. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-48989-6_22

    Chapter  Google Scholar 

  15. Hayes, I.J., Meinicke, L.A.: Encoding fairness in a synchronous concurrent program algebra. In: Havelund, K., Peleska, J., Roscoe, B., de Vink, E. (eds.) Formal Methods. Lecture Notes in Computer Science, pp. 222–239. Springer International Publishing, Cham (2018)

    Chapter  Google Scholar 

  16. Hayes, I.J.: Some challenges of specifying concurrent program components. In: Derrick, J., Dongol, B., Reeves, S. (eds.), Proceedings 18th Refinement Workshop, Electronic Proceedings in Theoretical Computer Science, Oxford, UK, 18th July 2018, vol. 282, pp. 10–22. Open Publishing Association, October 2018

    Google Scholar 

  17. Hayes, I.J., Meinicke, L.A., Winter, K., Colvin, R.J.: A synchronous program algebra: a basis for reasoning about shared-memory and event-based concurrency. Formal Aspects Comput. 31(2), 133–163 (2019)

    Article  MathSciNet  Google Scholar 

  18. Henkin, L., Monk, J.D., Tarski, A.: Cylindric Algebras, Part I. Studies in logic and the foundations of mathematics, vol. 64. North-Holland Pub. Co., New York (1971)

    MATH  Google Scholar 

  19. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580, 583 (1969)

    Article  Google Scholar 

  20. Hoare, C.A.R.: Towards a theory of parallel programming. In: Operating System Techniques, pp. 61–71. Academic Press (1972)

    Google Scholar 

  21. Hoare, C.A.R., et al.: Laws of programming. Commun. ACM 30(8), 672–686 (1987). Corrigenda: CACM 30(9), 770

    Article  MathSciNet  Google Scholar 

  22. Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice Hall, London (1998)

    MATH  Google Scholar 

  23. Hoare, C.A.R., Möller, B., Struth, G., Wehrman, I.: Concurrent Kleene algebra and its foundations. J. Log. Algebr. Program. 80(6), 266–296 (2011)

    Article  MathSciNet  Google Scholar 

  24. Jones, C.B.: Development methods for computer programs including a notion of interference. Ph.D. thesis, Oxford University, June 1981. Available as: Oxford University Computing Laboratory (now Computer Science) Technical Monograph PRG-25

    Google Scholar 

  25. Jones, C.B.: Specification and design of (parallel) programs. In: Proceedings of IFIP 1983, pp. 321–332, North-Holland (1983)

    Google Scholar 

  26. Jones, C.B.: Tentative steps toward a development method for interfering programs. ACM ToPLaS 5(4), 596–619 (1983)

    Article  Google Scholar 

  27. Kozen, D.: Kleene algebra with tests. ACM Trans. Prog. Lang. Sys. 19(3), 427–443 (1997)

    Article  Google Scholar 

  28. Meinicke, L.A., Hayes, I.J.: Handling localisation in rely/guarantee concurrency: an algebraic approach. arXiv:1907.04005 [cs.LO] (2019)

  29. Milner, A.J.R.G.: Communication and Concurrency. Prentice-Hall, Upper Saddle River (1989)

    MATH  Google Scholar 

  30. Milner, R.: Calculi for synchrony and asynchrony. Theoret. Comput. Sci. 25(3), 267–310 (1983)

    Article  MathSciNet  Google Scholar 

  31. Morgan, C.C.: The specification statement. ACM Trans. Prog. Lang. Sys. 10(3), 403–419 (1988)

    Article  Google Scholar 

  32. Morgan, C.C.: Programming from Specifications, 2nd edn. Prentice Hall, Upper Saddle River (1994)

    MATH  Google Scholar 

  33. Morris, J.M.: A theoretical basis for stepwise refinement and the programming calculus. Sci. Comput. Program. 9(3), 287–306 (1987)

    Article  MathSciNet  Google Scholar 

  34. Moszkowski, B.C.: Executing Temporal Logic Programs. Cambridge University Press, Cambridge (1986)

    MATH  Google Scholar 

  35. Prisacariu, C.: Synchronous Kleene algebra. J. Log. Algebr. Program. 79(7), 608–635 (2010)

    Article  MathSciNet  Google Scholar 

  36. Schellhorn, G., Tofan, B., Ernst, G., Pfähler, J., Reif, W.: RGITL: a temporal logic framework for compositional reasoning about interleaved programs. Ann. Math. Artif. Intell. 71(1–3), 131–174 (2014)

    Article  MathSciNet  Google Scholar 

  37. Schwarz, J.: Generic commands–a tool for partial correctness formalisms. Comput. J. 20(2), 151–155 (1977)

    Article  MathSciNet  Google Scholar 

  38. von Wright, J.: Towards a refinement algebra. Sci. Comput. Program. 51, 23–45 (2004)

    Article  MathSciNet  Google Scholar 

Download references

Acknowledgements

This research was supported by Discovery Grant DP190102142 from the Australian Research Council (ARC). Thanks are due to Joakim von Wright for introducing us to program algebra and Robert Colvin, Brijesh Dongol, Cliff Jones, Patrick Meiring, Kim Solin, Georg Struth, Andrius Velykis, and Kirsten Winter, for their input on ideas presented here.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ian J. Hayes .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Hayes, I.J., Meinicke, L.A. (2019). Developing an Algebra for Rely/Guarantee Concurrency: Design Decisions and Challenges. In: Ribeiro, P., Sampaio, A. (eds) Unifying Theories of Programming. UTP 2019. Lecture Notes in Computer Science(), vol 11885. Springer, Cham. https://doi.org/10.1007/978-3-030-31038-7_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-31038-7_9

  • Published:

  • Publisher Name: Springer, Cham

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

  • Online ISBN: 978-3-030-31038-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics