Recursive programs as functions in a first order theory

Pure Lisp style recursive function programs are represented in a new way by sentences and schemata of first order logic. This permits easy and natural proofs of extensional properties of such programs by methods that generalize structural induction. It also systematizes known methods such as recursion induction, subgoal induction, inductive assertions by interpreting them as first order axiom schemata. We discuss the metatheorems justifying the representation and techniques for proving facts about specific programs. We also give a simpler version of the Godel-Kleene way of representing computable functions by first order sentences.

[1]  Robert Cartwright,et al.  First Order Semantics: A Natural Programming Logic for Recursively Defined Functions , 1978 .

[2]  H. Keisler,et al.  Handbook of mathematical logic , 1977 .

[3]  J. Shepherdson,et al.  Computer programming and formal systems , 1965 .

[4]  Richard J. Lipton,et al.  Synchronization and computing capabilities of linear asynchronous structures , 1975, 16th Annual Symposium on Foundations of Computer Science (sfcs 1975).

[5]  F. R. A. Hopgood,et al.  Machine Intelligence 5 , 1971, The Mathematical Gazette.

[6]  Derek C. Oppen,et al.  Reasoning about recursively defined data structures , 1978, POPL.

[7]  James H. Morris,et al.  Subgoal induction , 1977, CACM.

[8]  Daniel P. Friedman,et al.  CONS Should Not Evaluate its Arguments , 1976, ICALP.

[9]  J. Paris A Mathematical Incompleteness in Peano Arithmetic , 1977 .

[10]  David C. Luckham,et al.  On Formalised Computer Programs , 1970, J. Comput. Syst. Sci..

[11]  James H. Morris,et al.  Lambda-calculus models of programming languages. , 1969 .

[12]  Robert Cartwright,et al.  First order programming logic , 1979, POPL.

[13]  John McCarthy,et al.  A basis for a mathematical theory of computation, preliminary report , 1899, IRE-AIEE-ACM '61 (Western).

[14]  Zohar Manna,et al.  Inductive methods for proving properties of programs , 1973, Commun. ACM.

[15]  J. Vuillemin Proof techniques for recursive programs , 1973 .

[16]  D. A. Bochvar Two Papers on Partial Predicate Calculus , 1972 .

[17]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .

[18]  Alonzo Church,et al.  Review: D. A. Bocvar, On a Three-Valued Logical Calculus and its Application to the Analysis of Contradictions , 1939 .

[19]  Dana S. Scott,et al.  Outline of a Mathematical Theory of Computation , 1970 .

[20]  P. J. Cohen Set Theory and the Continuum Hypothesis , 1966 .

[21]  Robert Cartwright,et al.  A Practical Formal Semantic Definition and Verification System for TYPED LISP , 1976, Outstanding Dissertations in the Computer Sciences.

[22]  Zohar Manna,et al.  Formalization of Properties of Functional Programs , 1970, JACM.

[23]  J. McCarthy Predicate Calculus with 'Undefined' as a Truth-Value, , 1963 .