Deriving Laws for Developing Concurrent Programs in a Rely-Guarantee Style
Ian J. Hayes, Larissa A. Meinicke, Patrick A. Meiring

TL;DR
This paper develops a formal theory for refining shared-memory concurrent algorithms using rely-guarantee conditions, supporting fine-grained concurrency and formalized in Isabelle/HOL.
Contribution
It introduces a new refinement theory for concurrent programs with rely-guarantee conditions, formalized in Isabelle/HOL, enabling precise development of concurrent algorithms.
Findings
Derived a comprehensive set of refinement laws for concurrent algorithms.
Formalized the theory and laws in Isabelle/HOL.
Supports fine-grained concurrency without atomicity assumptions.
Abstract
This paper presents a theory for the refinement of shared-memory concurrent algorithms from specifications. We augment pre and post condition specifications with Jones' rely and guarantee conditions, all of which are encoded as commands within a wide-spectrum language. Program components are specified using either partial or total correctness versions of postcondition specifications. Operations on shared data structures and atomic machine operations (e.g. compare-and-swap) are specified using an atomic specification command. All the above constructs are defined in terms of a simple core language, based on a small set of primitive commands and a handful of operators. A comprehensive set of laws for refining such specifications to code is derived in the theory. The approach supports fine-grained concurrency, avoiding atomicity assumptions on expression evaluation and assignment commands.…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Parallel Computing and Optimization Techniques · Distributed systems and fault tolerance
