Termination Assertions for Recursive Programs: Completeness and Axiomatic Definability
Author(s)Meyer, Albert R.; Mitchell, John C.
The termination assertion p<S>q means that whenever the formular p is true, there is an execution of the possibly nondeterministic program S which terminates in a state in qhich q is true. A recursive program S may declare and use local variables and nondeterministic recursive procedures with call-by-address and call-by--value parameters, in addition to accessing undeclared variables and global procedures. Assertions p and q about calls to global procedures are first order formulas extended to express hypotheses about the termination of calls to undeclared global procedures. A complete, effective axiom system with axioms corresponding to the syntax of the programming language is given for the termination assertinos valid over all interpretations. Termination assertions define the semantics of recursive programs in the following sense: if two programs have different input-output semantics, then there is a termination assertion that is valid for one program but not for the other. Thus the complete axiomatization of termination assertions constitutes an axiomatic definition of the semantics of recursive programs.