Data reification in a concurrent rely-guarantee algebra
Larissa A. Meinicke, Ian J. Hayes, Cliff B. Jones
TL;DR
This work addresses the challenge of proving that concurrent refinements of abstract data structures preserve correctness when moved from specification to efficient implementation. It extends data reification with a concurrent rely-guarantee algebra, introducing coupling invariants and Aczel traces to model environment and program transitions, and uses local variable blocks to manage scoped state. The primary contributions are a formal data-reification framework for concurrent commands, distribution rules for invariants across composition, and a detailed concurrent Galler–Fischer example including a reification of a local operation (clean_up). The results enable modular, scalable reasoning about concurrent data structures with formal guarantees, aligning with prior work on invariants and localisation while offering a concrete pathway for practical refinement.
Abstract
Specifications of significant systems can be made short and perspicuous by using abstract data types; data reification can provide a clear, stepwise, development history of programs that use more efficient concrete representations. Data reification (or "refinement") techniques for sequential programs are well established. This paper applies these ideas to concurrency, in particular, an algebraic theory supporting rely-guarantee reasoning about concurrency. A concurrent version of the Galler-Fischer equivalence relation data structure is used as an example.
