A complete axiomatic system for proving deductions about recursive programs

Denoting a version of Hoare's system for proving partial correctness of recursive programs by <italic><bold>H</bold></italic>, we present an extension <italic><bold>D</bold></italic> which may be thought of as <italic><bold>H</bold></italic> &ugr; {@@@@,@@@@,@@@@,@@@@} &ugr; <italic><bold>H</bold></italic><supscrpt>-1</supscrpt>, including the rules of <italic><bold>H</bold></italic>, four special purpose rules and inverse rules to those of Hoare. <italic><bold>D</bold></italic> is shown to be a complete system (in Cook's sense) for proving deductions of the form &sgr;<subscrpt>1</subscrpt>,....&sgr;<subscrpt>n</subscrpt> @@@@ &sgr; over a language, the wff's of which are assertions in some assertion language L and partial correctness specifications of the form p(α)q. All valid formulae of L are taken as axioms of <italic><bold>D</bold></italic>. It is shown that <italic><bold>D</bold></italic> is sufficient for proving partial correctness, total correctness and program equivalence as well as other important properties of programs, the proofs of which are impossible in <italic><bold>H</bold></italic>. The entire presentation is worked out in the framework of nondeterministic programs employing iteration and mutually recursive procedures.