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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
In algebraic terms it forms a monoid with identity \(\mathbf {nil}\).
- 2.
In algebraic terms it forms a commutative monoid with identity \(\mathbf {skip}\).
- 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.
More generally it can be a set of variables.
References
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
Back, R.-J.R.: Correctness preserving program refinements: proof theory and applications. Tract 131, Mathematisch Centrum, Amsterdam (1980)
Back, R.-J.R., von Wright, J.: Refinement Calculus: A Systematic Introduction. Springer, New York (1998)
Brookes, S.: A semantics for concurrent separation logic. Theoret. Comput. Sci. 375(1–3), 227–270 (2007)
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
Coleman, J.W., Jones, C.B.: A structural proof of the soundness of rely/guarantee rules. J. Log. Comput. 17(4), 807–841 (2007)
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)
de Roever, W.-P.: Concurrency Verification: Introduction to Compositional and Noncompositional Methods. Cambridge University Press, Cambridge (2001)
Dijkstra, E.W.: Guarded commands, nondeterminacy, and a formal derivation of programs. CACM 18, 453–458 (1975)
Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Upper Saddle River (1976)
Dingel, J.: A refinement calculus for shared-variable parallel and distributed programming. Formal Aspects Comput. 14(2), 123–197 (2002)
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)
Hayes, I.J.: Generalised rely-guarantee concurrency: an algebraic foundation. Formal Aspects Comput. 28(6), 1057–1078 (2016)
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
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)
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
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)
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)
Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580, 583 (1969)
Hoare, C.A.R.: Towards a theory of parallel programming. In: Operating System Techniques, pp. 61–71. Academic Press (1972)
Hoare, C.A.R., et al.: Laws of programming. Commun. ACM 30(8), 672–686 (1987). Corrigenda: CACM 30(9), 770
Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice Hall, London (1998)
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)
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
Jones, C.B.: Specification and design of (parallel) programs. In: Proceedings of IFIP 1983, pp. 321–332, North-Holland (1983)
Jones, C.B.: Tentative steps toward a development method for interfering programs. ACM ToPLaS 5(4), 596–619 (1983)
Kozen, D.: Kleene algebra with tests. ACM Trans. Prog. Lang. Sys. 19(3), 427–443 (1997)
Meinicke, L.A., Hayes, I.J.: Handling localisation in rely/guarantee concurrency: an algebraic approach. arXiv:1907.04005 [cs.LO] (2019)
Milner, A.J.R.G.: Communication and Concurrency. Prentice-Hall, Upper Saddle River (1989)
Milner, R.: Calculi for synchrony and asynchrony. Theoret. Comput. Sci. 25(3), 267–310 (1983)
Morgan, C.C.: The specification statement. ACM Trans. Prog. Lang. Sys. 10(3), 403–419 (1988)
Morgan, C.C.: Programming from Specifications, 2nd edn. Prentice Hall, Upper Saddle River (1994)
Morris, J.M.: A theoretical basis for stepwise refinement and the programming calculus. Sci. Comput. Program. 9(3), 287–306 (1987)
Moszkowski, B.C.: Executing Temporal Logic Programs. Cambridge University Press, Cambridge (1986)
Prisacariu, C.: Synchronous Kleene algebra. J. Log. Algebr. Program. 79(7), 608–635 (2010)
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)
Schwarz, J.: Generic commands–a tool for partial correctness formalisms. Comput. J. 20(2), 151–155 (1977)
von Wright, J.: Towards a refinement algebra. Sci. Comput. Program. 51, 23–45 (2004)
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
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)