Thursday 16 April 2015

Blixa 1st - Nested Arrays

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)
UNDER CONSTRUCTION

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] {R0} (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}, 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 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 = an1p {p>0}
  • [p]m[p]n V.= amp[p]n 6.= [p-]amp[p]n- V.= a(amp)p-[p]n- == a(..amp..)p- :n: = amnp = [p]mn

The last line proves how adjacent same seps can be merged by addition of entries.
We write the Ackermann-type function ab1c1 = ab1c with Conway's arrows.

§4.2. Conway's down arrows

John Horton Conway let his row of chained arrows start with abc 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 ab = a^b (starter)
  • 1 R1z = R {z0} (inside stop)
  • 2 R1 = R (outside drop)
  • 3 Ry1z1 = R(Ryz1)z {y0,z0} (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 ab11 = a for example.

  • 0 ab = ab (start +)
  • 1 aR1Z = a1Z = a (identity a)
  • 2 Ry11 = R(Ry1) (drop ↓0)
  • 3 Ry1z1 = R(Ryz1)z (substitution)

Our function of down arrows increases approximately as fast as chained arrows.
The first three entries abc already express a*{c}b superpowers.

ab11 2.= a(ab1) 0.= a(ab1)
     =2:0.= a..(a11) :b 1.= a.. :b1 = a*b1
ab12 3.= a(ab2)1 =3:1.= a(..a..)1 :b:
     V.= a*..a :b = a**b1
ab1c1 =3:1.= a(..a..)c :b:
     =V.= a*..b1 *:c1 = ab1c 

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.

ab21 2·1.= aba
     ≈ a2a < a222
abc11 2.= ab(abc1) =2:1.= ab(..a..) :c:ab(..a..) :c: > abc2
abc1d > abcd1
aRyz < aRyz1 < aRy1z

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 = an1a
  • [,1]m[,1]n = ama[,1]n = a[ama]n = an1(ama)
  • [1,1]n2 = [,1]a[1,1]n = aaa[1,1]n = [,1]aaa[1,1]n = [aa21]a[1,1]n- = aa31[1,1]n- == aan21 > aan12
  • UNDER CONSTRUCTION
  • [2,1]n1 = [1,1]a[2,1]n- = aaa1[1,1]n- = [aa22]a[1,1]n-- = aa32[1,1]n-- == aan22 > aan13
  • [p,1]n = a[p,1]n- = a[pa]n- = [ap]n = anap
  • [,2]n = a[,2]n- = a[a,1]n- = [a,1]n = anaa
  • [p,2]n = a[p,2]n- = a[pa,1]n- = [ap,1]n = anaap
  • [p,q]n = ana*q+p
  • [2,1]n1 = [1,1]a[2,1]n- ≈ aa24[2,1]n- ≈ aa34[1,1]n-- ≈aan14
  • [p,1]n1 ≈aan1p2

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- ≈ aaaa2[,2]n- ≈ [aaa22,1]a[,2]n-- (with a→..1→z ≈ a2)aaa32[,2]n-- ≈aaan12 [1,2]n1 = [,2]a[1,2]n- ≈ aaaa2[1,2]n- ≈ [,2]aaa23[1,2]n-- (with a→..1→z ≈ a)aaan13 [p,2]n1 ≈aaan1p2 [p,q1]n1 ≈a..n1p2 :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 = ana^2 [1[2]1]n = [[2]1]a[1[2]1]n- = aaa^2[1[2]1]n- = a(aaa^2)a^2[1[2]1]n-- = ana^2+1 [p[2]1]n = ana^2+p [,2[2]1]n = [a,1[2]1]n = ana^2+a*2 [[2]2]n = [,a[2]1]n = ana^2*2 [[2]p]n = ana^2*p [[3]p]n = ana^3*p [[p]1]n = ana^p