Chapter 16 - Classifying Recursive Functions
Introduction
Ever since the recursive functions have been identified there was a challenge to measure their inherent computational complexity, or in Kleene's [1958] words to “classify the recursive functions into a hierarchy, according to some general principle”. The constructive ordinals of Church and Kleene lend themselves as an obvious scale for such classification attempts.
The most natural way to measure the “complexity” of a recursive function by constructive ordinals is to consider recursion along recursive well-orderings of larger and larger order types. A positive result in this direction is due to Rósza Péter, who has shown that the class of functions definable with (substitution and) n-fold nested recursion grows with n increasing. One can view n-fold nested recursion as recursion on a special, “natural” well-ordering of order type ωn. In Section 2 we will prove a theorem due to Myhill [1953] and Routledge [1953], which says that any recursive function can be defined using (Csillag–Kalmár) elementary operations and just one recursion on an elementary well-ordering of type ω. Myhill refers to this fact as “a stumblingblock in constructive mathematics”; in particular it implies that Péter's result essentially depends on the special form of the well-orderings used. With a similar method we prove that such a “collapse” will also occur if we allow transfinite recursion for the definition of 0–1-valued functions only. Finally we prove a rather general result, which says that it is impossible to index the recursive functions in any “reasonable” way by means of a -path through Kleene's system O of notations for constructive ordinals.
Therefore it seems necessary to look out for a notion of a “standard” well-ordering of the natural numbers. But this turns out to be a very difficult task. Although an interesting attempt has been made by Zemke [1977] and later been extended by Buchholz, Cichon and Weiermann [1994], it seems fair to say that up to now no satisfactory such notion has been found. Therefore in this paper we restrict ourselves to “canonical” well-orderings of concrete order types like ɛ0. In this case the Cantor normal form can be used to define a canonical coding; moreover, one also has a canonical choice of fundamental sequences approximating the limit ordinals. Using these, a quite natural sequence Fα, α < ɛ0, of fast growing functions can be defined. Then one defines ɛα as the elementary closure of Fα; the ɛα form the extended Grzegorczyk hierarchy.
For the classes ɛα quite a number of interesting characterizations are known. First of all, ɛα is the class of functions computable by a register machine with time (i.e. number of computation steps) bounded by a finite iteration of the function Fα. Moreover, the functions in ɛα can be characterized by counting the number of recursions used and their order types, or else by transfinitely iterating the process of extending an effectively generated class of functions by enumeration (cf. Schwichtenberg [1971]). So we have a quite satisfactory theory here.
However, by definition our smallest class ɛ0 consists of the class of Csillag–Kalmár elementary functions and hence already contains exponentially growing functions. If one is interested in analyzing more “feasible” notions of computation, then it is necessary to take into account the fact that numbers are represented as strings of numerals. This leads to a notion of “bounded recursion on notation” introduced by Cobham [1965]. We do not attempt to deal with this theory here, but refer the reader to the excellent survey of Clote [1999] in the present Handbook.
So as a measure of complexity for recursive functions we use ordinals. We consider a recursive function to be given by a computation method or algorithm; hence closely connected to such a definition is a termination proof for the algorithm. Therefore it is to be expected that methods from proof theory are of central importance for the subject. More precisely, there is not much difference between classifying proofs of -theorems and definitions of recursive functions. For instance, by a classic result of Ackermann [1940] and Kreisel [1952] the ɛ0-recursive functions are just those functions which are provably recursive in Peano arithmetic (cf., e.g., Fairtlough and Wainer [1998] or Schwichtenberg [1977]), and the primitive recursive functions are just those definable by the subsystem of Peano arithmetic where induction is restricted to Σ1-formulas; this result is due to Kreisel, Parsons, Mints [1973] and Takeuti [1987]. Since there is a recent survey on new developments along these lines in the paper by Fairtlough and Wainer [1998], we do not go into this subject here.
One very interesting phenomenon needs to be mentioned: the role of ɛ0 in classifying the provably recursive functions of Peano arithmetic is not as mandatory as one might think. It has been shown by Girard that the so-called slow growing hierarchy Gα, α < the Bachmann–Howard ordinal, yields the same growth as the fast growing hierarchy up to ε0. This is interesting because a natural description of the Bachmann–Howard ordinal seems to require the least uncountable ordinal Ω. In Schwichtenberg and Wainer [1995] an attempt has been made to explain why uncountable ordinals play a role here.
The main subject of this article is the study of the interplay between recursion in higher types and transfinite recursion. To make the paper sufficiently self-contained we include a short introduction to the theory of partial continuous functionals, based on Scott's notion of an information system. The partial continuous functionals are central for any analysis of higher type computability which is based on the rather natural assumption that any computation ought to be finite. The reason is simply that they form the mathematically appropriate domain of a computable functional. The total continuous functionals of Kleene–Kreisel (Kleene [1959a], Kreisel [1959]) can then be singled out from the partial continuous ones (cf. Ershov [1974], Berger [1993] and also Dag Normann's paper [Normann, 1999] in the present Handbook), and it seems best to define them that way.
Since any partial continuous functional Φ is the limit of finite approximations to it, it is straightforward to define computability: Φ is computable if and only if it is the limit of a computably enumerable set of finite approximations. This is an externally defined notion of computability, and the question arises whether there is an internal characterization. This is indeed the case: we will prove a result due to Plotkin [1977] that a partial continuous functional is computable if and only if it can be defined explicitly from fixed point operators introduced into this framework by Platek [1966], the parallel conditional pcond and a continuous approximation to the existential quantifier. We call such functionals recursive in pcond and .
The term language with a fixed point operator leads us back to our original question of classifying recursive functions. To demonstrate the relevance of higher types for our subject, we first show that higher type iteration operators suffice to define all Fα, α < ɛ0, by application alone. We then show that it is possible to combine the power and elegance of the general fixed point operator with the desire to have better control over computational complexity by introduction of a bounded version of the fixed point operator. Also for one can define a bounded version; together with (partial) primitive recursion this leads to subrecursive hierarchies over the partial continuous functionals, developed by Niggl [1993, 1995]. Niggl [1994] also studies another restricted notion of computability, generalizing Cook and Kapron's (Cook [1992]) typed while programs to partial continuous functionals.
We finally establish some kind of converse of the definability of the Fα, α < ɛ0, by means of higher type iteration operators. We show that finite types are not only sufficient to obtain the ɛ0-recursive functions, but that their use can also be eliminated at the expense of higher ordinals. So we have a certain trade-off between the two concepts. The result itself is not new; however, here we sketch a different proof, by adapting a method of Buchholz.
The paper is organized as follows. Section 2 contains the collapsing results, and Section 3 discusses the extended Grzegorczyk hierarchy. Section 4 gives an introduction to partial continuous functionals, and Section 5 then contains some general material concerning computability in higher types, including definability of the Fα, α < ɛ0, by means of higher type iteration operators, and Plotkin's definability theorem. The discussion of bounded fixed point operators takes place in Section 6, and the final Section 7 concerns elimination of detours through higher types by transfinite recursion.
Section snippets
Collapsing Results
To set the stage, we prove the failure of some natural attempts to classify the recursive functions. Here we assume knowledge of certain introductory material from recursion theory, e.g., the Csillag–Kalmár definition of the elementary functions, Minsky's register machines and also Kleene's system O of ordinal notations, sets and paths through O.
The Extended Grzegorczyk Hierarchy
From now on we restrict attention to “canonical” well-orderings of concrete order types like ɛ0, Γ0 or the Bachmann–Howard ordinal. We assume some knowledge of such ordinals, in particular of their Cantor normal form.
Partial Continuous Functionals
In the rest of this paper we will consider what happens when higher types are taken into account. This means that as arguments not only numbers are allowed, but also functions and even functionals of any finite type, where for now we take types to be built from the type ι of natural numbers by means of an operation ρ → σ to form function types. So for any type ρ a set Dρ of objects of type ρ must be given. The precise definition of Dρ depends on the particular approach to higher type
Computability in Higher Types
We now use the theory presented in the previous section to set up a framework for computability in our iterated function spaces Cρ. But first we want want to make it clear that higher types are relevant for our subject of classifying recursive functions: as observed in Schwichtenberg [1973] (cf. also Fortune, Leivant and O'Donnell [1983]), the functions , of the fast growing hierarchy can be defined quite easily from higher type iteration functionals.
As already mentioned in 4.1,
Bounded Fixed Point Operators
Having seen that there is a quite nice internal definition of the computable functionals over the partial continuous functionals, we now come back to our subject of classifying recursive functions. The idea is simply to combine the power and elegance of treating recursion by means of the fixed point operator with the advantages of having a higher order term language with more “controlled” forms of higher type recursion, like Gödel's [1958] system T for the primitive recursive functionals.
Elimination of Detours Through Higher Types by Transfinite Recursion
We have seen in 5.1 that a detour through higher types (specifically the integer types ρn) makes it possible to give a rather perspicuous definition of the generating functions , of the extended Grzegorczyk hierarchy: every Fα can be built from iteration functionals by application alone, in a way determined by the Cantor normal form of α to base ω. Now our goal is to establish some kind of converse to this result, namely that detours through higher types can be eliminated at the
Acknowledgements
I would like to thank Peter Clote and Stan Wainer for their useful comments on various drafts of this paper.
References (0)
Cited by (1)
Program extraction from Gentzen’s proof of transfinite induction up to ε<inf>0</inf>
2001, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)