Generalised rely-guarantee concurrency: an algebraic foundation

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.

[1]  Jürgen Dingel,et al.  A Refinement Calculus for Shared-Variable Parallel and Distributed Programming , 2002, Formal Aspects of Computing.

[2]  Jozef Hooman,et al.  Concurrency Verification: Introduction to Compositional and Noncompositional Methods , 2001, Cambridge Tracts in Theoretical Computer Science.

[3]  Cliff B. Jones,et al.  Laws and Semantics for Rely-Guarantee Refinement , 2014 .

[4]  Chaochen Zhou Weakest environment of communicating processes , 1982, AFIPS '82.

[5]  Georg Struth,et al.  Hybrid process algebra , 2005, J. Log. Algebraic Methods Program..

[6]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

[7]  C. j. Aarts,et al.  Galois Connections Presented Calculationally , 1992 .

[8]  C. A. R. Hoare,et al.  Laws of programming , 1987, CACM.

[9]  Joakim von Wright,et al.  Towards a refinement algebra , 2004, Sci. Comput. Program..

[10]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[11]  Carroll Morgan,et al.  The specification statement , 1988, TOPL.

[12]  Tony Hoare,et al.  The Weakest Prespecification II , 1986 .

[13]  Joseph M. Morris,et al.  A Theoretical Basis for Stepwise Refinement and the Programming Calculus , 1987, Sci. Comput. Program..

[14]  Cliff B. Jones,et al.  A Structural Proof of the Soundness of Rely/guarantee Rules , 2007, J. Log. Comput..

[15]  C. A. R. Hoare,et al.  The Weakest Prespecification , 1987, Information Processing Letters.

[16]  Andrzej Blikle Specified programming , 1978, Mathematical Studies of Information Processing.

[17]  Juergen Dingel Systematic Parallel Programming , 2000 .

[18]  Tony Hoare,et al.  Partial Correctness of Communicating Processes and Protocols , 1981 .

[19]  Carroll Morgan,et al.  Programming from specifications (2nd ed.) , 1994 .

[20]  Cliff B. Jones,et al.  Developing methods for computer programs including a notion of interference , 1981 .

[21]  Frank S. de Boer,et al.  Formal Justification of the Rely-Guarantee Paradigm for Shared-Variable Concurrency: A Semantic Approach , 1999, World Congress on Formal Methods.

[22]  Roland Carl Backhouse,et al.  Algebraic and Coalgebraic Methods in the Mathematics of Program Construction , 2000, Lecture Notes in Computer Science.

[23]  J. Conway Regular algebra and finite machines , 1971 .

[24]  Roland Carl Backhouse,et al.  Fixed-Point Calculus , 1995, Inf. Process. Lett..

[25]  Stephen D. Brookes,et al.  Systematic parallel programming (formal program development) , 2000 .

[26]  Dexter Kozen,et al.  Kleene algebra with tests , 1997, TOPL.

[27]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.

[28]  Ralph-Johan Back,et al.  Reasoning algebraically about loops , 1999, Acta Informatica.

[29]  Roland Carl Backhouse Mathematics of Program Construction , 1996, Sci. Comput. Program..

[30]  Cliff B. Jones,et al.  Balancing expressiveness in formal approaches to concurrency , 2015, Formal Aspects of Computing.

[31]  Lauretta O. Osho,et al.  Axiomatic Basis for Computer Programming , 2013 .

[32]  Cliff B. Jones,et al.  Accommodating interference in the formal design of concurrent object-based programs , 1996, Formal Methods Syst. Des..

[33]  Ralph-Johan Back,et al.  On Correct Refinement of Programs , 1981, J. Comput. Syst. Sci..