  Multiprocess systems, including grid systems, multiprocessors and multicore
computers, incorporate a variety of specialized hardware and software
mechanisms, which speed computation, but result in complex memory behavior. As
a consequence, the possible outcomes of a concurrent program can be unexpected.
A memory consistency model is a description of the behaviour of such a system.
Abstract memory consistency models aim to capture the concrete implementations
and architectures. Therefore, formal specification of the implementation or
architecture is necessary, and proofs of correspondence between the abstract
and the concrete models are required.
  This paper provides a case study of this process. We specify a new model,
partition consistency, that generalizes many existing consistency models. A
concrete message-passing network model is also specified. Implementations of
partition consistency on this network model are then presented and proved
correct. A middle level of abstraction is utilized to facilitate the proofs.
All three levels of abstraction are specified using the same framework. The
paper aims to illustrate a general methodology and techniques for specifying
memory consistency models and proving the correctness of their implementations.
