Theoretical Computer Science 8 (1979) 73-57 @ North-Holland Publishing Company RECURSIVE ASSERTNXW zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONM ARE NtDT ENOUGH - QR ARE THEY?* Krzysztof R. APT? Mathematical Centre, 2’ Boerhaavestraat 49, Amsterdam, The Netherlands Jan A. BERGSTRA Institute cf Applied Mathematics and Computer Science, University o,fLeiden, Wassenaarseweg 80, Leiden, The Netherlands Lambert 43.L.T MEERTENS Mathematical Centre, 2’ Boerhaavestraat, 49, Amsterdam, The Netherlands Communicated by Albert Meyer Received October 1977; Revised June 1978 At&act. Call a set of assertions J& complete (with respect to a class of programs 9) if for any p, q E & and S ‘E 9, whenever {p}S{q} holds, then all intermediate assertions can be chosen from ~4. This paper is devoted to the study of the problem which sets of assertions are complete in the above sense. We prove that any set of recursive assertions containing true and false is not complete. We prove the completeness for while programs of some more powerful assertions, e.g. the set of recursively enumerable assertions. Finally, we show that by allowing the use of an ‘<auxiliary’ coordinate, the set of recursive assertions is compiete for while programs. zyxwvutsrqponmlkjihgfedcbaZY 1. Introduction Two important methods that are used to establish the partial correctness (correct- ness without regard to termination) are the inductive assertion method of Floyd [6] and the axiomatlic method of Hoare [lo]. These two methods are closely relikd; in particular, both use intermediate assertions to express or derive local correctness properties. A gZobu1 correctness property (p)S(q} will in practice have recursive’ assertions1 p and q. The precondition p will usually be some simple condition on the inpiut * This publication is registered as Report IW 92/77 of the Mathematical Centre. * t Present address: The faculty of Economics, Erasmus University, P.O. Box 1738, Rotterdam, Netherlands. ’ The word ‘recursive’ is used in this article in two senses: that of Recursion Theory (meaning ‘effectively computable’) and th,at of Program Schemes (meaning ‘applied in its definition’). Which meaning is intended will be cleai r.oir> the context; here of course, the first one is implied. 73