  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.
