This page shows a possible extension of Aarex's Graham Generator

## Nested arrays

Strength: e0

The pound sign can be anything, including empty. There can be multiple pound signs #_{1}, #_{2}, #_{3} etc.

In the last few pages about his notation, briefly describes dimensional arrays. Forcal_{1[2]n#1}(n)=Forcal_{1,1...1,2[2]n-1#1}(n) with n 1's. I slightly modified the definition, so in the original notation, it says n-1 instead of n 1's We can extend this to nested arrays, so 1[n]a becomes 1[n-1]1...1[n-1]2[n]a-1.
We add another rule: Forcal_{1[a#1]b#2}(n)=Forcal_{1[a#1]2[a#1]b-1#2}(n), and jump inside the first dimesnional seperator. 1[1,2]2= nesting 1[a]2, and if you are before a left-bracket, replace the [a#] with [a#]1[a#]...[a#]1[a#] with a [a#]'s, but 1[a]1[b]2 when a<b is equal to 1[b]2

## Subscript arrays

Strength: psi(psi_{I}(0))

The first separator is [1[1]_{2}], which has level e0. When you see a separator with only a 1 and a level 2 or higher, search for the least separator with a level 1 less than it, It it doesn't exist, create one outside the separator with a level less than the separator, and nest it. For example, 1[1]_{3}2 searched for level 2 brackets, or it creates a level 2 separator around it.

Analysis

[1[1]_{2}2] has level psi(0)=e0

[1[1]_{2}3] has level psi(1)=e1

[1[1]_{2}1[1]_{2}2] has level psi(W)=z0

[1[2]_{2}2] has level psi(W^w)=phi(w,0)

[1[3]_{2}2] has level psi(W^W^w)=SVO

[1[1[1[1]_{2}2]_{2}2]_{2}2] has level psi(W^W^W)=LVO

[1[1]_{3}2] has level psi(e(W+1))=BHO

[1[1]_{1,2}2] has level psi(W_{w})

We can make the notation less cumbersume by not requiring a bracket with level 2 or higher to be inside a level-1 bracket.

## Multi-comma arrays

Strength: As strong as dropper arrays or the R function
We can have [a]_{b} equal to [a,,b], so we can expand this

[1,,1,,2] is the limit of the function, and we can go much stronger

Unlike strong array notation, [1,,1,,2] can be a seperator in the main level of the array.

Each seperator "searches" for a seperator, for example [1,,2] searches for [_]. This is almost exactly like R function.

The double comma is short for [1,,,2], the triple comma is short for [1,,,,2], etc.

The rules of R function and dropper arrays are too complex for me to understand, so I won't put the rules.

Another rule is that if a n-uple comma is in a levels of brackets, where a<n and n>1, replace the seperator, with [1a2], where a is the seperator n-a times.

For example [1,,2] becomes [1[1,,2]2], and [1,,,,3] becomes [1[1[1[1,,,,3]2]2]2], when in the main array

Rules:

- The main rules reamin the same
- If 1[a]1[b]2 becomes a[b]2 where b is a higher-level seperator than a, and a can be a comma
- Otherwise, start the process

Process:

- Start at the first entry
- If it is a 1, move to the right
- If the entry is not a 1
- If a sigle comma is before it, decease the entry by 1 make a copy of the whole expression with the number decreased by 1 in the entry before it
- If there are n commas before it
- Set the n commas to D, and the seperator immediatly surronding the commas to E.
- Set A to T, but decrement the array after E by 1 and replace the entry before E to a seperator sign with a 1 before it and a 2 after it. For example, A of [1,,1,,2] is [1,,1__2], and A of [1,,1,,3] is [1,,1__2,,2]
- Search for a seperator with a level less than or equal to A, and if the seperator has a lower level than A, add A inside the seperator, so [1,,1,,2] becomes [1,,1[1,,1,,2]2].
- Set P and Q so that the seperaor inside the seperaor is PEQ
- Replace that seperator with PP...PP1QQ...QQ with the main number P's and Q's

- If there not a multple comma before it, set 1[A]b to 1[A]2[A]b-1, and jump into the first A
- If there is a left bracket before it, set 1[A,#]2 to 1[A-1,#]1[A-1,#]...[A-1,#]2 with base 1's

I will do level comparison later