Non-atomic refinement in Z

Derrick, John and Boiten, Eerke
(1999)
Non-atomic refinement in Z.
In: Wing, Jeannetter M. and Woodchck, Jim and Davies, Jim, eds.
FM’99 — Formal Methods.
Lecture Notes In Computer Science, 1709 .
Springer-Verlag Berlin, Berlin, Germany
pp. 1477-1496.
ISBN 978-3-540-66588-5.
(The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided)

Abstract

This paper discusses the refinement of systems specified in Z when we relax the assumption that the refinement will preserve the atomicity of operations. Data refinement is a well established technique for transforming specifications of abstract data types into ones which are closer to an eventual implementation. To verify a refinement a retrieve relation is used which relates the concrete to abstract states and allow the comparison between the data types to be made on a step by step basis by comparing an abstract operation with its concrete counterpart. A step by step comparison is possible because the two abstract data types are assumed to be conformal, i.e. there is a one-one correspondence between abstract and concrete operations, so each abstract operation has a concrete counterpart. In this paper we relax that assumption to discuss refinements where an abstract operation is refined by, not one: but a sequence of concrete operations. Such non-conformal or non-atomic refinements arise naturally in a number of settings and we illustrate our derivations with a simple example of a bank accounting system.