Summary: Proving Partial Correctness of Partial Functions ?
FB Informatik, TH Darmstadt, Alexanderstr. 10, 64283 Darmstadt, Germany,
Abstract. We present a method for automated induction proofs about
partial functions. This method cannot only be used to verify the partial
correctness of functional programs, but it also solves some other chal
lenge problems where reasoning about partial functions is necessary. For
a further analysis of partial functions we also developed a method to
determine (nontrivial subsets of) their domains automatically.
Induction is the essential proof method for the verification of functional pro
grams. For that reason, several techniques 1 have been developed to perform
induction proofs automatically, cf. e.g. [BM79, Bu + 93, Wa94a]. However, most
of these techniques are only sound if all occurring functions are total.
In this paper we show that by slightly restricting the prerequisites of these
techniques it is nevertheless possible to use them for partial functions, too. In
particular, the successful proof technique of performing inductions w.r.t. algo
rithms can also be applied for partial functions, i.e. (under certain conditions)
one may even perform inductions w.r.t. nonterminating algorithms.