to appear in Formal Aspects of Computing
The full text of this paper (in PostScript).
We show how to write pre- and postcondition specifications that avoid such problems, by having the precondition ``protect'' the postcondition from the effects of partiality and underspecification. We formalize the notion of protection from partiality in the context of specification languages like VDM-SL and COLD-K. We also formalize the notion of protection from underspecification for the Larch family of specification languages, and for Larch show how one can prove that a procedure specification is protected from the effects of underspecification.