This is my attempt at formalizing the monster that is BEAF using the ordinals that we have come to know and love. My hope is that this definition will allow BEAF to be extended beyond \(\phi(2, 0, 0)\) and into the higher ordinals.

The original can be found at User:FB100Z/Prime blocks. This is the "official" page — I'll add stuff to the old page and slowly transfer it over here as I become more confident in it.


Suppose we have an array \(A\), and we convert it to an ordinal \(o(A)\). Here are the rules:

  • Subtract 1 from all entries.
  • If the base is the only non-zero entry, return the value of the base. (e.g. {3, 1, 1, 1, ...} -> {2, 0, 0, 0, ...} => 2)
  • For each entry:
    • Describe its position using an array \(B\).
    • Compute \(\omega^{o'(B)} \times v\), where \(v\) is the entry's value. Obviously, for \(\varepsilon_0\) and up, the exponent doesn't matter.
  • Add up all these entries (from biggest to smallest, to avoid terms being swallowed). Return this value

The function \(o'(A)\) is the same as \(o(A)\), just without subtracting one.

For linear arrays:

\[\{a_0, a_1, a_2, a_3, \ldots\} \equiv \cdots + \omega^3 \times a_3 + \omega^2 \times a_2 + \omega \times a_1 + a_0\]

The purpose of this post is to describe a function \(N(\alpha)\) such that for all arrays \(A\) we have \(N(o(A)) = v(A)\). The N function maps countable ordinals (or maybe just the recursive ones?) to positive integers.

Prime blocks

Define \(\Pi_p(\alpha)\) like so:

  • \(\Pi_p(0) = \emptyset\)
  • \(\Pi_p(\alpha + 1) = \{\alpha\} \cup \Pi_p(\alpha)\)
  • \(\Pi_p(\alpha) = \Pi_p(\alpha[p])\) if \(\alpha\) is a limit ordinal

Slow-growing hierarchy cameo appearance

Perhaps surprisingly, the cardinalities of these prime blocks \(g_\alpha(p) = \#(\Pi_p(\alpha))\) form the slow-growing hierarchy! Here's why:

  • \(\#(\Pi_p(0)) = 0\)
  • \(\#(\Pi_p(\alpha + 1)) = \#(\Pi_p(\alpha)) + 1\)
  • \(\#(\Pi_p(\alpha)) = \#(\Pi_p(\alpha[p]))\) if \(\alpha\) is a limit ordinal
and substituting \(g_\alpha(p) = \#(\Pi_p(\alpha))\) yields the same rules as SGH.

From this, you could say that the slow-growing hierarchy is the core functionality behind BEAF.


Define \(E_\gamma(\alpha)\) to be the coefficient of \(\omega^\gamma\) in \(\alpha\). Formally:

\[E_\gamma(\alpha) = \max\{n \in \mathbb{N}_0|\exists \beta_2 < \omega^\gamma, \beta_1: \omega^{\gamma+1} \beta_1 + \omega^\gamma \times n + \beta_2 = \alpha\}\]

e.g. \(E_1(\omega^2 \times 4 + \omega \times 5 + 6) = 5\), since \(5\) is the coefficient of \(\omega^1\) (which can be obtained by setting \(\beta_1 = 4\) and \(\beta_2 = 6\)). \(E_\gamma(\alpha)\) always exists, although often it's zero.

Thanks to Deedlit for correcting a large part of this definition.

Also, define \(Q(\alpha) = \{\gamma|E_\gamma(\alpha) \neq 0\}\), which is the set of all positions with non-zero associated entries.

Pilots and copilots

Define \(P(\alpha)\) (pilot) like so:

\[P(\alpha) = \min\{\gamma > 1|E_\gamma(\alpha) \neq 0\}\]

This is the first non-zero term after the prime in \(\alpha\), reading terms from smallest to largest. \(P(\alpha)\) does not exist iff \(\alpha < \omega^2\).

Define \(CP(\alpha) = \{\gamma|\gamma + 1 = P(\alpha)\}\). This is the set of copilots, which has one member iff the pilot is a successor ordinal, and no members otherwise.

The airplane is \(\Pi_p(P(\alpha))\), and the passengers are \(\Pi_p(P(\alpha)) \backslash \{P(\alpha)\} \backslash CP(\alpha)\).

The Three Rules

Let \(b = E_0(\alpha)\) and \(p = E_1(\alpha)\), and let \(\mu > \alpha\).

  1. The Base Rule: If \(\alpha < \omega^2\), \(N(\alpha) = (b + 1)^{p + 1}\).
  2. The Prime Rule: If \(p = 0\), \(N(\alpha) = b + 1\).
  3. The Catastrophic Rule: Otherwise:

\[\alpha' := \sum_{\gamma \in Q(\alpha)}\left\{ \begin{array}{rl} \gamma = 1 : & \omega^\gamma \times (p - 1) \\ \text{otherwise} : & \omega^\gamma \times E_\gamma(\alpha) \\ \end{array} \right\}\] \[N(\alpha) = N\left(\sum_{\gamma \in Q(\alpha)}\left\{ \begin{array}{rl} \gamma = P(\alpha) : & \omega^\gamma \times (E_{P(\alpha)}(\alpha) - 1) \\ \gamma \in CP(\alpha) : & \omega^\gamma \times N(\alpha') \\ \gamma \in \Pi_p(P(\alpha)) : & \omega^\gamma \times b \\ \text{otherwise} : & \omega^\gamma \times E_\gamma(\alpha) \\ \end{array} \right\}\right)\]

Some notes about the last one:

  • In the definition of \(N(\alpha)\), the conditions are evaluated from top to bottom.
  • Since addition is not commutative over the ordinals, the \(\Sigma\)s should be evaluated with \(\gamma\) decreasing.
  • \(E_1(\alpha) - 1\) and \(E_{P(\alpha)}(\alpha) - 1\) are well-defined. In both situations, the left-hand term is greater than one. (If not, the first one would cause the prime rule to kick in, and the second one would cause the base rule to kick in).

That's it! Let me know about any errors or improvements that can be made to this formula.


I'll take a break from these rather daunting formulas and explore what we can do with them.

Self-indulgent number naming

The first thing to do with newly created territory is to play around with it. In the true spirit of a large number fanatic, I will spew out a few number names. Maybe these overlap with some of Bowers' things; I don't know.

  • \(N(\Gamma_0 + \omega \times 99 + 9)\) = "gammulus?"
  • \(N(\theta(\Omega^2) + \omega \times 99 + 9)\) = "akulus?"
  • \(N(\theta(\Omega^\omega) + \omega \times 99 + 9)\) = "vebula?"
  • \(N(\theta(\Omega^\Omega) + \omega \times 99 + 9)\) = "grand vebula?"
  • \(N(\psi(\varepsilon_{\Omega + 1}) + \omega \times 99 + 9)\) = "bakamula?"

You have probably noticed by now that all the entries are decreased by one. This is so that zeroes come out to default.

And, somewhat dubiously assuming that \(\omega^\text{CK}\) ordinals have well-defined fundamental sequences, never mind, they do

  • \(N(\omega_1^\text{CK} + \omega \times 99 + 9)\) = "zonkol?" (Yay, BEAF is now uncomputable)
  • \(N(\omega_2^\text{CK} + \omega \times 99 + 9)\) = "bonkol?"
  • \(N(\alpha + \omega \times 99 + 9)\) = "kazonkol?" (where \(\alpha\) is the smallest fixed point of \(\alpha \mapsto \omega_\alpha^\text{CK}\))

Oh, and a few odd leftovers:

  • \(N(\omega_1^\text{chess} + \omega \times 99 + 9)\) = "chessula?"
  • \(N(\omega_1 + \omega \times 99 + 9)\) = just kidding

Where's the BEAF?

I believe this definition is the same as Extended Array Notation, but like Bird's work, it deviates from EAN starting at tetrational arrays. I guess the notation should have a different name?

However, perhaps uniting the new function with BEAF is possible. We might be able to define a new ordinal, like \(\omega_1^\text{legion}\), that allows us to parallel legion arrays exactly. This would make \(N(\alpha)\) a generalization of Extended Array Notation that encompasses BEAF, and possibly Bird's array notation. Just plug in the right ordinal!

Array of

Have ye faith, for I have not forgotten the lowly array of operator! Here are my first guesses:

  • \(a\&b = \{b,a(1)2\} = N(\omega^\omega + \omega \times (a - 1) + (b - 1))\)
  • \(a^c\&b = \{b,a(c)2\} = N(\omega^{\omega^{c - 1}} + \omega \times (a - 1) + (b - 1))\)
  • \((a \uparrow\uparrow c)\&b = N(\omega^{\omega^{\omega^{c - 1}}} + \omega \times (a - 1) + (b - 1))\)
  • \((a \uparrow^d c)\&b = N(\underbrace{\omega^{\omega^{.^{.^{.^{\omega^{c - 1}}}}}}}_{(d - 1) \text{ copies}} + \omega \times (a - 1) + (b - 1))\)

So already things aren't all that nice.

Typographically speaking, one thing that's annoyed me is the left-hand term of the & operator, since there's no way to notate an array without notating its value. Ordinals solve this problem, because in general \(N(\alpha) \neq \alpha\).

Let's change the array of operator so that the left-hand term is an ordinal. Also, the terms are decremented by 1.

  • \(a\&b = N(\omega^\omega + \omega \times a + b)\)
  • \((\omega \times c + a)\&b = N(\omega^{\omega^c} + \omega \times a + b)\)
  • \((\omega^2 + \omega \times c + a)\&b = N(\omega^{\omega^{\omega^c}} + \omega \times a + b)\)
  • \((\omega^2 \times d + \omega \times c + a)\&b = N(\underbrace{\omega^{\omega^{.^{.^{.^{\omega^c}}}}}}_{d \text{ copies}} + \omega \times a + b)\)

BEAF hierarchy

Another fun little thing we can do is explore a two-argument "BEAF hierarchy" defined as \(g_\alpha(a, b) = N(\omega^\alpha + \omega \times a + b)\) for \(\alpha \geq 2\).