Code: Select all
a serious revamp of ah. Most rules are preserved.
Part one: Starter notations
define $_n as any entries (including no entries) in an array. It’s my symbol for we-don’t-care entries. In any one use of any one rule, if n is the same, $_n is the same
a#b = concatenation of a and b
n@m =
n, m = 1
{n}#(n@(m-1)), m > 1, m not a lim ord
n@(m[n]) if m is a lim ord
g(a,n,B) =
ah_g(a-1,n,B) {B}, a > 1;
n, a = 0
Basic ah rules
Rule 1.
ah^a_n {$_0} = g(a,n,$_0)
Rule 2.
ah_n ({$_1}#{z}) = ah_n {$_1}, z = 0
Rule 3.
ah_n{} = n+1
Rule 4.
ah_n{a+1,$_2} = ah^n_n{a,$_2}
Rule 5.
ah_n{a,$_3} = ah_n{a[n],$_3}, a a lim ord
Rule 6.
ah_n ((0@b)#{a+1,$_4}) = ah_(n+1) (((a+1)@b)#{a,$_4}), b > 0
Rule 7.
ah_n ((0@b)#{a,$_5}) = ah_n ((a@b)#{a[n],$_5}), a a lim ord & b > 0
Enormous arrays
if unspecified, n is the subscript in the first (closest) ah that is in front of the array.
{$_0(@@b,$_2)0} = {$_0}
{$_0((@@b,$_2)a,$_1} = {$_0(@@b)a[n],$_1},a a lim ord
{$_0(@@0)(a+1),$_1} = ({$_0@}#{$_0(@@0)(a),$_1}
{$_0(@@b+1,$_2)(a+1),$_1} = ({$_0(@@b,$_2)}#{$_0@@(a),$_1}
{$_0(@@b,$_2)$_3} = {$_0(@@b[n],$_2)$_3}, if b is a lim ord
Apply basic ah rules otherwise to everything after the (@@$) or everything inside the (@@$) depending on what is necessary. This includes nesting and incrementing the subscript.
{$_0@@@(a+1),$_1} = {$_0(@@($_0@@@a,$_1))$_0,$_1}
{$_0@@@0} = {$_0}
{$_0@@@a,$_1} = {$_0@@@a[n],$_1}, a a lim ord.
Apply ah rules otherwise
Dimensional arrays
{$_0[[k]]0} = {$_0}
{$_0[[k+1]]a+1,$_1} = {$_0[[k]]$_0[[k+1]]a,$_1}
{$_0[[k]]a+1,$_1} = {$_0[[(k[n])]]$_0[[k]]a,$_1}, k a lim ord
{$_0[[0]]a+1,$_1} = {$_0@@@$_0[[0]]a,$_1}
{$_0[[k]]a,$_1} = {$_0,a[[k]]a[n],$_1}, a a lim ord
{$_0[[k]]0@m,a+1,$_1} = {$_0[[k]](ah_n{$_0[[k]](a+1)@m,a,$_1})@m,a,$_1}
{$_0[[k]]0@m,a,$_1} = {$_0[[k]]a@m,a[n],$_1}, a a lim ord
The rightmost of the highest-valued (by k) [[k]] is evaluated first.