Abstract
In the last few years, there has been a growing interest for the application of proof-theoretical methods to the design of functional programming languages [3,11]. One approach relies on representation theorems [3,8,10], which show that a large class of general recursive functions can be encoded in a language where general recursion is replaced by primitive recursion with functions, functionals,… as parameters [13].
These results are however purely extensional in nature: they state that a large class of mathematical functions is representable in a given system, but they say nothing about the efficiency of such a representation. Although the intensional aspect is of primary concern for computer science, very little seems to be known about this question. This paper is a beginning in the study of this problem.
We take as a case study the following computational model: a primitive recursive function is seen as defining a rewriting system which is evaluated in call-by-name. In this setting, we give a non trivial necessary condition for an algorithm to be representable. As an application, we can show that the function inf (which computes the minimum of two integers in unary representation) cannot be programmed in complexity O(inf(n,p)).
Our proof method uses some basic notion of denotational semantics.
Project Formel
The author is indebted to Thierry Coquand who suggested the main methodological tools of this paper.
Preview
Unable to display preview. Download preview PDF.
References
W. Ackermann. “Zum Hilbertschen Aufbau der reellen Zahlen.” Mathematische Annalen 99 (1928) 1–36, English translation in J. van Heijenoort, “From Frege to Gödel” Harvard University Press (1981) 493–507.
G. Berry, P.L. Curien. “The Kernel of the Applicative Language CDS: Theory and Practice.” Algebraic Methods in Semantics, M. Nivat and J. Reynolds eds, Cambridge University Press (1985).
S. Fortune, D. Leivant, M. O'Donnell. “The Expressiveness of Simple and Second-Order Type Structures.” Journal of the Assoc. for Comp. Mach., 30,1, (1983).
J.Y. Girard. “Proof Theory and Logical Complexity. Vol. 1” Studies in Proof Theory, Bibliopolis, Napoli (1988).
K. Gödel. “Über eine bisher noch nicht benützte Erweiterung des finiten Standpunktes.” Dialectica 12 (1958) 280–287, English translation in “On a hitherto unexploited extension of the finitary standpoint.” Journal of Philosophical Logic 9, (1980).
S.C. Kleene. “Introduction to Metamathematics.” North Holland (1952).
S.C. Kleene. “Recursive Functionals and Quantifiers of Finite Types Revisited II.” The Kleene Symposium, North-Holland Pub. Co. (1980).
G. Kreisel. “On the interpretation of nonfinitist proofs, Part I, II.” JSL 16,17 (1952, 1953).
J. L. Krivine. “Un algorithme non typable dans le système F.” Comptes Rendus de l'Académie des Sciences, Paris, février 1987.
D. Leivant. “Reasoning about functional programs and complexity classes associated with type disciplines.” 24nd IEEE Symp. on Foundations of Computer Science (1983).
P. Martin-Löf. “Constructive Mathematics and Computer Programming.” In Logic, Methodology and Philosophy of Science 6 (1980) 153–175, North-Holland.
G. Plotkin. “LCF considered as a programming language.” Theoretical Computer Science 5 (1976).
J. Smith. “Course-of-values recursion on lists in intuitionistic type theory.” Unpublished notes, Göteborg University (Sept. 1981).
W.W. Tait. “Intensional interpretation of functionals of finite type I.” JSL 32 (1967) 198–212.
J.E. Vuillemin. “Proof techniques for recursive programs.” Ph. D. thesis, Standford (1973).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Colson, L. (1989). About primitive recursive algorithms. In: Ausiello, G., Dezani-Ciancaglini, M., Della Rocca, S.R. (eds) Automata, Languages and Programming. ICALP 1989. Lecture Notes in Computer Science, vol 372. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0035761
Download citation
DOI: https://doi.org/10.1007/BFb0035761
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-51371-1
Online ISBN: 978-3-540-46201-9
eBook Packages: Springer Book Archive