## Quick Reference

A sequence of sets of functions *F*_{0}, *F*_{1}, *F*_{2},… with the property that*F*_{0} ⊆ *F*_{1} ⊆ *F*_{2} ⊆ … (see subset). Typically the functions in *F*_{0} will include certain initial functions; the sets of functions *F*_{1}, *F*_{2},… are normally defined by combining initial functions in some way.

*F*_{0} ⊆ *F*_{1} ⊆ *F*_{2} ⊆ …

Hierarchies of primitive recursive functions can be defined by letting *F** _{i}* represent those functions that can be computed by programs containing at most

*i*loops nested one within the other. then

*F*

*⊆*

_{i}*F*

*for all integers*

_{i+1}*i*> 0. The union of all these sets includes all the primitive recursive functions and only those functions. Consequently the hierarchy is often called a subrecursive hierarchy. This same hierarchy can be expressed in a slightly different form, so resulting in the Grzegorczyk hierarchy.

*F** _{i}* ⊆

*F*

_{i+1}In an attempt to circumvent problems caused by recursion, Bertrand Russell invented a **theory of types**, which essentially imposed a hierarchy on the set of functions; functions at one level could be defined only in terms of functions at lower levels.

The study of hierarchies of functions dates from work of David Hilbert around 1926 on the foundations of mathematics. More recent interest stems from their applicability to computational complexity.

*Subjects:*
Computing.