# Generalised rely-guarantee concurrency: an algebraic foundation

- 155 Downloads
- 8 Citations

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

## Keywords

Concurrent programming rely-guarantee concurrency program verification program algebra concurrent Kleene algebra## Preview

Unable to display preview. Download preview PDF.

## References

- Aar92.Aarts CJ (1992) Galois connections presented calculationally. Technical report, Department of Computing Science, Eindhoven University of Technology. Afstudeer verslag (Graduating Dissertation)Google Scholar
- ABB+95.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**)Google Scholar - Acz83.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
- Bac81.Back R-JR (1981) On correct refinement of programs. J Comput Syst Sci 23(1): 49–68MathSciNetCrossRefzbMATHGoogle Scholar
- BCG02.Backhouse R, Crole R, Gibbons J (eds) (2002) Algebraic and coalgebraic methods in the mathematics of program construction. Springer, BerlinGoogle Scholar
- Bli78.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–251Google Scholar
- BvW98.Back R-JR, von Wright J (1998) Refinement calculus: a systematic introduction. Springer, New YorkCrossRefzbMATHGoogle Scholar
- BvW99.Back R-JR, von Wright J (1999) Reasoning algebraically about loops. Acta Informatica 36: 295–334MathSciNetCrossRefzbMATHGoogle Scholar
- CJ07.Coleman JW, Jones CB (2007) A structural proof of the soundness of rely/guarantee rules. J Logic Comput 17(4): 807–841MathSciNetCrossRefzbMATHGoogle Scholar
- Con71.Conway JH (1971) Regular algebra and finite machines. Chapman & Hall, LondonzbMATHGoogle Scholar
- dBHdR99.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–1265Google Scholar
- Din00.Dingel J (2000) Systematic parallel programming. PhD thesis, Carnegie Mellon University. CMU-CS-99-172Google Scholar
- Din02.Dingel J (2002) A refinement calculus for shared-variable parallel and distributed programming. Formal Asp Comput 14(2): 123–197CrossRefzbMATHGoogle Scholar
- dR01.de Roever W-P (2001) Concurrency verification: introduction to compositional and noncompositional methods. Cambridge University Press, CambridgeGoogle Scholar
- HH86.Hoare CAR, He J (1986) The weakest prespecification. Fundamenta Informaticae IX:51–84Google Scholar
- HHH+87.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):770Google Scholar
- HJC14.Hayes IJ, Jones CB, Colvin RJ (2014) Laws and semantics for rely-guarantee refinement. Technical Report CS-TR-1425, Newcastle UniversityGoogle Scholar
- HMSW11.Hoare T, Möller B, Struth G, Wehrman I (2011) Concurrent Kleene algebra and its foundations. J Log Algebr Program 80(6): 266–296MathSciNetCrossRefzbMATHGoogle Scholar
- Hoa69.Hoare CAR (1969) An axiomatic basis for computer programming. Commun ACM 12(10):576–580, 583Google Scholar
- JHC15.Jones CB, Hayes IJ, Colvin RJ (2015) Balancing expressiveness in formal approaches to concurrency. Formal Asp Comput 27: 475–497MathSciNetCrossRefzbMATHGoogle Scholar
- Jon81.Jones CB (1981) Development methods for computer programs including a notion of interference. PhD thesis, Oxford University. Printed as: Programming Research Group, Technical Monograph 25Google Scholar
- Jon83.Jones CB (1983) Tentative steps toward a development method for interfering programs. ACM Trans Program Lang Syst 5(4): 596–619CrossRefzbMATHGoogle Scholar
- Jon96.Jones CB (1996) Accommodating interference in the formal design of concurrent object-based programs. Formal Methods Syst Design 8(2): 105–122CrossRefGoogle Scholar
- Koz97.Kozen D (1997) Kleene algebra with tests. ACM Trans Program Lang Syst 19(3): 427–443MathSciNetCrossRefzbMATHGoogle Scholar
- Mor87.Morris JM (1987) A theoretical basis for stepwise refinement and the programming calculus. Sci Comput Program 9(3): 287–306MathSciNetCrossRefzbMATHGoogle Scholar
- Mor88.Morgan CC (1988) The specification statement. ACM Trans Program Lang Syst 10(3): 403–419CrossRefzbMATHGoogle Scholar
- Mor94.Morgan CC (1994) Programming from specifications, 2nd edn. Prentice Hall, Upper Saddle RiverGoogle Scholar
- vW04.von Wright J (2004) Towards a refinement algebra. Sci Comput Program 51: 23–45MathSciNetCrossRefzbMATHGoogle Scholar
- ZH81.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–23Google Scholar
- Zho82.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. ACMGoogle Scholar