Define the system and fathom his growth.
§4. Blixa system 1
Blixa
is styled after our
Btrix
system.
Formatting and output rules are simple.
- 0.0 Blix[a`M] ≡ `M ≡ M (format)
- 1.0 Blix[a`b] = b (output)
- 0.1 [1] ≡ , (comma)
We use a grave accent `
to hide the system constant a on its left.
This inert separator can be thought of as
[-] ≡ `
having a negative index.
List the main rules for evaluating nested arrays in the
Blixa
system.
- 2.0 [] = 0 (void)
- 3.0 [S]] = ] (end)
- 4.0 [S][ = [ (clear)
- 6.0 `b,1 = `ab, (add)
- 5.0 `[R]1 = `a[R] {R≠0} (start)
- 6.0 `b1→[1S]1 = `→[S]b1[1S] (upload)
- 7.0 `b1→[,1S]1 = `→[b1,S]a[,1S] (subload)
The difference with Alexa
where a constant a is uploaded,
is that in Blixa
upload rule 6.
searches on the right →
to insert a subtotal b.
Though most of the time the algorithm will operate at ground level,
the rule matching sentry [1S]1n
can also be nested.
§4.1. Linear Blixa
Apply the Blixa
rules to linear arrays.
This
blog
already gave a concrete example.
- Blix[a`[1]n] 0.≡ ,n 5.= a,n- 6·2.= aa,n-- =6·2.= a{n}, 3·1.= a*n
- [1]m[1]n V.= a*m,n V.= a*m+a*n = a*mn
- [2]n1 5.= a[2]n 6.=5. [1]a[2]n- V.= a*a[2]n- 6.=5. [1]a^2[2]n-- V.= a^3[2]n-- == a^n1
- [2]m[2]n V.= a^m[2]n V.= a^m*a^n = a^mn
Gray coloured rules reuse results from the calculation above.
We derive the following helper rules from the main system of
Blixa
.
- 6.1 `b1,1 6.= `a[]b, 2.= `a1b, (increment)
- 6.2 `b1[1R]1 6.=5. `[R]1b[1R] (base upload)
- 6.3 `b1→[,1S]1 6·2.= `a→[1b,S]1 (upload index)
- 5.1 `[1R]2 5.= `a[1R]1 6.= `[R]a[1R] (start upload)
- 5.2 `[,1R]1 5·6.= `a[a,R] =5. `[a,R]1 (start index)
The upload of accumulated totals from base entry `b
increases function speed, so that the third separator
[3]n
already expresses
a^^n
= a***n
tetration.
- [p1]n1 6.= [p]a[p1]n- V.= a*{p}a[p1]n- 6.= [p]a*{p}a[p1]n-- V.= a*{p}a*{p}a[p1]n-- == a*{p1}n1 = a→n1→p {p>0}
- [p]m[p]n V.= a↓m↓p[p]n 6.= [p-]a↓m↓p[p]n- V.= a↓(a↓m↓p)↓p-[p]n- == a↓(..a↓m↓p..)↓p- :n: = a↓mn↓p = [p]mn
The last line proves how adjacent same seps can be merged
by addition of entries.
We write the Ackermann-type function
a↓b1↓c1
= a→b1→c
with Conway's arrows.
§4.2. Conway's down arrows
John Horton Conway let his row of chained arrows start with
a→b→c
to equal superpowers a^{c}b
as defined by
Knuth's arrows.
From the three entries and rule 1.
of chained arrows, rule 0.
can be retraced, which completes Conway's system.
- →0 a→b = a^b (starter)
- →1 R→1→z = R {z≠0} (inside stop)
- →2 R→1 = R (outside drop)
- →3 R→y1→z1 = R→(R→y→z1)→z {y≠0,z≠0} (motor)
Wildcard R
is a substring
pi→..q
:r≥0
where entries
pi>0,q>0
are positive numbers.
Same with ↓
for final word Z
below.
We define a variation on chained arrows that we call
Conway's down arrows.
Here the rules have to be applied in order, so that identity
1. has precedence over rule
2. in the evaluation of
a↓b↓1↓1 = a
for example.
- ↓0 a↓b = ab (start
+
) - ↓1 a↓R↓1↓Z = a↓1↓Z = a (identity
a
) - ↓2 R↓y1↓1 = R↓(R↓y↓1) (drop
↓0
) - ↓3 R↓y1↓z1 = R↓(R↓y↓z1)↓z (substitution)
Our function of ↓
down arrows increases approximately as fast as
→
chained arrows.
The first three entries
a↓b↓c
already express a*{c}b
superpowers.
a↓b1↓1 2.= a↓(a↓b↓1) 0.= a(a↓b↓1) =2:0.= a..(a↓1↓1) :b 1.= a.. :b1 = a*b1 a↓b1↓2 3.= a↓(a↓b↓2)↓1 =3:1.= a↓(..a..)↓1 :b: V.= a*..a :b = a**b1 a↓b1↓c1 =3:1.= a↓(..a..)↓c :b: =V.= a*..b1 *:c1 = a→b1→c
The temporary V.
rule applies an arithmetic result, derived via the line(s) above.
Continue our comparison of both types of Conway's arrows over the row.
a↓b↓2↓1 2·1.= a↓b↓a
≈ a→2→a < a→2→2→2
a↓b↓c1↓1 2.= a↓b↓(a↓b↓c↓1) =2:1.= a↓b↓(..a..) :c:
≈ a→b→(..a..) :c: > a→b→c→2
a↓b↓c1↓d > a→b→c→d1
a↓R↓y↓z < a→R→y→z1 < a↓R↓y1↓z
With Conway's down arrows we have an alternative tool to work out array functions. Let arithmetical operations inside have preference over the evaluation of Conway's arrows.
§4.3. Multidimensional Blixa
We compare Blixa
with
down ↓ arrows,
and make both systems match on the fly.
Here all variables n>0
are not empty.
- [,1]n1 = a[,1]n = a[a]n = [a]n1 = a↓n1↓a
- [,1]m[,1]n = a↓m↓a[,1]n = a[a↓m↓a]n = a↓n1↓(a↓m↓a)
- [1,1]n2 = [,1]a[1,1]n = a↓a↓a[1,1]n = [,1]a↓a↓a[1,1]n = [a↓a↓2↓1]a[1,1]n- = a↓a↓3↓1[1,1]n- == a↓a↓n2↓1 > a→a→n1→2
- UNDER CONSTRUCTION
- [2,1]n1 = [1,1]a[2,1]n- = a↓a↓a↓1[1,1]n- = [a↓a↓2↓2]a[1,1]n-- = a↓a↓3↓2[1,1]n-- == a↓a↓n2↓2 > a→a→n1→3
- [p,1]n = a[p,1]n- = a[pa]n- = [ap]n = a↓n↓ap
- [,2]n = a[,2]n- = a[a,1]n- = [a,1]n = a↓n↓aa
- [p,2]n = a[p,2]n- = a[pa,1]n- = [ap,1]n = a↓n↓aap
- [p,q]n = a↓n↓a*q+p
- [2,1]n1 = [1,1]a[2,1]n- ≈ a→a→2→4[2,1]n- ≈ a→a→3→4[1,1]n-- ≈≈ a→a→n1→4
- [p,1]n1 ≈≈ a→a→n1→p2
The linear array covers superpowers,
but the next index Blixa
already expresses the row of Conway's chained arrows.
- [,2]n1 = a[,2]n = [a,1]a[,2]n- ≈ a→a→a→a2[,2]n- ≈ [a→a→a→2→2,1]a[,2]n-- (with a→..1→z ≈ a2) ≈ a→a→a→3→2[,2]n-- ≈≈ a→a→a→n1→2 [1,2]n1 = [,2]a[1,2]n- ≈ a→a→a→a→2[1,2]n- ≈ [,2]a→a→a→2→3[1,2]n-- (with a→..1→z ≈ a) ≈≈ a→a→a→n1→3 [p,2]n1 ≈≈ a→a→a→n1→p2 [p,q1]n1 ≈≈ a→..n1→p2 :q2
We are confident that the number obtained at nesting depth
n for Blixa
will be as fundamental as tetration a^^n
was
for deep nested Alexa
in the previous section.
§5. Superfast growing
§5.1. Nested Blixa
Presume all variables
p>0,n>0
have 1
or more.
- [[2]1]n = [,a]n = a→n→a^2 [1[2]1]n = [[2]1]a[1[2]1]n- = a→a→a^2[1[2]1]n- = a→(a→a→a^2)→a^2[1[2]1]n-- = a→n→a^2+1 [p[2]1]n = a→n→a^2+p [,2[2]1]n = [a,1[2]1]n = a→n→a^2+a*2 [[2]2]n = [,a[2]1]n = a→n→a^2*2 [[2]p]n = a→n→a^2*p [[3]p]n = a→n→a^3*p [[p]1]n = a→n→a^p