We discuss the application of partial functions to elements outside their domain in the context of the Z language and CADiZ tool. We illustrate some surprising results that can arise, and show that they may be readily justified, but also show that undesirable results can arise that are less readily resolved. We offer two possible resolutions, one that involves a simple change to, for example, free types, and another more contentious approach that involves, in particular, a new semantics for Z. We discuss the advantages and disadvantages of both approaches.
Author and article information
David A. Duffy
Department of Computer Science, University of York
Heslington, York, YO10 5DD