Advertisement

Formal Aspects of Computing

, Volume 28, Issue 6, pp 1057–1078 | Cite as

Generalised rely-guarantee concurrency: an algebraic foundation

  • Ian J. HayesEmail author
Original Article

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.

Unable to display preview. Download preview PDF.

References

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

Copyright information

© British Computer Society 2016

Authors and Affiliations

  1. 1.School of Information Technology and Electrical EngineeringThe University of QueenslandBrisbaneAustralia

Personalised recommendations