Abstract
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 Gödel-Kleene way of representing computable functions by first order sentences.
Robert Cartwright's current address is Department of Computer Science, Upson Hall, Cornell University, Ithaca, NY 14853. John McCarthy's current address is Department of Computer Science, Stanford University, Stanford, CA 94305.
Preview
Unable to display preview. Download preview PDF.
14. References
Bochvar, D.A. (1938): "On a three-valued logical calculus and its application to the analysis of contradictions", Recueil Mathematique, N.S. 4 pp. 287–308.
Bochvar, D.A. (1943): "On the consistency of a three-valued logical calculus", Recueil Mathematique, N.S. 12, pp. 353–369.
The above Russian language papers by Bochvar are available in English translation as
Bochvar, D.A. (1972): Two papers on partial predicate calculus, Stanford Artificial Intelligence Memo 165, Computer Science Department, Stanford University, Stanford, CA 94305. (Also available from NTIS).
Cartwright, R.S. (1976): A Practical Formal Semantic Definition and Verification System for Typed Lisp, Ph.D. Thesis, Computer Science Department, Stanford University, Stanford, California.
Cartwright, R. (1978): First Order Semantics: A Natural Programming Logic for Recursively Defined Functions, Cornell University Computer Science Department Technical Report TR 78-339, Ithaca, New York.
Cartwright, Robert and John McCarthy (1979): "First Order Programming Logic", paper presented at the sixth annual ACM Symposium on Principles of Programming Languages (POPL), San Antonio, Texas. Available from ACM.
Cohen, Paul (1966): Set Theory and the Continuum Hypothesis, W.A. Benjamin Inc.
Cooper, D.C. (1969): "Program Scheme Equivalences and Second-order Logic", in B. Meltzer and D. Michie (eds.), Machine Intelligence, Vol. 4, pp. 3–15, Edinburgh University Press, Edinburgh.
Friedman, Daniel and David Wise (1976): "Cons should not Evaluate Its Arguments", in Proc. 3rd Intl. Colloq. on Automata, Languages and Programming, Edinburgh Univ. Press, Edinburgh.
Hitchcock, P. and D. Park (1973): "Induction Rules and Proofs of Program Termination, in M. Nivat (ed.), Automata, Languages and Programming, pp. 225–251, North-Holland, Amsterdam.
Kleene, S.C. (1952): Introduction to Metamathematics, Van Nostrand, New York.
Luckham, D.C., D.M.R. Park, and M.S. Paterson (1970): "On Formalized Computer Programs", J. CSS, 4(3): 220–249 (June).
Manna, Zohar and Amir Pnueli (1970): "Formalization of the Properties of Functional Programs", J. ACM, 17(3): 555–569.
Manna, Zohar (1974): Mathematical Theory of Computation, McGraw-Hill.
Manna, Zohar, Stephen Ness and Jean Vuillemin (1973): "Inductive Methods for Proving Properties of Programs", Comm. ACM, 16(8): 491–502 (August).
McCarthy, John (1963): "A Basis for a Mathematical Theory of Computation", in P. Braffort and D. Hirschberg (eds.), Computer Programming and Formal Systems, pp. 33–70. North-Holland Publishing Company, Amsterdam.
McCarthy, John (1964): Predicate Calculus with "Undefined" as a Truth Value, Stanford Artificial Intelligence Memo 1, Computer Science Department, Stanford University.
McCarthy, John (1978): "Representation of Recursive Programs in First Order Logic", in E.K. Blum and S. Takasu (eds.) Proceedings of The International Conference on Mathematical Studies of Information Processing, Kyoto. (a preliminary and superseded version of this paper)
McCarthy, John and Carolyn Talcott (1979): LISP: Programming and Proving, (in preparation)
Morris, James H. (1968): Lambda Calculus Models of Programming Languages. Ph.D. Thesis, M.I.T., Cambridge, Mass.
Morris, James H., and Ben Wegbreit (1977): "Program Verification by Subgoal Induction", Comm. ACM, 20(4): 209–222 (April).
Oppen, Derek (1978): Reasoning about Recursively Defined Data Structures, Stanford Artificial Intelligence Memo 314, Computer Science Department, Stanford University.
Paris, Jeff and Leo Harrington (1977): "A Mathematical Incompleteness in Peano Arithmetic", in Jon Barwise (ed.), Handbook of Mathematical Logic, pp. 1133–1142. North-Holland Publishing Company, Amsterdam.
Park, David (1970): Fixpoint Induction and Proofs of Program Properties", in Machine Intelligence 5, pp. 59–78, Edinburgh University Press, Edinburgh.
Scott, Dana (1970): Outline of a Mathematical Theory of Computation. Programming Research Group Monograph No. 2, Oxford.
Takeuchi, I. (1978): Personal Communication.
Vuillemin, J. (1973): Proof Techniques for Recursive Programs, Ph.D. Thesis, Stanford University, Stanford, Calif.
Editor information
Rights and permissions
Copyright information
© 1979 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cartwright, R., McCarthy, J. (1979). Recursive programs as functions in a first order theory. In: Blum, E.K., Paul, M., Takasu, S. (eds) Mathematical Studies of Information Processing. Lecture Notes in Computer Science, vol 75. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-09541-1_40
Download citation
DOI: https://doi.org/10.1007/3-540-09541-1_40
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-09541-5
Online ISBN: 978-3-540-35010-1
eBook Packages: Springer Book Archive