User blog:Rgetar/Ordinals array function

I interested in ordinals, and I asked myself: "Why we use \(\omega\),  \(\omega2\), \(\omega^2\), \(\omega^\omega\), \(\epsilon_0\), \(\zeta_0\), \(\phi(3,0)\), \(\Gamma_0\) etc. instead of \(\omega\uparrow\uparrow\uparrow\omega\), \(\omega\uparrow\uparrow\uparrow\uparrow\omega\) etc.?"

But I realized this doesn't work beyond \(\epsilon_0\) since \(\omega\uparrow\uparrow(\omega+1) = \omega^{\omega\uparrow\uparrow\omega} = \omega^{\epsilon_0} = \epsilon_0 = \omega\uparrow\uparrow\omega\).

I experimented and created a BEAF-like system, suitable also for ordinals.

It is family of functions [X]a of ordinal a.

Sequence X and its separators
Let X - sequence of ordinals (or "negative ordinals", i.e. ordinals with "-" sign before them) with separators.

All zeros we may omit.

All left part only with zeros and any separators we also may omit.

A separator may be written two ways: set of (...) or &lt;...&gt;.

Type and body of separators
A separator has body and type, which are also sequences of ordinals. For example, &lt;\(X_{type}\)|\(X_{body}\)&gt;. If \(X_{type} = 0\), separator may be written only with body: &lt;|\(X_{body}\)&gt; = &lt;\(X_{body}\)&gt;. (For now, we'll consider only zero types).

(X) separators
(X) is as in BEAF: (1) moves through one row, (2) - through one plane, (3) - through one 3D space etc. (0) should move through one element.

&lt;X&gt; separators
Easier way to write separators is to use &lt;X&gt;: first right element is number of (0)'s, second right is number of (1)'s, third right is number of (2)'s etc.

In particular,

&lt;1&lt;X&gt;&gt; = (X)

&lt;n&lt;X&gt;&gt; = n (X)'s

&lt;1&gt; = (0) may be written as comma :

&lt;1&gt; =, = = (0)

Examples:

&lt;5&gt; = ,,,,, = ,0,0,0,0,0 = = (0)(0)(0)(0)(0)

&lt;1,2,3,4,5&gt; = (0)(0)(0)(0)(0)(1)(1)(1)(1)(2)(2)(2)(3)(3)(4)

&lt;1,&gt; = &lt;1,0&gt; = &lt;1&lt;1&gt;&gt; = (1)

&lt;1,2&gt; = (1) = (0)(0)(1) = ,,(1) = ,0,0(1)

&lt;2,&gt; = &lt;2,0&gt; = (1)(1)

&lt;1,,&gt; = &lt;1,0,0&gt; = &lt;1&lt;2&gt;&gt; = (2)

&lt;1,,,&gt; = &lt;1,0,0,0&gt; = &lt;1&lt;3&gt;&gt; = (3)

&lt;2,,3,&gt; = &lt;2,0,3,0&gt; = (1)(1)(1)(3)(3)

&lt;3&lt;1,&gt;&gt; = &lt;3&lt;1,0&gt;&gt; = &lt;3&lt;1&lt;1&gt;&gt;&gt; = &lt;3(1)&gt; = (1,)(1,)(1,) = (1,0)(1,0)(1,0)

Empty separator &lt;0&gt;
&lt;&gt; = &lt;0&gt; is empty separator, it doesn't add anything:

X&lt;&gt; = X&lt;0&gt; = X

For example,

1,2,3&lt;&gt; = 1,2,3

&lt;0&gt; can only be located at the end of X. If it is located between elements of X, it doesn't separate anything, and these two elements actually should be one. Maybe,

a&lt;0&gt;b = a + b

(But this is not used).

&lt;X&gt; addition
Adjacent separators &lt;X&gt; may be added:

&lt;1&gt;&lt;1&gt; = &lt;2&gt;

&lt;1&gt;&lt;1,0&gt; = &lt;1,1&gt;

&lt;1,0&gt;&lt;1,0&gt; = &lt;2,0&gt;

etc.

Eraser &lt;-1&gt;
&lt;-1&gt; erases one element:

X,n&lt;-1&gt; = X

For example,

1,2,3&lt;-1&gt; = 1,2

(Also, &lt;-n&gt; should erase n elements, &lt;-n,0&gt; should erase n rows, &lt;-n,0,0&gt; - n planes, but this is not used).

Last element decreaser X-1
X-1 is X with last element decreased by 1.

For example,

X = 1,2,3,4,5

X-1 = 1,2,3,4,4

X = 1,2,3,4,0

X-1 = 1,2,3,4,-1

X = 0

X-1 = -1

X*&lt;X'&gt; representation of X
&lt;X'&gt; is a separator at the right end of X. X* is rest of X. So,

X = X*&lt;X'&gt;

For example,

X = 1,2,3 = 1,2,3&lt;&gt;

X* = 1,2,3

X' = 0

X = 1(2)2(1)3,0,0,0,0,0 = 1&lt;1&lt;2&gt;&gt;2&lt;1&lt;1&gt;&gt;3&lt;5&gt; = 1&lt;1,,&gt;2&lt;1,&gt;3&lt;5&gt;

X* = 1(2)2(1)3 = 1&lt;1&lt;2&gt;&gt;2&lt;1&lt;1&gt;&gt;3 = 1&lt;1,,&gt;2&lt;1,&gt;3

X' = 5

X = 1(1)1 = 1&lt;1,0&gt;1&lt;0&gt; = 1&lt;1,&gt;1&lt;&gt;

X* = 1&lt;1,&gt;1

X' = 0

X* and X' are also may be represented in this form:

X* = X**&lt;X*'&gt;

X' = X'*&lt;X"&gt;

Always should be

X* = X**&lt;X*'&gt; = X**&lt;0&gt; = X**

X*' = 0

Hence if

X = 0

then

X* = 0

X' = 0

Any X may be uniquely represented in this form X = X*&lt;X'&gt;.

Identity function [-1]a
[-1] doesn't change anything:

[-1]a = a

Last element nullifier X⁰
X⁰ is X with last element set to zero, if X' = 0 else X⁰ = -1.

For example,

X = 1,2,3,4,5

X⁰ = 1,2,3,4,0

X = 1,2,3,4,0

X⁰ = -1

X = 0

X⁰ = 0

So, if last element of X is not zero, X⁰ sets it to zero, and if it is zero, X⁰ = -1 except X = 0 when X⁰ also sets it to zero.

(X; a; b) designation
(X; a; b) = a, if X' ≠ 0

(X; a; b) = b, if X' = 0

X·a function
X·a is a function mapping X to other "X", depending on ordinal a.

For X = 0

0·a = -1

(in this case X·a doesn't depend on a)

For non-zero X see Rules.

Rules
If non-zero type separators not used, rules:

1. []а = a + 1

2. [X]a = [X⁰][X·a]a

3. X·a = X*-1&lt;1&lt;X"&gt;&gt;(X'; 1; a)&lt;X'·a&gt;

And, I think, rule for limit ordinals, possibly, may be: if last ordinal in X (including ordinals inside separators) is a limit ordinal \(\alpha\), [X]a is limit of [\(X_i\)]a where \(X_i\) are X with \(\alpha\) replaced by \(\alpha_i\) which limit is \(\alpha\).

Also, it is well to remember that

X = X*&lt;X'&gt;

X* = X**&lt;X*'&gt;

X*' = 0, that is X* = X**

X' = X'*&lt;X"&gt;

X-1 decreases by 1 last element of X

X⁰ sets to zero last element of X, if X' = 0

X⁰ = -1, if X' ≠ 0

(X; a; b) = a, if X' ≠ 0

(X; a; b) = b, if X' = 0

[-1]a = a

0·a = -1

&lt;-1&gt; erases previous element

Consequence: if

X' = 0

then

X·a = X-1

(in this case X·a doesn't depend on a, same way as for X = 0)

One element
Special case of rules for X consisted of single element b:

[0]а = a + 1

[b]a = [0][b-1]a

or

[0]а = a + 1

[b]a = [0]\(^{1+b}\)a

or

[b]a = a + 1 + b

Limit ordinals
[ω]a is a limit of [0]a, [1]a, [2]a...

[ω+1]a = [0][ω]a

[ω+2]a = [0][ω+1]a

[ω2]a is a limit of [ω]a, [ω+1]a, [ω+2]a...

[ω&lt;sup&gt;2&lt;/sup&gt;]a is a limit of [ω]a, [ω2]a, [ω3]a...

One-dimensional array
Special case of rules for one-dimensional array of elements of X = X*&lt;b&gt;:

[]а = a + 1

[X]a = [X⁰][X·a]a

X·a = X*-1,a&lt;b-1&gt;

or

[]а = a + 1

[X]a = [X⁰][X-1]a, b=0

[X]a = [X*-1,a&lt;b-1&gt;]a, b&gt;0

In particular,

[X,b]a = [X,]\(^{1+b}\)a

[b+1,]a = [b,a]a = [b,]\(^{1+a}\)a (this resembles FGH, but with 1+a instead of a)

Ordinal subtraction
Ordinal subtraction is operation, opposite to ordinal addition. Since ordinal addition is non-commutative, there are two ordinal subtractions (as for exponentiation, which is also non-commutative and also has two opposite operations: root and logarithm):

(a - b) + b = a

b + (a - b) = a

We'll use the second one.

a-1 is as for natural numbers, if a is a finite ordinal, and a-1 = a, if a is a countable ordinal.

Examples:

5 - 1 = 4

but

(ω + 5) - 1 = ω + 5 (not ω + 4 since 1 + ω + 4 = ω + 4 but 1 + ω + 5 = ω + 5).

Two elements
[1,0]a = [a]a = a + 1 + a

[1,1]a = [1,0][1,0]a = a + 1 + a + 1 + a + 1 + a

[1,2]a = [1,0][1,1]a = a + 1 + a + 1 + a + 1 + a + 1 + a + 1 + a + 1 + a + 1 + a

[1,b]a = (1 + a)*2\(^{1+b}\) - 1 for finite or countable a

[1,b]a = a*2\(^{1+b}\) for countable a

[1,b]a = a*2\(^b\) for countable a and b

[2,0]a = [1,a]a = (1 + a)*2\(^{1+a}\) - 1 for finite or countable a

[2,0]a = a*2\(^a\) for countable a

[2,1]a = [2,0][2,0]a

[2,2]a = [2,0][2,1]a = [2,0][2,0][2,0]a

[2,3]a = [2,0][2,2]a = [2,0][2,0][2,0][2,0]a

[3,0]a = [2,a]a

[3,1]a = [3,0][3,0]a

[3,2]a = [3,0][3,1]a = [3,0][3,0][3,0]a

[4,0]a = [3,a]a

[5,0]a = [4,a]a

etc.

Three elements
[1,0,0]a = [1&lt;2&gt;]a = [a,0]a = [a&lt;1&gt;]a

[1,0,1]a = [1,0,0][1,0,0]a

[1,0,2]a = [1,0,0][1,0,1]a = [1,0,0][1,0,0][1,0,0]a

[1,0,3]a = [1,0,0][1,0,2]a = [1,0,0][1,0,0][1,0,0][1,0,0]a

[1,1,0]a = [1,0,a]a

[1,1,1]a = [1,1,0][1,1,0]a

[1,1,2]a = [1,1,0][1,1,1]a = [1,1,0][1,1,0][1,1,0]a

[1,2,0]a = [1,1,a]a

[1,3,0]a = [1,2,a]a

[2,0,0]a = [1,a,0]a

[3,0,0]a = [2,a,0]a

etc.

Four elements
[1,0,0,0]a = [1&lt;3&gt;]a = [a,0,0]a = [a&lt;2&gt;]a

[1,0,0,1]a = [1,0,0,0][1,0,0,0]a

[1,0,1,0]a = [1,0,0,a]a

[1,1,0,0]a = [1,0,a,0]a

[2,0,0,0]a = [1,a,0,0]a

etc.

Five and more elements
[1,0,0,0,0]a = [1&lt;4&gt;]a = [a,0,0,0]a = [a&lt;3&gt;]a

[1&lt;5&gt;]a = [a&lt;4&gt;]a

[1&lt;6&gt;]a = [a&lt;5&gt;]a

[1&lt;7&gt;]a = [a&lt;6&gt;]a

etc.

Limit ordinals
[1,ω]a is a limit of [1,0]a, [1,1]a, [1,2]a...

[2,ω,0]a is a limit of [2,0,0]a, [2,1,0]a, [2,2,0]a...

[ω,ω,0,0]a is a limit of [ω,0,0,0]a, [ω,1,0,0]a, [ω,2,0,0]a...

[ω&lt;ω&gt;]a is a limit of [ω&lt;0&gt;]a, [ω&lt;1&gt;]a, [ω&lt;2&gt;]a...

Multi-dimensional array
Special case of rules for multi-dimensional array of elements of X = X*&lt;X'*&lt;b&gt;&gt;:

[]а = a + 1

[X]a = [X⁰][X·a]a

X·a = X*-1&lt;1&lt;b&gt;&gt;(X'; 1; a)&lt;X'·a&gt;

or

[]а = a + 1

[X]a = [X⁰][X-1]a, X' = 0

[X]a = [X*-1,a&lt;X'-1&gt;]a, X' ≠ 0 , b = 0

[X]a = [X*-1&lt;1&lt;b&gt;&gt;1&lt;X'*-1,a&lt;b-1&gt;&gt;]a, X' ≠ 0 , b &gt; 0

or

[]а = a + 1

[X]a = [X⁰][X-1]a, X' = 0

[X]a = [X·a]a, X' ≠ 0

X·a = X*-1,a&lt;X'-1&gt;, b = 0

X·a = X*-1&lt;1&lt;b&gt;&gt;1&lt;X'·a&gt;, b &gt; 0

Second row
One row separator:

&lt;1,0&gt; = &lt;1,&gt; = &lt;1&lt;1&gt;&gt; = (1)

[1&lt;1,0&gt;]a = [a&lt;a&gt;]a

[1&lt;1,0&gt;1]a = [1&lt;1,0&gt;][1&lt;1,0&gt;]a

[1&lt;1,0&gt;2]a = [1&lt;1,0&gt;][1&lt;1,0&gt;1]a = [1&lt;1,0&gt;][1&lt;1,0&gt;][1&lt;1,0&gt;]a

[1&lt;1,0&gt;1,0]a = [1&lt;1,0&gt;a]a

[1&lt;1,0&gt;1,0,0]a = [1&lt;1,0&gt;a,0]a

[1&lt;1,0&gt;1,0,0,0]a = [1&lt;1,0&gt;a,0,0]a

[2&lt;1,0&gt;]a = [1&lt;1,0&gt;1&lt;a&gt;]a

[3&lt;1,0&gt;]a = [2&lt;1,0&gt;1&lt;a&gt;]a

[1,0&lt;1,0&gt;]a = [1&lt;1,1&gt;]a = [a&lt;1,0&gt;]a

[1,1&lt;1,0&gt;]a = [1,0&lt;1,0&gt;1&lt;a&gt;]a = [1&lt;1,1&gt;1&lt;a&gt;]a

[1,2&lt;1,0&gt;]a = [1,1&lt;1,0&gt;1&lt;a&gt;]a

[1,0,0&lt;1,0&gt;]a = [1&lt;1,2&gt;]a = [a&lt;1,1&gt;]a = [a,0&lt;1,0&gt;]a

[1,0,0,0&lt;1,0&gt;]a = [1&lt;1,3&gt;]a = [a&lt;1,2&gt;]a = [a,0,0&lt;1,0&gt;]a

[1&lt;1,4&gt;]a = [a&lt;1,3&gt;]a

[1&lt;1,5&gt;]a = [a&lt;1,4&gt;]a

etc.

Plane beyond second row
Multiple rows separators:

&lt;2,0&gt; = &lt;2,&gt; = &lt;2&lt;1&gt;&gt; = (1)(1)

&lt;3,0&gt; = &lt;3,&gt; = &lt;3&lt;1&gt;&gt; = (1)(1)(1)

etc.

[1&lt;2,0&gt;]a = [1&lt;a&gt;&lt;1,0&gt;]a = [1&lt;1,a&gt;]a

[1&lt;2,0&gt;1]a = [1&lt;2,0&gt;][1&lt;2,0&gt;]a

[1&lt;1,0&gt;1&lt;1,0&gt;]a = [1&lt;1,0&gt;&lt;1,0&gt;1&lt;a&gt;]a = [1&lt;2,0&gt;1&lt;a&gt;]a

[1&lt;1,0&gt;2&lt;1,0&gt;]a = [1&lt;1,0&gt;1&lt;1,0&gt;1&lt;a&gt;]a

[1&lt;1,0&gt;3&lt;1,0&gt;]a = [1&lt;1,0&gt;2&lt;1,0&gt;1&lt;a&gt;]a

[1&lt;1,0&gt;1,0&lt;1,0&gt;]a = [1&lt;1,0&gt;1&lt;1,1&gt;]a = [1&lt;1,0&gt;a&lt;1,0&gt;]a

[1&lt;1,0&gt;1,1&lt;1,0&gt;]a = [1&lt;1,0&gt;1,0&lt;1,0&gt;1&lt;a&gt;]a = [1&lt;1,0&gt;1&lt;1,1&gt;1&lt;a&gt;]a

[1&lt;1,0&gt;1,0,0&lt;1,0&gt;]a = [1&lt;1,0&gt;1&lt;1,2&gt;]a = [1&lt;1,0&gt;a&lt;1,1&gt;]a

[2&lt;2,0&gt;]a = [1&lt;1,0&gt;1&lt;a&gt;&lt;1,0&gt;]a = [1&lt;1,0&gt;1&lt;1,a&gt;]a

[3&lt;2,0&gt;]a = [2&lt;1,0&gt;1&lt;1,a&gt;]a

[1,0&lt;2,0&gt;]a = [1&lt;2,1&gt;]a = [a&lt;2,0&gt;]a

[1&lt;2,2&gt;]a = [a&lt;2,1&gt;]a

[1&lt;3,0&gt;]a = [1&lt;1,0&gt;1&lt;a&gt;&lt;2,0&gt;]a = [1&lt;1,0&gt;1&lt;2,a&gt;]a

[1&lt;4,0&gt;]a = [1&lt;1,0&gt;1&lt;3,a&gt;]a

[1&lt;5,0&gt;]a = [1&lt;1,0&gt;1&lt;4,a&gt;]a

etc.

Second plane
One plane separator:

&lt;1,0,0&gt; = &lt;1,,&gt; = &lt;1&lt;2&gt;&gt; = (2)

[1&lt;1,0,0&gt;]a = [1&lt;a,0&gt;]a

[1&lt;1,0,0&gt;1]a = [1&lt;1,0,0&gt;][1&lt;1,0,0&gt;]a

[1&lt;1,0,0&gt;1,0]a = [1&lt;1,0,0&gt;a]a

[1&lt;1,0,0&gt;1,0,0]a = [1&lt;1,0,0&gt;a,0]a

[1&lt;1,0,0&gt;1&lt;1,0&gt;]a = [1&lt;1,0,0&gt;1&lt;a&gt;]a

[1&lt;1,0,0&gt;2&lt;1,0&gt;]a = [1&lt;1,0,0&gt;1&lt;1,0&gt;1&lt;a&gt;]a

[1&lt;1,0,0&gt;1&lt;1,1&gt;]a = [1&lt;1,0,0&gt;a&lt;1,0&gt;]a

[1&lt;1,0,0&gt;1&lt;2,0&gt;]a = [1&lt;1,0,0&gt;1&lt;1,a&gt;]a

[1&lt;1,0,0&gt;1&lt;2,1&gt;]a = [1&lt;1,0,0&gt;a&lt;2,0&gt;]a

[1&lt;1,0,0&gt;1&lt;3,0&gt;]a = [1&lt;1,0,0&gt;1&lt;2,a&gt;]a

[2&lt;1,0,0&gt;]a = [1&lt;1,0,0&gt;1&lt;a,0&gt;]a

[3&lt;1,0,0&gt;]a = [2&lt;1,0,0&gt;1&lt;a,0&gt;]a

etc.

3D space beyond second plane
Multiple planes separators:

&lt;2,0,0&gt; = &lt;2,,&gt; = &lt;2&lt;2&gt;&gt; = (2)(2)

&lt;3,0,0&gt; = &lt;3,,&gt; = &lt;3&lt;2&gt;&gt; = (2)(2)(2)

etc.

[1&lt;2,0,0&gt;]a = [1&lt;1,a,0&gt;]a

[1&lt;2,0,0&gt;1]a = [1&lt;2,0,0&gt;][1&lt;2,0,0&gt;]a

[2&lt;2,0,0&gt;]a = [1&lt;1,0,0&gt;1&lt;1,a,0&gt;]a

[1&lt;2,0,1&gt;]a = [a&lt;2,0,0&gt;]a

[2&lt;2,0,1&gt;]a = [1,a&lt;2,0,0&gt;]a

[1&lt;2,1,0&gt;]a = [1&lt;2,0,a&gt;]a

[2&lt;2,1,0&gt;]a = [1&lt;1,0&gt;1&lt;2,0,a&gt;]a

[1&lt;3,0,0&gt;]a = [1&lt;2,a,0&gt;]a

[1&lt;4,0,0&gt;]a = [1&lt;3,a,0&gt;]a

[1&lt;5,0,0&gt;]a = [1&lt;4,a,0&gt;]a

[1&lt;6,0,0&gt;]a = [1&lt;5,a,0&gt;]a

etc.

Four and more dimensions
Separators:

&lt;1&lt;3&gt;&gt; = (3)

&lt;1&lt;4&gt;&gt; = (4)

&lt;1&lt;5&gt;&gt; = (5)

etc.

[1&lt;1&lt;3&gt;&gt;]a = [1&lt;a&lt;2&gt;&gt;]a

[1&lt;1&lt;4&gt;&gt;]a = [1&lt;a&lt;3&gt;&gt;]a

[1&lt;1&lt;5&gt;&gt;]a = [1&lt;a&lt;4&gt;&gt;]a

etc.

Nested array
Special case of rules for nested array of elements of X = X*&lt;X'*&lt;X"&gt;&gt; is also general case of these rules:

[]а = a + 1

[X]a = [X⁰][X·a]a

X·a = X*-1&lt;1&lt;X"&gt;&gt;(X'; 1; a)&lt;X'·a&gt;

or

[]а = a + 1

[X]a = [X⁰][X-1]a, X' = 0

[X]a = [X·a]a, X' ≠ 0

X·a = X*-1,a&lt;X'-1&gt;, X" = 0

X·a = X*-1&lt;1&lt;X"&gt;&gt;1&lt;X'·a&gt;, X" ≠ 0