Handling localisation in rely/guarantee concurrency: An algebraic approach

The rely/guarantee approach of Jones extends Hoare logic with rely and guarantee conditions in order to allow compositional reasoning about shared-variable concurrent programs. This paper focuses on localisation in the context of rely/guarantee concurrency in order to support local variables. Because we allow the body of a local variable block to contain component processes that run in parallel, the approach needs to allow variables local to a block to become shared variables of its component parallel processes. To support the mechanisation of the rely/guarantee approach, we have developed a synchronous concurrent refinement algebra. Its foundation consists of a small set of primitive commands plus a small set of primitive operators from which all remaining constructs are defined. To support local variables we add a primitive localisation operator to our algebra that is used to define local variable blocks. From this we can prove properties of localisation, including its interaction with rely and guarantee conditions.

[1]  Robert Colvin,et al.  A synchronous program algebra: a basis for reasoning about shared-memory and event-based concurrency , 2017, Formal Aspects of Computing.

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

[3]  Robert Colvin,et al.  An Algebra of Synchronous Atomic Steps , 2016, FM.

[4]  Cristian Prisacariu,et al.  Synchronous Kleene algebra , 2010 .

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

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

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

[8]  Cliff B. Jones,et al.  Specification and Design of (Parallel) Programs , 1983, IFIP Congress.

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

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

[11]  Leonor Prensa Nieto The Rely-Guarantee Method in Isabelle/HOL , 2003, ESOP.

[12]  Willem P. de Roever,et al.  The rely-guarantee method for verifying shared variable concurrent programs , 1997, Formal Aspects of Computing.

[13]  Robert Colvin,et al.  Designing a semantic model for a wide-spectrum language with concurrency , 2016, Formal Aspects of Computing.

[14]  Ian J. Hayes,et al.  Concurrent Refinement Algebra and Rely Quotients , 2016, Arch. Formal Proofs.

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

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