A single complete refinement rule for Z
Data refinement is a well established technique for transforming specifications of abstract data types into ones which are closer to an eventual implementation. The conditions under which a transformation is a correct refinement can be encapsulated into two simulation rules: downward and upward simulations. These simulations are known to be sound and jointly complete for boundedly-nondeterministic specifications. In this note we derive a single complete refinement method and show how it may be formulated in Z, this is achieved by using possibility mappings. The use of possibility mappings themselves is not new, our aim here is to reformulate them for use within the Z specification language.
refinement z state-based systems