The Extended Array Notation has the following form:
a[c X d X e X ... X n]b where b ≥ 1; c,d,e,...,n > 1, and X is the separators. The separators come in many forms, such as {3}, {1,4,5}, {1,1,3{2}2}.
The number a is the base, and b is the iterator.
The {1} separator stands for comma.
In this extension, the separators are the comma, the slash (/), and {x A n} where x is an expression, A is a separator, and n is an integer.
To solve the expression, we need some basic rules as follows:
Base Rule: a[0]b = a+1, a[1]b = a+b, a[2]b = ab, a[3]b = a^b.
Tailing Rule: a[# X 0]b = a[#]b (X can be any separators).
Prime Rule: a[%]1 = a.
Recursion Rule: a[c%]b = a[c-1%](a[c%](b-1)), provided c ≥ 0 and b ≥ 1.
Comma Rule: a[c{1}d%]b = a[c,d%]b.
Followed by some previous rules by following:
If the first entries are 1, a[1,1,...,1,1,c,d%]b = a[a,a,...,a,b,c-1,d%]a.
If the first entries are greater than 1, a[c,d,e,...,n%]b = a[c-1,d,e,...,n%](a[c,d,e,...,n%](b-1)).
Reuse the rules for linear arrays to that row (after separators other than commas).
a[1{2}c]b = a[1,1,1,...,1,1,2{2}c-1]a with b 1's.
a[1{2}1{2}...{2}1{2}c]b = a[1{2}1{2}...{2}1,1,1,...,1,1,2{2}c-1]a with b string of 1's using comma as a separator.
a[1{j}1{j}...{j}1{j}c] = a[1{j}1{j}...{j}1{j-1}1{j-1}...{j-1}2{j}c-1]a with b string of 1's using {j-1} separator.
a[1{1,1,1,...,1,1,c,d%}2]b = a[1{1,1,1,...,1,b,c-1,d%}2]a, which is different from a[1,1,1,...,1,1,c,d%]b = a[a,a,a,...,a,b,c-1,d%]a.
a[1{1{2}c}2]b = a[1{1,1,1,...,1,1,2{2}c-1}2], and so on. Nested arrays reuse the rules 4 through 7.
At this part, we define the new rules by following:
Reuse the previous rules above and ignore the slash separators.
Define the simplest expression for that part as a[1{1 / 2}2]b = a[1{1{...1{1,2}2...}2}2]a with b pairs of 1,2's.
If the first entry before a slash is just 1, change the {1 / n+1#} to Sb (b is the iterator), where S1 is {1 / n#}, Sn+1 = {1{Sn}2 / n#}, then change the iterator to the base.
In the First-order Array Notation, let's introduce a new separator, the slash (/). The / separator is a high ranking separator, meaning it is higher level than any other separator so far, and even higher ranking than separators that contain it. Please note that the / separator is only allowed inside separators, not arrays, so the expression like a[1 / 2]b is meaningless.
When we encounter a separator of type {1/n#} in the process, we do this: Change the 1/2 into Sn, wher S1 is 1/n-1 and S(n+1) = 1{Sn}2/2.
So, 3[1{1 / 3}1]3 = 3[1{1{1{1 / 2}2 / 2}2 / 2}2]3 (keep in mind that if that had been a 3 before the end of the end of the array, it would have been decreased by 1 and had another {1,2} before it, as it was sent to the last case).
a[1{1 / 2}2]b = a[1{1...1{1,2}2...2}2]a with b pairs of 1,2's. For example, 3[1{1 / 2}2]4 = 3[1{1{1{1,2}2}2}2]3. FGH level ε0.
a[2{1 / 2}2]b = a[1{1 / 2}2]a[1{1 / 2}2]...[1{1 / 2}2]a with b copies of a. FGH level ε0+1.
a[1,2{1 / 2}2]b = a[b{1 / 2}2]a. FGH level ε0+ω.
a[1{2}2{1 / 2}2]b = a[1,1,1,...,1,1,2{1 / 2}2]a with b string of 1's. FGH level ε0+ω^ω.
a[1{1,2}2{1 / 2}2]b = a[1{b}2{1 / 2}2]a. FGH level ε0+ω^ω^ω.
a[1{1 / 2}3]b = a[1{1...1{1,2}2...2}2{1 / 2}2]a with b pairs of 1,2's. FGH level (ε0)2.
a[1{1 / 2}4]b = a[1{1...1{1,2}2...2}2{1 / 2}3]a with b pairs of 1,2's. FGH level (ε0)3.
a[1{1 / 2}1,2]b = a[1{1 / 2}b]a. FGH level (ε0)ω.
a[1{1 / 2}1{2}2]b = a[1{1 / 2}1,1,1,...,1,1,2]a with b string of 1's. FGH level (ε0)ω^ω.
a[1{1 / 2}1{1,2}2]b = a[1{1 / 2}1{b}2]a. FGH level (ε0)ω^ω^ω.
a[1{1 / 2}1{1 / 2}2]b = a[1{1 / 2}1{1...1{1,2}2...2}2]a with b pairs of 1,2's. FGH level (ε0)^2.
a[1{1 / 2}1{1 / 2}1{1 / 2}2]b = a[1{1 / 2}1{1 / 2}1{1...1{1,2}2...2}2]a with b pairs of 1,2's. FGH level (ε0)^3.
a[1{2 / 2}2]b = a[1{1 / 2}1{1 / 2}...{1 / 2}2]a with b string of 1's separated by {1 / 2}. FGH level (ε0)^ω.
a[1{3 / 2}2]b = a[1{2 / 2}1{2 / 2}...{2 / 2}2]a with b string of 1's separated by {2 / 2}. FGH level (ε0)^ω^2.
a[1{1,2 / 2}2]b = a[1{b / 2}2]a. FGH level (ε0)^ω^ω.
a[1{1{2}2 / 2}2]b = a[1{1,1,1,...,1,1,2 / 2}2]a with b string of 1's. FGH level (ε0)^ω^ω^ω.
a[1{1{1,2}2 / 2}2]b = a[1{1{b}2 / 2}2]a. FGH level (ε0)^ω^ω^ω^ω.
a[1{1{1 / 2}2 / 2}2]b = a[1{1{1...1{1,2}2...2}2 / 2}2]a with b pairs of 1,2's inside the {X / 2} separator. FGH level (ε0)^(ε0).
a[1{1{1 / 2}3 / 2}2]b = a[1{1{1...1{1,2}2...2}2{1 / 2}2 / 2}2]a with b pairs of 1,2's inside the {X / 2} separator. FGH level (ε0)^(ε0)^2.
a[1{1{1 / 2}1,2 / 2}2]b = a[1{1{1 / 2}b / 2}2]a. FGH level (ε0)^(ε0)^ω.
a[1{1{1 / 2}1{1 / 2}2 / 2}2]b = a[1{1{1 / 2}1{1...1{1,2}2...2}2 / 2}2]a with b pairs of 1,2's inside the {X / 2} separator. FGH level (ε0)^(ε0)^(ε0).
a[1{1{2 / 2}2 / 2}2]b ~ FGH level (ε0)^(ε0)^(ε0)^ω.
a[1{1{1{1 / 2}2 / 2}2 / 2}2]b ~ FGH level (ε0)^(ε0)^(ε0)^(ε0).
a[1{1 / 3}2]b = a[1{1{1{...1{1 / 2}2... / 2}2 / 2}2 / 2}2]a with b leftmost 1's inside the outermost {}. For example, 3[1{1 / 3}2]3 = 3[1{1{1{1 / 2}2 / 2}2 / 2}2]3. FGH level ε1.
a[1{1 / 3}1{1 / 3}2]b = a[1{1 / 3}1{1{1{...1{1 / 2}2... / 2}2 / 2}2 / 2}2]a with b leftmost 1's after the {1 / 3}. FGH level (ε1)2.
a[1{2 / 3}2]b = a[1{1 / 3}1{1 / 3}...{1 / 3}2]a with b string of 1's separated by {1 / 3}. FGH level (ε1)^ω.
a[1{1{1 / 3}2 / 3}2]b = a[1{1{1{1{...1{1 / 2}2... / 2}2 / 2}2 / 2}2 / 3}2] with b leftmost 1's inside the X / 3 separator (red). FGH level (ε1)^(ε1).
a[1{1 / 4}2]b = a[1{1{1{...1{1 / 3}2... / 3}2 / 3}2 / 3}2]a with b leftmost 1's inside the outermost {}. FGH level ε2.
a[1{1 / 5}2]b = a[1{1{1{...1{1 / 4}2... / 4}2 / 4}2 / 4}2]a with b leftmost 1's inside the outermost {}. FGH level ε3.
a[1{1 / 1,2}2]b = a[1{1 / b}2]a. FGH level εω.
a[1{1 / 2,2}2]b = a[1{1{1{...1{1 / 1,2}2... / 1,2}2 / 1,2}2 / 1,2}2]a with b leftmost 1's inside the outermost {}. FGH level ε(ω+1).
a[1{1 / 1,3}2]b = a[1{1 / b,2}2]a. FGH level ε(ω2).
a[1{1 / 1,4}2]b = a[1{1 / b,3}2]a. FGH level ε(ω3).
a[1{1 / 1,1,2}2]b = a[1{1 / 1,b}2]a. FGH level ε(ω^2).
a[1{1 / 1,1,1,2}2]b = a[1{1 / 1,1,b}2]a. FGH level ε(ω^3).
a[1{1 / 1{2}2}2]b = a[1{1 / 1,1,1,...,1,1,2}2]a with b string of 1's. FGH level ε(ω^ω).
a[1{1 / 1{1,2}2}2]b = a[1{1 / 1{b}2}2]a. FGH level ε(ω^ω^ω).
a[1{1 / 1{1 / 2}2}2]b = a[1{1 / 1{1...1{1,2}2...2}2}2]a with b pairs of 1,2's. FGH level ε(ε0).
a[1{1 / 1{1 / 3}2}2]b ~ FGH level ε(ε1).
a[1{1 / 1{1 / 4}2}2]b ~ FGH level ε(ε2).
a[1{1 / 1{1 / 1,2}2}2]b ~ FGH level ε(εω).
a[1{1 / 1{1 / 1{1 / 2}2}2}2]b ~ FGH level ε(ε(ε0)).
a[1{1 / 1{1 / 1{1 / 1{1 / 2}2}2}2}2]b ~ FGH level ε(ε(ε(ε0))).
The limit of the primitive expanding arrays is the FGH level ζ0 = φ(2,0) = ψ(Ω^2) = ψ(Ω) with respect to Madore's OCF = ψ0(Ω^2) = ψ0(ψ1(ψ1(0))) with respect to Buchholz's OCF.
Now we expand on the previous section: The new general rule is:
If there is a / before it then change {#1 / m+1%} into Sn, while S1 = {#1 / m%} and S(n+1) = {#1{Sn}2 / m%}.
Example: 3[1{1 / 1 / 2}2]3 = 3[1{1 / 1{1 / 1{1 / 2}2}2}2]3; 3[1{1 / 1 / 2,2}2]3 = 3[1{1 / 1{1 / 1{1 / 1{1 / 1 / 1,2}2 / 1,2}2 / 1,2}2 / 1,2}2]3.
a[1{1 / 1 / 2}2]b = a[1{1 / 1{1 / 1...1{1 / 2}2...2}2}2]a with b 1{1's inside the outermost {}. FGH level ζ0.
a[2{1 / 1 / 2}2]b ~ FGH level ζ0 + 1.
a[1{1 / 1 / 2}3]b ~ FGH level (ζ0)2.
a[1{1 / 1 / 2}1,2]b ~ FGH level (ζ0)ω.
a[1{1 / 1 / 2}1{1 / 1 / 2}2]b ~ FGH level (ζ0)^2.
a[1{2 / 1 / 2}2]b ~ FGH level (ζ0)^ω.
a[1{1{1 / 1 / 2}2 / 1 / 2}2]b ~ FGH level (ζ0)^(ζ0).
a[1{1 / 2 / 2}2]b = a[1{1{1...1{1 / 1 / 2}2...2 / 1 / 2}2 / 1 / 2}2]a with b 1{1's inside the outermost {}. FGH level ε(ζ0+1).
a[1{1 / 3 / 2}2]b = a[1{1{1...1{1 / 2 / 2}2...2 / 2 / 2}2 / 2 / 2}2]a with b 1{1's inside the outermost {}. FGH level ε(ζ0+2).
a[1{1 / 1,2 / 2}2]b = a[1{1 / b / 2}2]a. FGH level ε(ζ0+ω).
a[1{1 / 1{1 / 2}2 / 2}2]b ~ FGH level ε(ζ0+ε0).
a[1{1 / 1{1 / 1 / 2}2 / 2}2]b ~ FGH level ε((ζ0)2).
a[1{1 / 1 / 3}2]b = a[1{1 / 1{1 / 1...1{1 / 1 / 2}2...2 / 2}2 / 2}2]a with b 1{1's inside the outermost {}. FGH level ζ1.
a[1{1 / 2 / 3}2]b ~ FGH level ε(ζ1+1).
a[1{1 / 1 / 4}2]b = a[1{1 / 1{1 / 1...1{1 / 1 / 3}2...2 / 3}2 / 3}2]a with b 1{1's inside the outermost {}. FGH level ζ2.
a[1{1 / 1 / 1,2}2]b = a[1{1 / 1 / b}2]a. FGH level ζω.
a[1{1 / 1 / 1{1 / 2}2}2]b ~ FGH level ζ(ε0).
a[1{1 / 1 / 1{1 / 1 / 2}2}2]b ~ FGH level ζ(ζ0).
a[1{1 / 1 / 1 / 2}2]b = a[1{1 / 1 / 1{1 / 1 / 1...1{1 / 1 / 2}2...2}2}2]b with b 1{1's inside the outermost {}. FGH level η0 = φ(3,0)
a[1{2 / 1 / 1 / 2}2]b ~ FGH level (η0)^ω.
a[1{1 / 2 / 1 / 2}2]b ~ FGH level ε(η0+1).
a[1{1 / 1 / 2 / 2}2]b ~ FGH level ζ(η0+1).
a[1{1 / 1 / 1 / 3}2]b = a[1{1 / 1 / 1{1 / 1 / 1...1{1 / 1 / 1 / 2}2...2 / 2}2 / 2}2]a with b 1{1's inside the outermost {}. FGH level η1 = φ(3,1).
a[1{1 / 1 / 1 / 1,2}2]b = a[1{1 / 1 / 1 / b}2]a. FGH level ηω = φ(3,ω).
a[1{1 / 1 / 1 / 1{1 / 1 / 1 / 2}2}2]b ~ FGH level η(η0) = φ(3,φ(3,0)).
a[1{1 / 1 / 1 / 1 / 2}2]b = a[1{1 / 1 / 1 / 1...{1 / 1 / 1 / 2}...2}2]a with b 1{1's inside the outermost {}. FGH level φ(4,0).
a[1{1 / 1 / 1 / 1 / 1 / 2}2]b = a[1{1 / 1 / 1 / 1 / 1...{1 / 1 / 1 / 1 / 2}...2}2]a with b 1{1's inside the outermost {}. FGH level φ(5,0).
The limit of this level is φ(ω,0) = ψ(Ω^ω).
Now we need to introduce more high-ranking separators. After /, it comes to // = (/2), /// = (/3), //// = (/4), (/1,2), (/1{2}2), (/1{1 / 2}2), etc. using all arrays up to this point. The previous process rules still apply, so that (/2) or // decomposes to just /, /// decomposes to //, //// decomposes to ///, and so on.
So, 3[1{1 (/2) 2}2]4 = 3[1{1 // 2}2]4 = 3[1{1 / 1 / 1 / 1 / 2}2]3.
a[1{1 // 2}2]b = a[1{1 / 1 / ... / 1 / 2}2]b with b string of 1's separated by /. FGH level φ(ω,0).
a[1{1 / 2 // 2}2]b ~ FGH level ε(φ(ω,0)+1).
a[1{1 / 1 / 2 // 2}2]b ~ FGH level ζ(φ(ω,0)+1).
a[1{1 // 3}2]b = a[1{1 / 1 / ... / 1 / 2 // 2}2]b with b string of 1's separated by /. FGH level φ(ω,1).
a[1{1 // 4}2]b = a[1{1 / 1 / ... / 1 / 2 // 3}2]b with b string of 1's separated by /. FGH level φ(ω,2).
a[1{1 // 1,2}2]b = a[1{1 // b}2]a. FGH level φ(ω,ω).
a[1{1 // 1{1 / 2}2]b ~ FGH level φ(ω,ε0).
a[1{1 // 1{1 // 2}2}2]b ~ FGH level φ(ω,φ(ω,0)).
a[1{1 // 1 / 2}2]b = a[1{1 // 1{1 // 1...{1 // 2}...2}2}2]a with b 1{1's inside the outermost {}. FGH level φ(ω+1,0).
a[1{1 // 1 / 1 / 2}2]b ~ FGH level φ(ω+2,0).
a[1{1 // 1 // 2}2]b = a[1{1 // 1 / 1 / ... / 1 / 2}2]a with b string of 1's separated by /. FGH level φ(ω2,0).
a[1{1 // 1 // 1 // 2}2]b ~ FGH level φ(ω3,0).
a[1{1 // 1 // 1 // 1 // 2}2]b ~ FGH level φ(ω4,0).
a[1{1 /// 2}2]b = a[1{1 // 1 // ... // 1 // 2}2]a with b string of 1's separated by //. FGH level φ(ω^2,0).
a[1{1 //// 2}2]b = a[1{1 /// 1 /// ... /// 1 /// 2}2]a with b string of 1's separated by ///. FGH level φ(ω^3,0).
a[1{1 (/1,2) 2}2]b = a[1{1 (/b) 2}2]a = a[1{1 ////...//// 2}2]a with b /'s. FGH level φ(ω^ω,0).
a[1{1 (/1,1,2) 2}2]b ~ FGH level φ(ω^ω^2,0).
a[1{1 (/1{2}2) 2}2]b ~ FGH level φ(ω^ω^ω,0).
a[1{1 (/1{1,2}2) 2}2]b ~ FGH level φ(ω^ω^ω^ω,0).
a[1{1 (/1{1 / 2}2) 2}2]b ~ FGH level φ(ε0,0).
a[1{1 (/1{1 / 3}2) 2}2]b ~ FGH level φ(ε1,0).
a[1{1 (/1{1 / 1,2}2) 2}2]b ~ FGH level φ(εω,0).
a[1{1 (/1{1 / 1{1 / 2}2}2) 2}2]b ~ FGH level φ(ε(ε0),0).
a[1{1 (/1{1 / 1 / 2}2) 2}2]b ~ FGH level φ(ζ0,0).
a[1{1 (/1{1 / 1 / 1 / 2}2) 2}2]b ~ FGH level φ(η0,0).
a[1{1 (/1{1 // 2}2) 2}2]b ~ FGH level φ(φ(ω,0),0).
a[1{1 (/1{1 // 1 // 2}2) 2}2]b ~ FGH level φ(φ(ω2,0),0).
a[1{1 (/1{1 /// 2}2) 2}2]b ~ FGH level φ(φ(ω^2,0),0).
a[1{1 (/1{1 /(1,2) 2}2) 2}2]b ~ FGH level φ(φ(ω^ω,0),0).
a[1{1 (/1{1 /(1{1 / 2}2) 2}2) 2}2]b ~ FGH level φ(φ(ε0,0),0).
a[1{1 (/1{1 /(1{1 // 2}2) 2}2) 2}2]b ~ FGH level φ(φ(φ(ω,0),0),0).
a[1{1 (/1{1 /(1{1 /(1{1 / 2}2) 2}2) 2}2) 2}2]b ~ FGH level φ(φ(φ(ε0,0),0),0).
And finally, the limit is now Γ0 (Feferman–Schütte ordinal) = φ(1,0,0) = ψ(Ω^Ω) = θ(Ω). The Γ0-function is defined at a[1{1 /(1 / 2) 2}2]b = a[1{1 /(1 /(...1 / 2) 2) 2}2]a with b /'s.
Strictly speaking, the (/n) delimiter is too technical to understand, hence I will use the graves (``) instead. The slash (/) is the shorthand for `1`.
a[1{1 `2` 2}2]b = a[1{1 / 1 / ... / 1 / 2}2]b with b string of 1's separated by /. FGH level φ(ω,0).
a[1{1 / 2 `2` 2}2]b ~ FGH level ε(φ(ω,0)+1).
a[1{1 / 1 / 2 `2` 2}2]b ~ FGH level ζ(φ(ω,0)+1).
a[1{1 `2` 3}2]b = a[1{1 / 1 / ... / 1 / 2 `2` 2}2]b with b string of 1's separated by /. FGH level φ(ω,1).
a[1{1 `2` 4}2]b = a[1{1 / 1 / ... / 1 / 2 `2` 3}2]b with b string of 1's separated by /. FGH level φ(ω,2).
a[1{1 `2` 1,2}2]b = a[1{1 `2` b}2]a. FGH level φ(ω,ω).
a[1{1 `2` 1{1 / 2}2]b ~ FGH level φ(ω,ε0).
a[1{1 `2` 1{1 `2` 2}2}2]b ~ FGH level φ(ω,φ(ω,0)).
a[1{1 `2` 1 / 2}2]b = a[1{1 `2` 1{1 `2` 1...{1 `2` 2}...2}2}2]a with b 1{1's inside the outermost {}. FGH level φ(ω+1,0). Let Sn to be 1{1 S(n-1) 2}2, and S1 = 1 `2` 2. For b = 2, it will be S2, b = 3 => S3, etc.
a[1{1 `2` 1 / 1 / 2}2]b ~ FGH level φ(ω+2,0).
a[1{1 `2` 1 `2` 2}2]b = a[1{1 `2` 1 / 1 / ... / 1 / 2}2]a with b string of 1's separated by /. FGH level φ(ω2,0).
a[1{1 `2` 1 `2` 1 `2` 2}2]b ~ FGH level φ(ω3,0).
a[1{1 `2` 1 `2` 1 `2` 1 `2` 2}2]b ~ FGH level φ(ω4,0).
a[1{1 `3` 2}2]b = a[1{1 `2` 1 `2` ... `2` 1 `2` 2}2]a with b string of 1's separated by `2`. FGH level φ(ω^2,0).
a[1{1 `4` 2}2]b = a[1{1 `3` 1 `3` ... `3` 1 `3` 2}2]a with b string of 1's separated by `3`. FGH level φ(ω^3,0).
a[1{1 `1,2` 2}2]b = a[1{1 `/b` 2}2]a. FGH level φ(ω^ω,0).
a[1{1 `1,1,2` 2}2]b ~ FGH level φ(ω^ω^2,0).
a[1{1 `1{2}2` 2}2]b ~ FGH level φ(ω^ω^ω,0).
a[1{1 `1{1,2}2` 2}2]b ~ FGH level φ(ω^ω^ω^ω,0).
a[1{1 `1{1 / 2}2` 2}2]b ~ FGH level φ(ε0,0).
a[1{1 `1{1 / 3}2` 2}2]b ~ FGH level φ(ε1,0).
a[1{1 `1{1 / 1,2}2` 2}2]b ~ FGH level φ(εω,0).
a[1{1 `1{1 / 1{1 / 2}2}2` 2}2]b ~ FGH level φ(ε(ε0),0).
a[1{1 `1{1 / 1 / 2}2` 2}2]b ~ FGH level φ(ζ0,0).
a[1{1 `1{1 / 1 / 1 / 2}2` 2}2]b ~ FGH level φ(η0,0).
a[1{1 `1{1 `2` 2}2` 2}2]b ~ FGH level φ(φ(ω,0),0).
a[1{1 `1{1 `2` 1 `2` 2}2` 2}2]b ~ FGH level φ(φ(ω2,0),0).
a[1{1 `1{1 `3` 2}2` 2}2]b ~ FGH level φ(φ(ω^2,0),0).
a[1{1 `1{1 `1,2` 2}2` 2}2]b ~ FGH level φ(φ(ω^ω,0),0).
a[1{1 `1{1 `1{1 / 2}2`2}2` 2}2]b ~ FGH level φ(φ(ε0,0),0).
a[1{1 `1{1 `1{1 `2` 2}2` 2}2` 2}2]b ~ FGH level φ(φ(φ(ω,0),0),0).
a[1{1 `1{1 `1{1 `1{1 / 2}2` 2}2` 2}2` 2}2]b ~ FGH level φ(φ(φ(ε0,0),0),0).
Now the separators are now much easier to understand!