Skip to main content

Stratified polymorphism and primitive recursion

    • Published online: 01 August 1999

Natural restrictions on the syntax of the second-order (i.e., polymorphic) lambda calculus are of interest for programming language theory. One of the authors showed in Leivant (1991) that when type abstraction in that calculus is stratified into levels, the definable numeric functions are precisely the super-elementary functions (level [Escr ]4 in the Grzegorczyk Hierarchy). We define here a second-order lambda calculus in which type abstraction is stratified to levels up to ωω, an ordinal that permits highly uniform (and finite) type inference rules. Referring to this system, we show that the numeric functions definable in the calculus using ranks < ω[lscr ] are precisely Grzegorczyk's class [Escr ][lscr ]+3 ([lscr ] [ges ] 1). This generalizes Leivant (1991), where this is proved for [lscr ] = 1. Thus, the numeric functions definable in our calculus are precisely the primitive recursive functions.

Hide All
The research reported in this paper was partially supported by NSF grants CCR-9309824 and DMS-9870320. The proof figures were made with Makoto Tatsuta's proof.sty package, version 3.0.
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Mathematical Structures in Computer Science
  • ISSN: 0960-1295
  • EISSN: 1469-8072
  • URL: /core/journals/mathematical-structures-in-computer-science
Please enter your name
Please enter a valid email address
Who would you like to send this to? *


Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed