In this paper we compare the refinement orderings, and their associated simulation rules, of state-based specification languages such as Z and Object-Z with the refinement orderings of event-based specification languages such as CSP. We prove with a simple counter-example that data refinement, established using the standard simulation rules for Z, does not imply failures refinement in CSP. This contradicts accepted results. Having explored the differences between the simulation rules for establishing data refinement and those for establishing the refinement of action systems and state-transition systems - models in which refinement is equivalent to failures refinement within CSP - we present a new set of simulation rules for data types. These alternative rules are both sound and jointly complete with respect to the stable failures refinement ordering. Furthermore we present an alternative refinement ordering for CSP, one in which refinement is equivalent to data, refinement in Z. © 2002 Published by Elsevier Science B. V.

Original publication




Journal article


Electronic Notes in Theoretical Computer Science

Publication Date





440 - 453