A synchronous program algebra: a basis for reasoning about shared-memory and event-based concurrency
Ian J. Hayes, Larissa A. Meinicke, Kirsten Winter, Robert J. Colvin

TL;DR
This paper develops an abstract algebra for reasoning about shared-memory and event-based concurrency, introducing a synchronous operator and formalizing properties to support automated program verification.
Contribution
It introduces a unified algebraic framework with an abstract synchronisation operator, generalizing parallel and weak conjunction, simplifying proofs and enabling tool support.
Findings
The algebra encodes rely/guarantee concurrency with simpler proofs.
A new weak conjunction operator models aborting behavior.
The algebra has been encoded in Isabelle/HOL for verification support.
Abstract
This research started with an algebra for reasoning about rely/guarantee concurrency for a shared memory model. The approach taken led to a more abstract algebra of atomic steps, in which atomic steps synchronise (rather than interleave) when composed in parallel. The algebra of rely/guarantee concurrency then becomes an instantiation of the more abstract algebra. Many of the core properties needed for rely/guarantee reasoning can be shown to hold in the abstract algebra where their proofs are simpler and hence allow a higher degree of automation. The algebra has been encoded in Isabelle/HOL to provide a basis for tool support for program verification. In rely/guarantee concurrency, programs are specified to guarantee certain behaviours until assumptions about the behaviour of their environment are violated. When assumptions are violated, program behaviour is unconstrained (aborting),…
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.
