Strong array notation is a googological notation developed by Hyp cos. It is one of the most powerful recursion based large number functions defined. This page will serve as a step by step walk through of how the notation works.

Linear array notation Edit

3-entry arrays Edit

Three entry arrays in this notation are exactly equivalent to those in BEAF. s(a,b,c) is equal to a^^^...^^^b with c arrows. However the definitions are not identical.

s(a,b) is a^b, and s(a,b,c) = s(a,s(a,b-1,c),c-1). However, s(a,1,c) is not directly defined as a. Instead we have to solve it using the process. Since the third entry is the first non-1 entry, it decreases by 1, the 1 before it stays the same (since it is the second entry), and the first entry also stays the same. In fact this is a general property of the notation: s(a,1,c#) = s(a,1,1#).

Here is an example:

s(3,2,4) = s(3,s(3,1,4),3) = s(3,s(3,1,1),3) = s(3,s(3,1),3) = s(3,3,3) = s(3,s(3,2,3),2) = s(3,s(3,s(3,1,3),2),2) = s(3,s(3,3,2),2) = ...

The resulting number is \(3\uparrow\uparrow\uparrow3\).

4-entry arrays Edit

Adding a fourth argument is relatively easy. When the third entry is more than 1, it works very similar to 3-entry arrays. But when the third entry is 1, things change. As we need to start the process, and the third entry is 1, we jump to the fourth entry. Since it's more than 1, we decrease it by 1, change the third entry into the original second entry's value, and replace the first two entries into the base value.


s(a,b,1,d) = s(a,a,b,d-1)

Note how this works even if b is 1. This is one major difference between this notation and BEAF.

Some examples should help you understand this:

s(3,2,2,2) = s(3,s(3,1,2,2),1,2) = s(3,s(3,1,1,2),1,2) = s(3,s(3,3,1,1),1,2) = s(3,s(3,3),1,2) = s(3,3,s(3,3)) = s(3,3,27)

The result is:

\(3\uparrow\uparrow\cdots\uparrow\uparrow3\) with 27 up arrows.

Or in chained arrow notation: \(3\rightarrow3\rightarrow2\rightarrow2\)

s(3,1,1,4) = s(3,3,1,3) = s(3,3,3,2) = s(3,s(3,2,3,2),2,2) = s(3,s(3,s(3,1,3,2),2,2),2,2) = s(3,s(3,27,2,2),2,2) = ...

The resulting number is exactly equal to \(3\rightarrow3\rightarrow3\rightarrow3\) in chained arrow notation.

s(4,2,2,3) = s(4,s(4,1,2,3),1,3) = s(4,s(4,1,1,3),1,3) = s(4,s(4,4,1,2)1,3) = s(4,4,s(4,4,4),2) = s(4,4,4^^^^4,2) = ...

This notation so far reaches \(\omega^2\) in the FGH.

5+ entry arrays Edit

Arrays with 5 or more entries behave almost like 4 entry arrays except the length of chain a:

  • s(a,b,1,1,n) = s(a,a,a,b,n-1)
  • s(a,b,1,1,1,n) = s(a,a,a,a,b,n-1)
  • s(a,b,1,1...1,1,n) = s(a,a...,a,b,n-1)
  • ...

An example is s(3,3,3,3,3,3):

= s(3,s(3,2,3,3,3,3),2,3,3,3)
= s(3,s(3,s(3,1,3,3,3,3),2,3,3,3),2,3,3,3)
= s(3,s(3,s(3,1,2,3,3,3),2,3,3,3),2,3,3,3)
= s(3,s(3,s(3,1,1,3,3,3),2,3,3,3),2,3,3,3)
= s(3,s(3,s(3,3,1,2,3,3),2,3,3,3),2,3,3,3)
= s(3,s(3,s(3,3,3,1,3,3),2,3,3,3),2,3,3,3)

This notation so far reaches \(\omega^{\omega}\) in the FGH.

Extended array notation Edit

Dimensional arrays Edit

Next we add dimensional separators. {1} is comma and {2} is a row separator.

When the entry is at the beginning of a row, replace 1{a}b with 1{a}2{a}b-1, and jump inside the first {a}.

If you are inside a dimensional separator, replace the {a} with {a-1}1{a-1}...{a-1}1{a-1} with b-1 1's, where b is the second entry of the main array.

Note s(a,b{2}2) is not equal to s(a,b,1{2}2) or s(a,b,1,1{2}2) because we do not remove a 1 from the end of a row that is not the last. They are equal to s(a,b,1,1...1,2) with b-1, b and b+1 respectively 1's

An example is s(3,3{2}3,3)

Because the third entry is at the beginning of a row, it becomes s(3,3{2}2{2}2,3) and we jump inside the first {2}

Because the entry is inside a dimensional separator, we replace it with n commas separated by 1's\

= s(3,3,1,1,2{2}2,3)
= s(3,3,3,3,1{2}2,3)

We do not remove the 1 from this array

This notation reaches \(\omega^{\omega^{\omega}}\) in FGH

Nested arrays Edit

We can now have arrays instead of just numbers in dimensional separators, and when you jump inside a dimensional separator, it behaves just like an array, with a and b referring to the first and second entries of the main array.

We need to revise a rule. The new rule is

If the entry follows a left brace, replace it with b copies of it with the first entry subtracted by 1, however change all of the entries in base layer before them to the base.

An example is s(3,3{1{2}3}2)
= s(3,3{1{2}3}2{1{2}3}1)
= s(3,3{1{2}3}2)
= s(3,3{1{2}2{2}2}2)
= s(3,3{1,1,1,2{2}2}2)
= s(3,3{1,1,3{2}2}2)
= s(3,3{1,3,2{2}2}2)
= s(3,3{3,2,2{2}2}2)

This has level \(\varepsilon_0\) in the FGH.

Expanding arraysEdit

Introducing the grave accentEdit

The separator that has level \(\varepsilon_0\) is called {1`2}. The grave accent is a special separator, and it could be loosely said to have the level of the first uncountable ordinal. It proceeds with separators {2`2}, {3`2}, {4`2}, ..., {1,2`2}, {1{2}2`2}, {1{1,2}2`2},.... But the grave accent is a very special separator (you may have noticed it, as it ranks higher than separators containing it). The limit of the sequence {1,2`2}, {1{2}2`2}, {1{1,2}2`2}, {1{1{2}2}2`2}, etc. is not {1`3}, it is {1{1`2}2`2}. We can continue using {1`2} as a separator, and then {2`2} and so on. We can form the sequence {1,2`2}, {1{1,2`2}2`2}, {1{1{1,2`2}2`2}2`2}, and so on. Then we will reach {1`3}.

We can continue like how we did with {1`2}. We can have {1{1`2}2`3}, {1{1`3}2`3}, and {1{1{1,2`3}2`3}2`3}, and we can form a series here, analogous to the one leading up to {1`3}. This leads up to {1`4}. Then we can have {1`5}, {1`6}, {1`1,2}, {1`1{1`2}2}, {1`1{1`1{1`1,2}2}2}, etc. This leads to {1`1`2}.

The third grave-entry does to the second what the second does to the first. {1`1`3} is the limit of nesting in {1`...`2}. {1`1`1`2} is the limit of nesting in {1`1`...}. Of course, I haven't done the precise definitions yet.

So, {$1`n#} is the becomes the b'th member of (,), {$1,2`n-1#}, {$1{$1,2`n-1#}2`n-1#}, {$1{$1{$1,2`n-1#}2`n-1#}2`n-1#}, where each time the separator gets nested in another layer.

Now, {1`3} has level \(\varepsilon_1\), {1`4} has level \(\varepsilon_2\), {1`1,2} has level \(\varepsilon_{\omega}\), {1`1{1`2}2} has level \(\varepsilon_{\varepsilon_0}\), {1`1`2} has level \(\zeta_0\). {1`1`3} has level \(\zeta_1\). {1`1`1`2} has level \(\eta_0\), {1`1`1`1`2} has level \(\varphi(4,0)\), {1`1`1`1`1`2} has level \(\varphi(5,0)\), and so on. So the limit is \(\varphi(\omega,0)\). But we are barely scratching the surface of EAN.

Here is the example of this array notation we introduced currently. s(3,3{1`4}2) =
s(3,3{1{1,2`3}2`3}2) = s(3,3{1{3,1`3}2{1,2`3}1`3}2) =
s(3,3{1{2,1`3}1{2,1`3}1{2,1`3}2{3,1`3}1{1,2`3}1`3}2) =
s(3,3{1{2,1`3}1{2,1`3}1{1,1`3}1{1,1`3}1{1,1`3}2{2,1`3}1{3,1`3}1{1,2`3}1`3}2) =
s(3,3{1{2,1`3}1{2,1`3}1{1,1`3}1{1,1`3}1{1,1{1,1,2`2}2`2}2{1,1`3}1{2,1`3}1{3,1`3}1{1,2`3}1`3}2) = ...

The {...`} separatorsEdit

We can have dimensional separators that expands to ` separators. But how to solve an array containing separators that have greater level than `?

We could have {1`} that can shorthanded to ` and {n`} that replace it with {n-1`}1{n-1`}...{n-1`}1{n-1`}. You can take arrays instead of numbers inside of {_`} separators too, but {1{1`2`}2} is not well-defined.

So we need to replace a grave accent rule with new rules that expands in {_`} separators, but how we do that? We need find a separator that not contains ` in the left brace through layers starting with grave accent then expands like {$1`n#} separator.

Now, here is the analysis.

  • {1{2`}2} has level \(\varphi(\omega,0)\)
  • {1{3`}2} has level \(\varphi(\omega^2,0)\)
  • {1{1{1`2}2`}2} has level \(\varphi(\varepsilon_0,0)\)
  • {1{1`2`}2} has level \(\Gamma_0\)
  • {1{1`2`}1`2} has level \(\varphi(1,1,0)\)
  • {1{1`2`}1{1`2`}2} has level \(\varphi(2,0,0)\)
  • {1{1`3`}2} has level \(\varphi(1,0,0,0)\)
  • {1{1`1,2`}2} has level of SVO
  • {1{1`1`2`}2} has level of LVO

Here is the example of this array notation we introduced currently. s(3,3{1{1`2`}2}2) =
s(3,3{1{1{1{1,2`}2}2`}2}2) =
s(3,3{1{1{1{3`}2{1,2`}1}2}2`}2}2) =
s(3,3{1{1{1{2`}1{2`}1{2`}2{3`}1}2}2`}2}2) =
s(3,3{1{1{1{2`}1{2`}1{1`}1{1`}1{1`}2{2`}1}2}2`}2}2) =
s(3,3{1{1{1{2`}1{2`}1`1`1`2}2}2`}2}2) =

Now it may seem fairly straightforward. {1{1`2`}2} collapses into {1{1{1{...}2}2`}2} and has level \(\varphi(\varepsilon_0,0)\). {1{1{1`2`}2`}2} collapses into {1{1{1{1{1{...}2}2}2`}2`}2} and has level \(\varphi(\varphi(\varepsilon_0,0),0)\). And so on. But it is actually more complicated than that.

Multiple expanding arrays Edit

Double grave accents Edit

The double grade accent is a new type of separator. It searches for {_`}. just as ` searches for {}. This means that {1``2'} is the first fixed-point of {1___2'}. This continues with 1``3, 1``1``2, etc. Then we introduce {_``} separators, which act on `` like {`} acts on `.

Higher expansion Edit

We can introduce triple and higher grave accents, which follow from the patter we saw previously. For example the n-uple grade accent searches for an n-1-uple (or lower) grave accent superscript separator.

Here is the analysis

{1{1``2`}2} has level \(\psi(\varepsilon_{\Omega+1})\)

{1{1``3`}2} has level \(\psi(\varepsilon_{\Omega+2})\)

{1{1``1``2`}2} has level \(\psi(\zeta_{\Omega+1})\)

{1{1{1``2``}2`}2} has level \(\psi(\Gamma_{\Omega+1})\)

{1{1{1``1``2``}2`}2} has level \(\psi(\Omega_2^{\Omega_2^{\Omega_2}})\)

{1{1{1```2``}2`}2} has level \(\psi(\varepsilon_{\Omega_2+1})\)