Skip to Main Content
Summary form only given. We describe a systematic way of constructing correct prototypes in a functional language such as Haskell from Z specifications. A formal relationship between Z specifications and functional prototypes is established. This relationship is based on model refinement in the sense of specification refinement in the model-oriented specification style. To reduce the number of proofs required in model refinement, we have defined a set of rules that allow us to derive a prototype from a specification. The use of such a set of rules implicitly guarantees the correctness of the derivation.