Skip to main content

About primitive recursive algorithms

  • Conference paper
  • First Online:
Automata, Languages and Programming (ICALP 1989)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 372))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Article  MathSciNet  Google Scholar 

  2. 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).

    Google Scholar 

  3. 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).

    Google Scholar 

  4. J.Y. Girard. “Proof Theory and Logical Complexity. Vol. 1” Studies in Proof Theory, Bibliopolis, Napoli (1988).

    Google Scholar 

  5. 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).

    Google Scholar 

  6. S.C. Kleene. “Introduction to Metamathematics.” North Holland (1952).

    Google Scholar 

  7. S.C. Kleene. “Recursive Functionals and Quantifiers of Finite Types Revisited II.” The Kleene Symposium, North-Holland Pub. Co. (1980).

    Google Scholar 

  8. G. Kreisel. “On the interpretation of nonfinitist proofs, Part I, II.” JSL 16,17 (1952, 1953).

    Google Scholar 

  9. J. L. Krivine. “Un algorithme non typable dans le système F.” Comptes Rendus de l'Académie des Sciences, Paris, février 1987.

    Google Scholar 

  10. D. Leivant. “Reasoning about functional programs and complexity classes associated with type disciplines.” 24nd IEEE Symp. on Foundations of Computer Science (1983).

    Google Scholar 

  11. P. Martin-Löf. “Constructive Mathematics and Computer Programming.” In Logic, Methodology and Philosophy of Science 6 (1980) 153–175, North-Holland.

    Google Scholar 

  12. G. Plotkin. “LCF considered as a programming language.” Theoretical Computer Science 5 (1976).

    Google Scholar 

  13. J. Smith. “Course-of-values recursion on lists in intuitionistic type theory.” Unpublished notes, Göteborg University (Sept. 1981).

    Google Scholar 

  14. W.W. Tait. “Intensional interpretation of functionals of finite type I.” JSL 32 (1967) 198–212.

    Google Scholar 

  15. J.E. Vuillemin. “Proof techniques for recursive programs.” Ph. D. thesis, Standford (1973).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Giorgio Ausiello Mariangiola Dezani-Ciancaglini Simonetta Ronchi Della Rocca

Rights and permissions

Reprints 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

Publish with us

Policies and ethics