## Abstract

The rely-guarantee technique allows one to reason compositionally about concurrent programs. To handle interference the technique makes use of rely and guarantee conditions, both of which are binary relations on states. A rely condition is an assumption that the environment performs only atomic steps satisfying the rely relation and a guarantee is a commitment that every atomic step the program makes satisfies the guarantee relation. In order to investigate rely-guarantee reasoning more generally, in this paper we allow interference to be represented by a process rather than a relation and hence derive more general rely-guarantee laws. The paper makes use of a weak conjunction operator between processes, which generalises a guarantee relation to a guarantee process, and introduces a rely quotient operator, which generalises a rely relation to a process. The paper focuses on the algebraic properties of the general rely-guarantee theory. The Jones-style rely-guarantee theory can be interpreted as a model of the general algebraic theory and hence the general laws presented here hold for that theory.

### Similar content being viewed by others

## References

Aarts CJ (1992) Galois connections presented calculationally. Technical report, Department of Computing Science, Eindhoven University of Technology. Afstudeer verslag (Graduating Dissertation)

Aarts C, Backhouse R, Boiten E, Doombos H, van Gasteren N, van Geldrop R, Hoogendijk P, Voermans E, van der Woude J (1995) Fixed-point calculus. Inform Process Lett 53:131–136. (

**Mathematics of Program Construction Group**)Aczel PHG (1983) On an inference rule for parallel composition. Private communication to Cliff Jones. http://homepages.cs.ncl.ac.uk/cliff.jones/publications/MSs/PHGA-traces.pdf

Back R-JR (1981) On correct refinement of programs. J Comput Syst Sci 23(1): 49–68

Backhouse R, Crole R, Gibbons J (eds) (2002) Algebraic and coalgebraic methods in the mathematics of program construction. Springer, Berlin

Blikle A (1978) Specified programming. In: Blum EK, Paul M, Takasu S (eds) Mathematical studies of information processing, volume 75 of Lecture Notes in Computer Science. Springer, Berlin, pp 228–251

Back R-JR, von Wright J (1998) Refinement calculus: a systematic introduction. Springer, New York

Back R-JR, von Wright J (1999) Reasoning algebraically about loops. Acta Informatica 36: 295–334

Coleman JW, Jones CB (2007) A structural proof of the soundness of rely/guarantee rules. J Logic Comput 17(4): 807–841

Conway JH (1971) Regular algebra and finite machines. Chapman & Hall, London

de Boer FS, Hannemann U, de Roever W-P (1999) Formal justification of the rely-guarantee paradigm for shared-variable concurrency: a semantic approach. In: Wing J, Woodcock J, Davies J (eds) FM99 formal methods, volume 1709 of Lecture Notes in Computer Science. Springer, Berlin, pp 1245–1265

Dingel J (2000) Systematic parallel programming. PhD thesis, Carnegie Mellon University. CMU-CS-99-172

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

de Roever W-P (2001) Concurrency verification: introduction to compositional and noncompositional methods. Cambridge University Press, Cambridge

Hoare CAR, He J (1986) The weakest prespecification. Fundamenta Informaticae IX:51–84

Hoare CAR, Hayes IJ, He J, Morgan C, Roscoe AW, Sanders JW, Sørensen IH, Spivey JM, Sufrin BA (1987) Laws of programming. Commun ACM 30(8):672–686. Corrigenda: CACM 30(9):770

Hayes IJ, Jones CB, Colvin RJ (2014) Laws and semantics for rely-guarantee refinement. Technical Report CS-TR-1425, Newcastle University

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

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

Jones CB, Hayes IJ, Colvin RJ (2015) Balancing expressiveness in formal approaches to concurrency. Formal Asp Comput 27: 475–497

Jones CB (1981) Development methods for computer programs including a notion of interference. PhD thesis, Oxford University. Printed as: Programming Research Group, Technical Monograph 25

Jones CB (1983) Tentative steps toward a development method for interfering programs. ACM Trans Program Lang Syst 5(4): 596–619

Jones CB (1996) Accommodating interference in the formal design of concurrent object-based programs. Formal Methods Syst Design 8(2): 105–122

Kozen D (1997) Kleene algebra with tests. ACM Trans Program Lang Syst 19(3): 427–443

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

Morgan CC (1988) The specification statement. ACM Trans Program Lang Syst 10(3): 403–419

Morgan CC (1994) Programming from specifications, 2nd edn. Prentice Hall, Upper Saddle River

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

Zhou C, Hoare CAR (1981) Partial correctness of communication protocols. Technical Monograph PRG-20, Partial Correctness of Communicating Processes and Protocols. Oxford University Computing, Laboratory, pp 13–23

Zhou C (1982) Weakest environment of communicating processes. In: Proc. of the June 7–10, 1982, National Computer Conf., AFIPS ’82, pp 679–690, New York, NY, USA. ACM

## Author information

### Authors and Affiliations

### Corresponding author

## Additional information

Jim Woodcock

## Rights and permissions

## About this article

### Cite this article

Hayes, I.J. Generalised rely-guarantee concurrency: an algebraic foundation.
*Form Asp Comp* **28**, 1057–1078 (2016). https://doi.org/10.1007/s00165-016-0384-0

Received:

Accepted:

Published:

Issue Date:

DOI: https://doi.org/10.1007/s00165-016-0384-0