Search papers, labs, and topics across Lattice.
This paper develops a theoretical framework for reasoning about concurrent programs using distributive laws in a rely/guarantee style, enhancing the algebraic manipulation of such programs. By refining the distributive laws to focus on specific command forms, the authors derive stronger equality laws applicable to both guarantee commands and combinations of rely and guarantee commands. The framework is formalized in Isabelle/HOL, providing a robust foundation for proofs and further exploration in concurrent program development.
Stronger equality laws for concurrent programming could revolutionize how we reason about rely/guarantee systems.
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.