Skip to main content
Log in

Generalised rely-guarantee concurrency: an algebraic foundation

  • Original Article
  • Published:
Formal Aspects of Computing

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.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

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

  2. 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)

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

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

    Article  MathSciNet  MATH  Google Scholar 

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

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

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

    Book  MATH  Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

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

    MATH  Google Scholar 

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

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

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

    Article  MATH  Google Scholar 

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

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

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

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

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

    Article  MathSciNet  MATH  Google Scholar 

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

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

    Article  MathSciNet  MATH  Google Scholar 

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

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

    Article  MATH  Google Scholar 

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

    Article  Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

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

    Article  MATH  Google Scholar 

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

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

    Article  MathSciNet  MATH  Google Scholar 

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

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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ian J. Hayes.

Additional information

Jim Woodcock

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

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

Keywords

Navigation