Googology Wiki
Googology Wiki

Alphabet notation is a notation created by Wikia user Nirvana Supermind.[1][2]. It is a based on recursion, and inputs a string of English letters. It has only this part currently:

  • Basic Alphabet Notation

The creator clarifies that he or she intends to create at least six other parts:[2]

  • Basic Cascading Alphabet Notation
  • Nested Basic Cascading Alphabet Notation
  • Two-level Cascading Alphabet Notation
  • Cascading Alphabet notation
  • Tetrational Alphabet Notation
  • Arrow Alphabet Notation

Note that the creator is using (single) capital letters to represent variables, and single small letters to mean the actual letters. For example, "A" in this article means a variable instead of the capital 'A', while "a" in this article means the actual letter 'a'.

Basic Alphabet Notation

Original definition

The expressions in this notation are of this form:


Here the “ABCDEFGHIJKLMN…” are a sequence of small letters in the Latin alphabet. The wrapping braces are simply to distinguish the expressions from actual words. () is also a valid expression. An example of a valid expression is (abc).

Terminology because they make the definition easier to write:

  1. ord(A) for the letter A is defined as 1 if A = "a" 2 if A = "b" 3 if A = "c" 4 if A = "d" etc.
  2. len(A) for the expression A is defined as is the number of letters in A.
  3. P(A) for the integer A is defined as the Ath prime (zero-based index). So P(0) = 2.

Note that P(A) is ill-defined when A = -1. Every expression is intended to output a large number. To solve a (possibly empty) expression, we need some rules as follows:

  1. () = 1
  2. (#A) = (#)P(len(#)+1)ord(A)

Here # denotes a substring of the current expression. It can also be empty. If there are two or more distinct rules to apply to a single expression, the uppermost-numbered rule which is applicable and whose result is a valid expression will be applied. Although it is not clarified, "A" in rule 2 is a variable which means a single small letter rather than a valid expression, because the creator considers ord(A). Readers should be careful that the creator uses "A" also as variables for a valid expression and an integer, as the defitions of len and P show.


The description "If there are two or more distinct rules to apply to a single expression, the uppermost-numbered rule which is applicable and whose result is a valid expression will be applied."[2] is weird, because there is no valid expression to which two rules are applicable. Moreover, there are no more rules, while the creator expresses "two or more rules".

Moreover, (abc) is intended to coincide with 2250, according to the creator.[2] However, the actual value should be computed in the following way:

(abc) = (ab)P(len(ab)+1)ord(c) = (ab)P(2+1)3 = (ab)73 = (a)P(len(a)+1)ord(b)73
= (a)P(1+1)273 = (a)5273 = ()P(len()+1)ord(a)5273 = ()P(0+1)15273
= ()315273 = 1×315273 = 25725

Therefore the original definition is not compatible with the intended behaviour. Since the creator tends to change either one of the original definition or the intended value, it is not special for a notation by the creator. For examples of the differences of actual values and intended values of notations by the creator, see Extensible Illion System#Example and Infra Notation#Example 3.


Intended Value

(abc) = 2250

Actual Value

(abc) = 25725

Alternative definition

It is quite elementary to solve the issues: We have only to remove the weird description of the application of two or more rules and change rule 2. In order to make the solution clearer, we explain the precise alternative formulation.

Let \(\mathbb{N}\) denote the set of non-negative integers, and \(T\) the set of formal strings consisting of small letters in the Latin alphabet. For an \(A \in T\), we denote by \(\textrm{len}(A)\) the length of \(A\). For an \(\alpha \in T\) of length \(1\), we denote by \(\textrm{ord}(\alpha)\) the positive integer corresponding to the ordinal numeral of α with respect to the usual ordering of small letters in the Latin alphabet. For example, we have \(\textrm{ord}(a) = 1\), \(\textrm{ord}(b) = 2\), and \(\textrm{ord}(c) = 3\). For an \(n \in \mathbb{N}\), we denote by \(P(n)\) the \((1+n)\)-th prime number. For example, we have \(P(0) = 2\), \(P(1) = 3\), and \(P(2) = 5\).

We define a total computable function \begin{eqnarray*} () \colon T & \to & \mathbb{N} \\ A & \mapsto & (A) \end{eqnarray*} in the following recursive way:

  1. If \(\textrm{len}(A) = 0\), then set \((A) := 1\).
  2. Suppose \(\textrm{len}(A) \neq 0\).
    1. Denote by \(\alpha \in T\) the formal string of length \(1\) given as the rightmost letter of \(A\).
    2. Denote by \(B \in T\) the formal string given by removing the right most letter from \(A\).
    3. Set \((A) := (B)P(\textrm{len}(B))^{\textrm{ord}(\alpha)}\).

The totality follows from the induction on \(\textrm{len}(A)\), and we have \begin{eqnarray*} (abc) & = & (ab)P(\textrm{len}(ab))^{\textrm{ord}(c)} = (ab)P(2)^3 = (ab)5^3 = (a)P(\textrm{len}(a))^{\textrm{ord}(b)}5^3 \\ & = & (a)P(1)^2 5^3 = (a)3^2 5^3 = ()P(\textrm{len}())^{\textrm{ord}(a)}3^2 5^3 = ()P(0)^1 3^2 5^3 \\ & = & ()2^1 3^2 5^3 = 1 \cdot 2^1 3^2 5^3 = 2250, \end{eqnarray*} which is compatible with the creator's intention.

Another possible alternative definition is given by replacing \(P\) by the enumeration of prime numbers with respect to one-based indexing, i.e. \(P(1) = 2\), \(P(2) = 3\), and \(P(3) = 5\), instead of changing rule 2.

Growth rate

The following is the analysis by the creator in the original source:[2]

It’s hard to compare the asymptotic growth rate of this notation with the other notations like Fast-growing hierarchy, mainly because they input lists of numbers rather than letters. However, we can use fibonacci word function “S” to convert a number into a string of letters. After I tried some numbers, it looks like (S(N)) is likely asymptotic to f2(f2(N)) (double-exponential growth rate) in the FGH. That’s it for this part of the notation.

However, there is no written explicit definition of S or f2 in the source, the meaning is ambiguous.

Instead, a limit function of the notation is given by the map assigning to each \(n \in \mathbb{N}\) the value \((A(n))\) of the formal string \(A(n)\) of length \(n\) consisting of \(z\). It is quite elementary to show an upperbound, thanks to Bertrand's postulate.

For any \(n \in \mathbb{N}\), \((A(n)) \leq 10^{4n(n+1)}\) holds with respect to the alternative definition.
We show the assertion by the induction on \(n\). If \(n = 0\), then we have \((A(n)) = () = 1 = 10^{4n(n+1)}\). Suppose \(n > 0\). We have

\begin{eqnarray*} & & (A(n)) = (A(n-1))P(\textrm{len}(A(n-1)))^{\textrm{ord}(z)} = (A(n-1))P(n-1)^{26} \\ & \leq & (A(n-1)) (2^n)^{26} < ((A(n-1)) 10^{8n} < 10^{4(n-1)n} \times 10^{8n} \\ & = & 10^{4n(n+1)}. \end{eqnarray*}

Similarly, it is possible to obtain a lowerbound of the value for the formal string of length \(n\) consisting of \(a\). In this sense, the asymptotic growth rate of the limit function can be easily estimated.

See also


  1. Nirvana Supermind. Alphabet Notation.  (Retrieved at UTC 12:00 13/01/2020)
  2. 2.0 2.1 2.2 2.3 2.4 Nirvana Supermind. Basic Alphabet Notation.  (Retrieved at UTC 12:00 13/01/2020)