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