Distributive Laws for Parallel Composition in Rely-Guarantee Concurrency

2026-07-20Programming Languages

Programming LanguagesLogic in Computer Science
AI summary

The authors study a way to reason about programs that run at the same time by using rely/guarantee conditions, which are rules about how parts of the program interact. They focus on mathematical laws called distributive laws that help manipulate these concurrent programs. By working with a simpler, abstract model first, they find when these laws hold strictly and when they only work one way. Their work is formalized and proven using a software tool called Isabelle/HOL to ensure correctness.

rely/guaranteeconcurrent programsparallel compositiondistributive lawsalgebraic reasoningIsabelle/HOLrefinementsynchronous atomic algebra
Authors
Ian J. Hayes, Larissa A. Meinicke
Abstract
The rely/guarantee approach supports the stepwise development of concurrent programs. Our goal is to develop a theory for reasoning algebraically about concurrent programs in a rely/guarantee style, where rely and guarantee conditions are encoding as commands within our theory. As for mathematics, distributive laws are essential for algebraic manipulation of concurrent programs. In this paper we investigate distributive laws for parallel composition and show how these can be applied to rely/guarantee concurrency. The most general distributive laws are only refinements in a single direction, however, by restricting the form of the command being distributed, one can devise stronger equality laws, which are applicable to guarantee commands as well as to suitable combinations of rely and guarantee commands. Our approach is to develop the distributive laws in a more abstract synchronous atomic algebra, and then apply them to an instance of that algebra supporting rely and guarantee commands. The theory has been formalised in Isabelle/HOL along with proofs of the lemmas presented here.