Chained arrow notation

Chained arrow notation is a generalization of up-arrow notation devised by J. H. Conway and R. K. Guy. By Bird's Proof, Jonathan Bowers' array notation will generally produce larger values than chained arrow notation.

Nathan Ho and Wojowu showed that chained arrow notation terminates — that is, its output exists for all input sequences.

Definition

 * 1) \(a \rightarrow b = a^{b}\)
 * 2) \(a \rightarrow b \rightarrow c = a\underbrace{\uparrow\ldots\uparrow}_cb\) (in which up-arrow notation is used)
 * 3) \(a \rightarrow\ldots\rightarrow b \rightarrow 1 = a \rightarrow\ldots\rightarrow b\) — When last entry is 1, it will be ignored.
 * 4) \(a \rightarrow\ldots\rightarrow b \rightarrow 1 \rightarrow c = a \rightarrow\ldots\rightarrow b\)
 * 5) \(a \rightarrow\ldots\rightarrow b \rightarrow (c + 1) \rightarrow (d + 1) = a \rightarrow\ldots\rightarrow b \rightarrow (a \rightarrow\ldots\rightarrow b \rightarrow c \rightarrow (d + 1) ) \rightarrow d\)

Examples
Here are some small examples of chained arrow notation in action:

\(3 \rightarrow 3 \rightarrow 2 = 3\uparrow\uparrow3 = 7,625,597,484,987\)


 * \(3 \rightarrow 3 \rightarrow 2 \rightarrow 2\)
 * \(= 3 \rightarrow 3 \rightarrow (3 \rightarrow 3 \rightarrow 1 \rightarrow 2) \rightarrow 1\)
 * \(= 3 \rightarrow 3 \rightarrow (3 \rightarrow 3 \rightarrow 1 \rightarrow 2)\)
 * \(= 3 \rightarrow 3 \rightarrow (3 \rightarrow 3)\)
 * \(= 3 \rightarrow 3 \rightarrow (3^{3})\)
 * \(= 3 \rightarrow 3 \rightarrow 27\)
 * \(= 3 \underbrace{\uparrow\ldots\uparrow}_{27} 3 \)
 * It can also be shown like the following:
 * \(3 \rightarrow 3 \rightarrow 2 \rightarrow 2\)
 * \(= 3 \rightarrow 3 \rightarrow (3 \rightarrow 3 )\rightarrow 1) \rightarrow 1\)
 * \(= 3 \rightarrow 3 \rightarrow (3 \rightarrow 3)\)
 * \(= 3 \rightarrow 3 \rightarrow 27\)
 * \(= 3 \underbrace{\uparrow\ldots\uparrow}_{27} 3 \)
 * The two methods are different but they give out the same value at the end.
 * The two methods are different but they give out the same value at the end.

CG function
Using chained arrow notation, Conway and Guy created a new function similar to the Ackermann numbers that defines \(cg(n) = \underbrace{n \rightarrow n \rightarrow \ldots \rightarrow n \rightarrow n}_n\). Although it is equal to the Ackermann numbers for n from 1 to 3, \(cg(4) = 4\rightarrow 4\rightarrow 4\rightarrow 4 > \lbrace 4,4,3,2 \rbrace\), using Bird's Proof. Therefore, cg(4) is much, much larger than the famous Graham's number.

The growth rate of this function is about \(f_{\omega^2}(n)\) in the fast-growing hierarchy. This is comparable to 4 entry linear arrays in BEAF or Bird's array notation.

Peter Hurford's extensions
Peter Hurford extends chained arrow notation by adding the following rule:

\(a \rightarrow_c b = \underbrace{a \rightarrow_{c-1} a \rightarrow_{c-1}\ldots\rightarrow_{c-1} a \rightarrow_{c-1}a}_{b \rightarrow_{c-1}'s}\)

All normal rules remains unchanged. Thus, they apply ignoring subscripts. Notice that expressions like \(3 \rightarrow_{2} 3 \rightarrow 3\) are illegal. Entire expressions must have single type of right-arrows. Also, Hurford shows that \(f(n) = n \rightarrow_n n\) is about \(f_{\omega^3}(n)\) in the fast-growing hierarchy. If we allow to mix different types of arrows in the single expression, we get \(f(n) \approx f_{\omega^\omega}(n)\).

Furthermore, he defines C(n) function as follows:


 * \(C(a) = a \rightarrow_a a\)
 * \(C(a,1) = a \rightarrow_{C(a)} a\)
 * \(C(a,b) = a \rightarrow_{C(a,b-1)} a\)
 * \(C(a,1,1) = C(a,C(a,a))\)
 * \(C(a,b,1) = C(a,C(a,b-1,1))\)
 * \(C(a,1,c) = C(a,C(a,a,c-1),c-1)\)
 * \(C(a,b,c) = C(a,C(a,b-1,c),c-1)\)

The function \(f(n) = C(n,n,n)\) grows about as fast as \(f_{\omega^3 + \omega}(n)\) in the fast-growing hierarchy.