@MISC{Morris_specificationalfunctions, author = {J. M. Morris and A. Bunkenburg}, title = {Specificational Functions}, year = {} }

Bookmark

OpenURL

Abstract

this paper, and nothing of substance in what follows depends on it. Note that (2x:T j true) differs from ? T in that ? T is refined even by a "non-terminating" expression such as an application of the recursive function f where f = x:T ffl f x. There is a bottom for each type, indicated by subscripting, but we nearly always omit the type, either because it is not significant in the context, or it can be easily inferred. In refinement calculi, partial operations such as 3=0 are commonly equated with ?, and similarly for nonterminating expressions. It is also customary to use ? as a "don't care" term by which the customer indicates that she has no interest in the outcomes. Although it may be useful in other contexts to distinguish these various roles for ?, in program derivation they are similar in that they represent error situations in which the outcome is unpredictable and unconstrained.