Fast-growing hierarchy

A fast-growing hierarchy (FGH) is a certain hierarchy mapping ordinals \(\alpha < \mu\) to functions \(f_\alpha: \mathbb{N} \rightarrow \mathbb{N}\). For large ordinals \(\alpha\), \(f_\alpha\) grows very rapidly. Due to its simple and clear definition, as well as its origins in professional mathematics, FGH is a popular benchmark for large number functions.

If you are unfamiliar with using ordinals in functions, you may want to read the introduction to the fast-growing hierarchy article (or look ar wikipedia.)

Definition
A fast-growing hierarchy consists of an ordinal \(\mu\) and a fundamental sequence system \(S: \mu \cap \text{Lim} \rightarrow (\mathbb{Z}_0 \rightarrow \mu)\), where \(S(\alpha)(n)\) is denoted \(\alpha[n]\). The semantics are as follows:


 * \(f_0(n) = n + 1\)
 * \(f_{\alpha+1}(n) = f^n_\alpha(n)\), where \(f^n\) denotes function iteration
 * \(f_\alpha(n) = f_{\alpha[n]}(n)\) if and only if \(\alpha\) is a limit ordinal

The general case where \(f_0\) is any increasing function forms a fast iteration hierarchy.

For a fast-growing hierarchy to be useful to googologists, it is also expected to satisfy the property that for all \(\alpha < \beta < \mu\), \(f_\alpha\) is eventually dominated by \(f_\beta\).

Wainer hierarchy
Definitions of the fast-growing hierarchy and choices of fundamental sequence systems vary between authors, so it is generally problematic to speak of "the" fast-growing hierarchy. The most well-known FGH, however, is the Wainer hierarchy, which has \(\mu = \varepsilon_0 + 1\) and an FS system defined as follows:


 * \(\omega[n] = n\)
 * \(\omega^{\alpha + 1}[n] = \omega^\alpha n\)
 * \(\omega^{\alpha}[n] = \omega^{\alpha[n]}\) if and only if \(\alpha\) is a limit ordinal
 * \((\omega^{\alpha_1} + \omega^{\alpha_2} + \cdots + \omega^{\alpha_{k - 1}} + \omega^{\alpha_k})[n] = \omega^{\alpha_1} + \omega^{\alpha_2} + \cdots + \omega^{\alpha_{k - 1}} + \omega^{\alpha_k}[n]\) where \(\alpha_1 \geq \alpha_2 \geq \cdots \geq \alpha_{k - 1} \geq \alpha_k\)
 * \(\epsilon_0[0] = 0\) (alternatively \(1\))
 * \(\epsilon_0[n + 1] = \omega^{\epsilon_0[n]}\) = \(\omega\uparrow\uparrow (n-1)\) (alternatively \(\omega\uparrow\uparrow n\))

For example, the fundamental sequence for \(\omega^\omega\) is \(1, \omega, \omega^2, \omega^3, \ldots\). When authors refer to "the fast-growing hierarchy" without clarification, the Wainer hierarchy is usually meant.

Veblen's hierarchy
Every non-zero ordinal \(\alpha\) can be uniquely written in Veblen's variation of Cantor's normal form:

\(\alpha=\varphi_{\beta_1}(\gamma_1) + \varphi_{\beta_2}(\gamma_2) + \cdots + \varphi_{\beta_k}(\gamma_k)\), where \(\varphi_{\beta}(\gamma)\) is a function of Veblen's hierarchy, \(\varphi_{\beta_1}(\gamma_1) \ge \varphi_{\beta_2}(\gamma_2) \ge \cdots \ge \varphi_{\beta_k}(\gamma_k)\) and each \(\gamma_m < \varphi_{\beta_m}(\gamma_m)\),

For limit ordinals \(\alpha<\Gamma_0\), written in Veblen's variation of Cantor's normal form, the fundamental sequences for the Veblen's hierarchy are defined as follows:


 * \((\varphi_{\beta_1}(\gamma_1) + \varphi_{\beta_2}(\gamma_2) + \cdots + \varphi_{\beta_k}(\gamma_k))[n]=\varphi_{\beta_1}(\gamma_1) + \cdots + \varphi_{\beta_{k-1}}(\gamma_{k-1}) + (\varphi_{\beta_k}(\gamma_k) [n])\)
 * \(\varphi_0(\gamma)=\omega^{\gamma}\) and \(\varphi_0(\gamma+1) [n] = \omega^{\gamma} \cdot n\)
 * \(\varphi_{\beta+1}(0)[n]=\varphi_{\beta}^n(0)\), where \(\varphi^n\) denotes function iteration
 * \(\varphi_{\beta+1}(\gamma+1)[n]=\varphi_{\beta}^n(\varphi_{\beta+1}(\gamma)+1)\)
 * \(\varphi_{\beta}(\gamma) [n] = \varphi_{\beta}(\gamma [n])\) for a limit ordinal \(\gamma<\varphi_\beta(\gamma)\)
 * \(\varphi_{\beta}(0) [n] = \varphi_{\beta [n]}(0)\) for a limit ordinal \(\beta<\varphi_\beta(0)\)
 * \(\varphi_{\beta}(\gamma+1) [n] = \varphi_{\beta [n]}(\varphi_{\beta}(\gamma)+1)\) for a limit ordinal \(\beta\)

Veblen's function can be presented as a two-argument function \(\varphi_\beta(\gamma)=\varphi(\beta,\gamma)\).

Note: \(\varphi(0,\gamma)=\omega^\gamma\), \(\varphi(1,\gamma)=\varepsilon_\gamma\), \(\varphi(2,\gamma)=\zeta_\gamma\) and \(\varphi(3,\gamma)=\eta_\gamma\)

Buchholz hierarchy
In An Independence Result for (\(\Pi_1^1\)-CA) + BI, Wilfried Buchholz discusses an ordinal hierarchy where \(\mu = \psi_0(\varepsilon_{\Omega_\omega + 1})\), where \(\psi\) is Buchholz's ordinal collapsing function and \(\psi_0(\varepsilon_{\Omega_\omega + 1})\) is the TFB ordinal.

Other hierarchies
We can easily replace the Wainer hierarchy with a different one, such as a hierarchy that works for much larger ordinals such as the small Veblen ordinal or the Takeuti-Feferman-Buchholz ordinal. As long as fundamental sequences are defined, it is possible to extend FGH up to an arbitrary countable ordinal. However, it is impossible to create an effective system that works for all countable ordinals, since a system of fundamental sequences up to \(\omega_1\) would be nonconstructive.

Selecting fundamental sequences is not an easy problem, since some selections can lead to pathological hierarchies where \(\alpha < \beta\) does not necessarily imply \(f_\alpha <^* f_\beta\) (where \(<^*\) means eventual domination). In a 1976 paper, Diana Schmidt proved a theorem that is useful for identifying and guarding against pathological hierarchies. Given a fundamental sequence system, define \(P(\beta + 1) = \beta\) and \(\forall \beta \in \text{Lim} : P(\beta) = \beta[0]\). A fundamental sequence system is built-up if, for all \(\alpha\) and \(n\), \(\alpha[n] = P^k(\alpha[n+1])\) for some \(1 \leq k < \omega\). Schmidt showed that a built-up fundamental sequence system guarantees that all \(f_\alpha\) are monotonically increasing and that \(\alpha < \beta \Rightarrow f_\alpha <^* f_\beta\).

It is possible to define the fast-growing hierarchy for all recursive ordinals, and even for nonrecursive countable ordinals. However, the definitions will necessarily be nonrecursive, making analysis far more complicated. To our knowledge, there has been no research into the creation of nonrecursive fast-growing hierarchies.

Approximations
Below are some functions in the Wainer hierarchy and Veblen's hierarchy compared to other googological notations.

There are a few things to note:


 * Relationships denoted \(f_\alpha(n) > g(n)\) hold for sufficiently large \(n\), not necessarily all \(n\) (i.e. \(f_\alpha\) eventually dominates \(g\)).
 * \(m\) indicates any positive integer.
 * \(^ab\) indicates tetration.
 * \(\uparrow\) indicates arrow notation.
 * \(\text{Ack}\) indicates Harvey Friedman's single-argument Ackermann function \(\text{Ack}(n)\).
 * \(\lbrace \rbrace\) indicates BAN.

\begin{eqnarray*} f_0(n) &=& n + 1 \\ f_1(n) &=& f_0^n(n) = ( \cdots ((n + 1) + 1) + \cdots + 1) = n + n = 2n \\ f_2(n) &=& f_1^n(n) = 2(2(\ldots 2(2n))) = 2^n n > 2 \uparrow n \\ f_3(n) &>& 2\uparrow\uparrow n \\ f_4(n) &>& 2\uparrow\uparrow\uparrow n \\ f_m(n) &>& 2\uparrow^{m-1} n \\ f_\omega(n) &>& 2\uparrow^{n-1} n = Ack(n) \\ f_{\omega+1}(n) &>& \lbrace n,n,1,2 \rbrace \\ f_{\omega+2}(n) &>& \lbrace n,n,2,2 \rbrace \\ f_{\omega+m}(n) &>& \lbrace n,n,m,2 \rbrace \\ f_{\omega2}(n) &>& \lbrace n,n,n,2 \rbrace \\ f_{\omega3}(n) &>& \lbrace n,n,n,3 \rbrace \\ f_{\omega m}(n) &>& \lbrace n,n,n,m \rbrace \\ f_{\omega^2}(n) &>& \lbrace n,n,n,n \rbrace \\ f_{\omega^3}(n) &>& \lbrace n,n,n,n,n \rbrace \\ f_{\omega^m}(n) &>& \lbrace n,m+2 [2] 2 \rbrace \\ f_{\omega^{\omega}}(n) &>& \lbrace n,n+2 [2] 2 \rbrace > \lbrace n,n [2] 2 \rbrace \\ f_{\omega^{\omega}+1}(n) &>& \lbrace n,n,2 [2] 2 \rbrace \\ f_{\omega^{\omega}+2}(n) &>& \lbrace n,n,3 [2] 2 \rbrace \\ f_{\omega^{\omega}+m}(n) &>& \lbrace n,n,m+1 [2] 2 \rbrace \\ f_{\omega^{\omega}+\omega}(n) &>& \lbrace n,n,n+1 [2] 2 \rbrace > \lbrace n,n,n [2] 2 \rbrace \\ f_{\omega^{\omega}+\omega+1}(n) &>& \lbrace n,n,1,2 [2] 2 \rbrace \\ f_{\omega^{\omega}+\omega2}(n) &>& \lbrace n,n,n,2 [2] 2 \rbrace \\ f_{\omega^{\omega}+\omega^2}(n) &>& \lbrace n,n,n,n [2] 2 \rbrace \\ f_{{\omega^{\omega}}2}(n) &>& \lbrace n,n [2] 3 \rbrace \\ f_{{\omega^{\omega}}3}(n) &>& \lbrace n,n [2] 4 \rbrace \\ f_{{\omega^{\omega}}m}(n) &>& \lbrace n,n [2] m+1 \rbrace \\ f_{\omega^{\omega+1}}(n) &>& \lbrace n,n [2] n+1 \rbrace > \lbrace n,n [2] n \rbrace \\ f_{\omega^{\omega+2}}(n) &>& \lbrace n,n [2] n,n \rbrace \\ f_{\omega^{\omega+3}}(n) &>& \lbrace n,n,n [2] n,n,n \rbrace \\ f_{\omega^{\omega+m}}(n) &>& \lbrace n,m [2] 1 [2] 2 \rbrace \\ f_{\omega^{\omega2}}(n) &>& \lbrace n,n [2] 1 [2] 2 \rbrace = \lbrace n,2 [3] 2 \rbrace \\ f_{\omega^{\omega3}}(n) &>& \lbrace n,n [2] 1 [2] 1 [2] 2 \rbrace = \lbrace n,3 [3] 2 \rbrace \\ f_{\omega^{\omega m}}(n) &>& \lbrace n,m [3] 2 \rbrace \\ f_{\omega^{\omega^2}}(n) &>& \lbrace n,n [3] 2 \rbrace \\ f_{\omega^{\omega^3}}(n) &>& \lbrace n,n [4] 2 \rbrace \\ f_{\omega^{\omega^m}}(n) &>& \lbrace n,n [m+1] 2 \rbrace \\ f_{\omega^{\omega^\omega}}(n) &>& \lbrace n,n [n+1] 2 \rbrace = \lbrace n,n [1,2] 2 \rbrace \\ f_{^4{\omega}}(n) &>& \lbrace n,n [1 [2] 2] 2 \rbrace \\ f_{^5{\omega}}(n) &>& \lbrace n,n [1 [1,2] 2] 2 \rbrace \\ f_{^6{\omega}}(n) &>& \lbrace n,n [1 [1 [2] 2] 2] 2 \rbrace \\ f_{\varepsilon_0}(n) &>& \lbrace n,n [ [1]] 2 \rbrace \\ f_{\varepsilon_02}(n) &>& \lbrace n,n [ [1]] 3 \rbrace \\ f_{\varepsilon_0m}(n) &>& \lbrace n,n [ [1]] m+1 \rbrace \\ f_{\varepsilon_0\omega}(n) &>& \lbrace n,n [ [1]] n+1 \rbrace \\ f_{\varepsilon_0{\omega^{\omega}}}(n) &>& \lbrace n,n [ [1]] 1 [2] 2 \rbrace \\ f_{\varepsilon_0{\omega^{\omega^{\omega}}}}(n) &>& \lbrace n,n [ [1]] 1 [1,2] 2 \rbrace \\ f_{\varepsilon_0{\omega^{\omega^{\omega^{\omega}}}}}(n) &>& \lbrace n,n [ [1]] 1 [1 [2] 2] 2 \rbrace \\ f_{\varepsilon_0^2}(n) &>& \lbrace n,n [ [1]] 1 [ [1]] 2 \rbrace \\ f_{\varepsilon_0^3}(n) &>& \lbrace n,n [ [1]] 1 [ [1]] 1 [ [1]] 2 \rbrace \\ f_{\varepsilon_0^{\omega}}(n) &>& \lbrace n,n [ [2]] 2 \rbrace \\ f_{\varepsilon_0^{\omega^{\omega}}}(n) &>& \lbrace n,n [ [1,2]] 2 \rbrace \\ f_{\varepsilon_0^{\omega^{\omega^{\omega}}}}(n) &>& \lbrace n,n 1 [2] 2 2 \rbrace \\ f_{\varepsilon_0^{\varepsilon_0}}(n) &>& \lbrace n,n 1 [ [1 2]] 2 \rbrace \\ f_{\varepsilon_0^{\varepsilon_0^{\varepsilon_0}}}(n) &>& \lbrace n,n 1 [ [1 1 [ [1]] 2]] 2 \rbrace \\ f_{\varepsilon_0^{\varepsilon_0^{\varepsilon_0^{\varepsilon_0}}}}(n) &>& \lbrace n,n 1 [[1 [ [1 2]] 2]] 2 \rbrace \\ f_{\varepsilon_1}(n) &>& \lbrace n,n [1] 2 \rbrace \\ f_{\varepsilon_2}(n) &>& \lbrace n,n [ [1]] 2 \rbrace \\ f_{\varepsilon_{\omega}}(n) &>& \lbrace n,n [1\backslash1,2] 2 \rbrace \\ f_{\varepsilon_{\omega^2}}(n) &>& \lbrace n,n [1\backslash1,1,2] 2 \rbrace \\ f_{\varepsilon_{\omega^{\omega}}}(n) &>& \lbrace n,n [1\backslash1 [2] 2] 2 \rbrace \\ f_{\varepsilon_{\omega^{\omega^{\omega}}}}(n) &>& \lbrace n,n [1\backslash1 [1,2] 2] 2 \rbrace \\ f_{\varepsilon_{\varepsilon_0}}(n) &>& \lbrace n,n [1\backslash1 [ [1]] 2] 2 \rbrace \\ f_{\varepsilon_{\varepsilon_{\varepsilon_0}}}(n) &>& \lbrace n,n [1\backslash1 [1\backslash1 [ [1]] 2] 2] 2 \rbrace \\ f_{\zeta_0}(n) &>& \lbrace n,n [1\backslash1\backslash2] 2 \rbrace \\ f_{\zeta_0^{\zeta_0}}(n) &>& \lbrace n,n [1 [1\backslash1\backslash2] 2\backslash1\backslash2] 2 \rbrace \\ f_{\varepsilon_{\zeta_0+1}}(n) &>& \lbrace n,n [1\backslash2\backslash2] 2 \rbrace \\ f_{\varepsilon_{\zeta_0+2}}(n) &>& \lbrace n,n [1\backslash3\backslash2] 2 \rbrace \\ f_{\varepsilon_{\varepsilon_{\zeta_0+1}}} &>& \lbrace n,n [1\backslash1 [1\backslash2\backslash2] 2\backslash2] 2 \rbrace \\ f_{\zeta_1}(n) &>& \lbrace n,n [1\backslash1\backslash3] 2 \rbrace \\ f_{\zeta_2}(n) &>& \lbrace n,n [1\backslash1\backslash4] 2 \rbrace \\ f_{\zeta_{\zeta_0}}(n) &>& \lbrace n,n [1\backslash1\backslash1 [1\backslash1\backslash2] 2] 2 \rbrace \\ f_{\eta_0}(n) &>& \lbrace n,n [1\backslash1\backslash1\backslash2] 2 \rbrace \\ f_{\varphi(4,0)}(n) &>& \lbrace n,n [1\backslash1\backslash1\backslash1\backslash2] 2 \rbrace \\ f_{\varphi(\omega,0)}(n) &>& \lbrace n,n [1 [2]\backslash2] 2 \rbrace \\ f_{\varphi(\varphi(\omega,0),0)}(n) &>& \lbrace n,n [1 [1 [1 [2]\backslash2]\backslash2] 2] 2 \rbrace \\ f_{\Gamma_0}(n) &>& \lbrace n,n [1/2] 2 \rbrace \\ f_{\varphi(1,0,0,0)}(n) &>& \lbrace n,n [1 [1\neg4] 2] 2 \rbrace \\ f_{\vartheta(\Omega^{\omega})}(n) &>& \lbrace n,n [1 [1\neg1,2] 2] 2 \rbrace \\ f_{\vartheta(\Omega^{\Omega})}(n) &>& \lbrace n,n [1 [1\neg1\neg2] 2] 2 \rbrace \\ f_{\vartheta(\Omega^{\Omega^{\Omega}})}(n) &>& \lbrace n,n [1 [1 [1\backslash_33] 2] 2] 2 \rbrace \\ f_{\vartheta(\vartheta_1(1))}(n) &>& \lbrace n,n [1 [1\sim3] 2] 2 \rbrace \\ f_{\vartheta(\vartheta_1(2))}(n) &>& \lbrace n,n [1 [1\sim1\sim2] 2] 2 \rbrace \\ f_{\vartheta(\vartheta_1(\omega))}(n) &>& \lbrace n,n [1 [1 [2/_32] 2] 2] 2 \rbrace \\ f_{\vartheta(\vartheta_1(\Omega))}(n) &>& \lbrace n,n [1 [1 [1/2/_32] 2] 2] 2 \rbrace \\ f_{\vartheta(\Omega_2)}(n) &>& \lbrace n,n [1 [1 [1\sim2/_32] 2] 2] 2 \rbrace \\ f_{\vartheta(\Omega_3)}(n) &>& \lbrace n,n [1 [1 [1 [1/_32/_42] 2] 2] 2] 2 \rbrace \\ f_{\vartheta(\Omega_{\omega})}(n) &>& \lbrace n,n [1\bullet2] 2 \rbrace \\ f_{\vartheta(\Omega_{\varepsilon_0})}(n) &>& \lbrace n,n [1 [2/_{1 [1\backslash2] 2}2] 2] 2 \rbrace \\ f_{\vartheta(\Omega_{\Gamma_0})}(n) &>& \lbrace n,n [1 [2/_{1 [1/2] 2}2] 2] 2 \rbrace \\ f_{\vartheta(\Omega_{\vartheta(\Omega_2)})}(n) &>& \lbrace n,n [1 [2/_{1 [1 [1 [1\sim2/_32] 2] 2] 2}2] 2] 2 \rbrace \\ f_{\vartheta(\Omega_{\vartheta(\Omega_3)})}(n) &>& \lbrace n,n [1 [2/_{1 [1 [1 [1 [1/_32/_42] 2] 2] 2] 2}2] 2] 2 \rbrace \\ f_{\vartheta(\Omega_{\vartheta(\Omega_{\omega})})}(n) &>& \lbrace n,n [1 [2/_{1 [1\bullet2] 2}2] 2] 2 \rbrace \\ f_{\vartheta(\Omega_{\vartheta(\Omega_{\vartheta(\Omega_{\omega})})})}(n) &>& \lbrace n,n [1 [2/_{1 [2/_{1 [1\bullet2] 2}2] 2}2] 2] 2 \rbrace \end{eqnarray*}

Extended Grzegorczyk hierarchy
The is a hierarchy of functions (specifically - it contains all and only the primitive recursive functions) classified by growth rate. Although the 'extended Grzegorczyk hierarchy' can sometimes be an alternate name for the fast-growing hierarchy, it may also be used as a way of strictly classifying functions based on their growth rates, and a system of fundamental sequences.