Multidimensional array functions for Big numbers.

####
Past `,,`

into the second row
§3.4

After the
first row
of function arguments in our system `♥`

a second row is appended.

We employ a double comma `,,`

to separate rows within a multidimensional array.

In a definition list we mark a rule `m.♥`

if it was covered by some rule `m.n`

before.

We approximate `~>`

expressions by preceding (just smaller)
chained arrows.

**3.0**a,1,,1 = a,1..*{,1:a1}***~>**`2→a1→a`

**1.♥**a,b1,,1 = aa,b,,1*a*2^b*,1,,1**~>**`2→`

**a*2^b**→**a*2^b**

When entry `a`

has accumulated its first row
so that all but entry `b=1`

is counted down,
its job becomes to inflate the size of the row again.

Work out three cases.
The
approximation
as calculated for the first row applies.

- ♥(5,1,,1)
_{3.}= ♥(5,1,1,1,1,1,1)_{2.}= ♥(10,5,5,5,5,5)_{ }~> 2^^^^^6\^^^^5**~>**`2→8→5`

- ♥(2,4,,1)
_{1.}= ♥(16,1,,1)_{3.}=_{2.}= ♥(32.,16..)*{:16}*_{ }~> 2^^{..}17\^^{..}16*{16 15}***~>**`2→19→16`

- ♥(2,1,2,,1)
_{2.}= ♥(2,3,1,,1)_{1.}= ♥(8,1,1,,1)_{2.}= ♥(8,9,,1)_{1.}= ♥(u,1,,1)*{u:***2^11**}_{ }`~> 2^`

^{..}u1\^^{..}u*{u u-}***~>**2→u3→u_{ }`~> 2→11→2→2`

By default a partial row^{ }`R`

either starts on `1`

or is empty,
which implicates we have to follow^{ }up
with *comma elimination* `A,=A`

in rules `♥.3.1`

and `♥.2.5`

below.

Wildcard `Z`

(or

in calculations)
fits any part to the right of the expression,
but because the preceding repetition is
greedy,
^{♥}`Z`

and^{ }later `R`

won't start with `,1`

in the rules `♥.2`

respectively.^{ }
This can also be read from the matching
`Z/`

descriptions.**RegExp**^{ }

**1.♥**a,1bZ = aa,bZ ==*a*2^b*,1Z (redoubling motor)**2.3**a,1..Z*{,1:n1 Z/***(,(,1+)*)?**}*{,1:n}*(upload to end of first row)*{,a:n}***2.4**a,1..Z*{,1:n1 Z/***1+(,1+)*,?(,1+)***}*{,1:n}*(upload within first row)*{a,:n}*_{1.}= aa,..Z*{a,:n1}***3.1**a,1,,1R = a,1..,,R*{,1:a1}*(upgrade first row size)_{2.}= aa,a..,,R*{,a:a}***~>**`2→a1→a`

,1,,R**2.5**a,1,,1..R*{,1:n1}*(uploads to second row entry)*{,1:n-}*

We apply the old rules for the
first row
until the primer pattern `a,1,,`

occurs and then the new dimensional rules kick in.
Generally a lower level structure is treated *as if*
it is a subexpression of the higher level waiting on the right.

Only the rightmost structures cannot be inflated
and are just counted down and off
(this alone guarantees reducibility of the expression).

Two further examples on the second row.

- ♥(2,1,,4)
_{3.}= ♥(2,1,1,1,,3)_{2.}= ♥(4,2,2,,3)_{ }== ♥(2^11,1,1,,3) = ♥(2^12,2048,,3)_{ }~> ♥(v,1,,3)*{v:***2^2059**}_{3.}= ♥(v,1..,,2)*{,1:v1}*_{ }~> ♥(w,1,,2)*{w:**2→2059→2→2*}_{ }~> ♥(x,1,,1)*{x:**2→2059→3→2*}_{ }*~> 2→2059→4→2* - ♥(2,1,,1,2)
_{2.}= ♥(2,1,,3,1)_{3.}= ♥(2,1,1,1,,2,1)_{ }~> ♥(w,1,,1,1) ~> ♥(w,1,,w)*{w:**2→2059→2→2*}_{ }*~> 2→2059→w→2 ~> 2→2059→2→3*

With this last example we have passed Graham's number(s) – the largest integer ever used in a serious mathematical article (in 1971, for an upper bound in Ramsey theory).

Formulate the **approximation of two rows**
in system `♥`

compared to
chained arrows.

From the expressions that were reduced to natural number before
we've learned that:

- a,R
^{♥}= a,r_{í}..^{♥}*{,r*_{í}:n}**~***2^*,1^{..}r_{n}3^{♥}*{^:n}***~>**v_{r},1^{♥}*{v*_{r}:*2→r*}_{n}→n - a,R,,1b
^{♥}**~>***2→v*,1,,b_{r}→v_{r}^{♥}**~***2→v*,1,,b_{r}→2→2^{♥}^{ }**~>***2→*,1,,1*@*→1b→2^{♥}*{@aR}* - r
_{i},..,b*{r*_{i},:n}**~>***2→**@*→b1→2*{@r*_{i}..}

A meta-mix shortcut `@`

over
a set of variables `r`

will ideally derive some _{1},..r_{n}*lifted mean* from this set,
but in practice a *maximal* parameter `r`

is a safe choice._{m}

Because the numbers are already so Big and_{ }there's
no need to split any hairs, the

mix-maximized value
is just to make sure that, when *@*`r`

has a superiorly (or_{m}_{ }infinitely) larger value than the other parameters
our approximation formula still holds._{ }

It is convenient to write the set of variables assigned to `@`

without commas and_{ }to append new next entries
*at* an existing max-mixed set
without further ado._{ }

- a,R,,b,1c
^{♥}**~>**2,1,,*2→*,c*@*→b→2^{♥}^{ }**~>***2→*,1,,1,c*@*→(**2→**)→2*@*→b→2^{♥}^{ }**~>***2→*,1,,1,c*@b*→2→3^{♥}^{ }**~>***2→*,1,,1,-c*@b*→(**2→**)→2*@b*→2→3^{♥}^{ }**~>***2→*,1,,1,1*@b*→1c→3^{♥} - a,R,,b,c,1d
^{♥}**~>**2,1,,1,*2→*,d*@b*→c→3^{♥}^{ }**~>***2→*,1,,1,1,d*@b*→(**2→**)→3*@b*→c→3^{♥}^{ }**~>***2→*,1,,1,1,d*@bc*→2→4^{♥}^{ }**~>***2→*,1,,1,1,1*@bc*→1d→4^{♥} - R
_{m},,R_{n},z^{♥}**~>**2,1,,1,..*2→@*,-z^{♥}*{1,:n- @R*_{m}R_{n}}^{ }_{ }_{ }**~>***2→@→2→n2*,1,,1,..-z^{♥}*{1,:n}*^{ }_{ }_{ }**~>***2→@→z→n2*,1,,1,..1^{♥}*{1,:n}*^{ }_{ }_{ }**~>***2→@→z1→n2*,1,,1^{♥} - r
_{i,1},..,r_{j,2},..z*{r*_{i,1},:m r_{j,2},:n}^{ }_{ }_{ }**~>***2→@→z1→n2**{@R*_{m}R_{n}}

Let the subscripts under a partial_{ }row
sign `R`

keep count of its number of parameters.

In system `♥`

one row with length `n1`

and final entry `z`

can be approximated by

using 3 parameters of chained arrows.
*R _{n}*→z→n

*Two rows*in the system

`♥`

require 4_{ }parameters of chained arrows. You can guess where we are heading at…

_{ }

#### Square array §3.5

Just like every parameter holds some variable number `1..`

every row in what's called a square
will have different lengths. In the course of a
reduction cascade the sizes in a multidimensional function array
behave extremely erratic.

Parameters are counted down to value `1`

and likewise row size is reduced until a leftmost entry `1`

remains and then the upgrade rule appends a series of
`,1`

to the row.

First we sketch an overview of the reduction cascade
for a system `♥`

square array.

The rule correspondences (rules rendered

green)
could then be sought out.*m.n*=

- a,b,c,,d,e,,f,g,,h
**::**a,1,c_{2.7}= a,a1,c-**:**a,1,1_{2.7}= a,a1**::**a,1,,d,e_{3.2}= a,1..,,d-,e*{,1:a1}*_{2.6}=_{2.7}=_{1.5}aa,a..,,d-,e*{,a:a}***:**a,1,,1,e_{2.7}= a,1,,a1,e-**:**a,1,,1,1_{2.6}= a,1,,a1**::**a,1,,1,,f,g_{3.2}= a,1,,1..,,f-,g*{,1:a1}***:**a,1,,1,,1,g_{2.7}= a,1,,1,,a1,g-**:**a,1,,1,,a1**::**a,1,,1,,1,,h_{3.2}= a,1,,1,,1..,,h-*{,1:a1}***:**a,1,,1,,1,,1_{3.2}= a,1,,1,,1..*{,1:a1}*_{2.6}=**.**

Reuse the rules
`♥.0.1,1.5`

in the definition of the second dimension or square.

Use a wordcard
`S/`

for a partial square (possibly void).**(1+(,1+)*(,(,1+)+)*)?**

**2.6**a,1,,1..,1..Z*{,,1:n- ,1:m Z/***(,(,1+)+)***}*{,,1:n- ,1:m-}*`n=1`

of first row, for`n>1`

a higher row)**2.7**a,1,,1..,1..S*{,,1:n- ,1:m}**{,,1:n- ,1:m-}*`n=1`

in first row, for`n>1`

a higher row)**3.2**a,1,,1..S*{,,1:n}*(upgrade row size)*{,,1:n- ,1:a}*

From an earlier
reduction
of `♥(4,2,2,,3)`

to `♥(w,1,,2)`

take over the
value of `w`

in the course of the following example.

- ♥(2,1,,1,,1) = ♥(2,1,,1,1,1) = ♥(2,1,,1,3) = ♥(2,1,,3,2)
= ♥(2,1,1,1,,2,2) = ♥(4,2,2,,2,2)
~> ♥(w,1,,1,2) ~> ♥(w,1,,w,1)
*{w:*~> ♥(y,1,,y)*2→2059→2→2*}*{y:**2→2059→w→2 ~> 2→2059→*}**2^2059**→2*~> 2→2059→y→2 ~> 2→2059→3→3*

To name the size of this number, among Bowers' infinity scrapers it comes just after the Corporalplex, and yet it is among the smallest members of a very large family.

Build a formula for **approximation of a square** upon the
two rows
already calculated._{ }

A full row `R`

has _{n}`n`

entries
`r`

_{i},..r_{n}`{:n-}`

and the sign `@`

is a dynamic mean,
best_{ }represented by the largest of all entries
previously included in the reduction._{ }

- R
_{m},,R_{n},,b^{♥}**~>***2→@→r*,1,,1,,b_{n}→n1^{♥}*{@R*_{m}R_{n}}**~>***@*,1,,1,..*@→@→@*,,-b^{♥}*{1,:**2→@→r*}_{n}→n1**~>***@→@→@→2→2*,1,,1,,-b^{♥}**~>***@→@→@→3→2*,1,,1,,--b^{♥}**~>***@→@→@→b→2*,1,,1,,1^{♥} - R
_{m},,R_{n},,b,c,d^{♥}**~>***@*,1,,1,,*@→@→@→b→2*,-c,d^{♥}**~>***@→@→@→2→3*,1,,1,,1,-c,d^{♥}**~>***@→@→@→c→3*,1,,1,,1,1,d^{♥}**~>***@*,1,,1,,1,*@→@→@→c→3*,-d^{♥}**~>***@→@→@→2→4*,1,,1,,1,1,-d^{♥}**~>***@→@→@→d→4*,1,,1,,1,1,1^{♥} - R
_{m},,R_{n},,R_{p}**~>***@→@→@→r*_{p}→p1 - R
_{m},,R_{n},,R_{p},,R_{q}**~>***@→@→@→@→r*_{q}→q1 - R
_{ni},,..R_{ns}*{:s-}***~>***@→..r*_{ns}→n_{s}1*{:s}*

Let `S`

in the system `♥`

be a two dimensional array with `s`

rows,
where the last row has a length `z`

with a final entry `y`

and let `S`

overall
have a maximal parameter value `x`

,
then `S`

is approximately larger than a series
`x→..y→z1 `

of Conway's
chained arrows
– or larger than
*{:s}*`z1→↑s2`

when represented by superchained arrows.

We conclude the square of `♥`

and the row of chained arrows increase equally fast.
Given a large enough size `s`

our spouses won't notice the difference
(just `2`

parameters).

Now we go one dimension higher.

#### Cubic arrays §3.6

The new rules for the cube are an extension of those for the
square
in the section above, and form a special case in the
`♥`

definition of
dimensional arrays
in the next section.

For the moment work out an example
of a cubic array `11,1,,,111`

(in binary notation).

- ♥(2,1,,,3) = ♥(2,1,,1,,1,,1,,,2) = ♥(2,1,,1,,1,1,1,,,2)
= ♥(2,1,,1,,3,2,,,2) = ♥(4,2,2,,2,2,,2,2,,,2)
= ♥(2^v
_{0},1,,2,2,,2,2,,,2)*{v*~> ♥(v_{0}:*2059*}_{1},1,,1,,2,2,,,2)*{v*~> ♥(v_{1}:*2→v*}_{0}→3→3_{1},1,,1,..v_{1},,1,2,,,2)*{1,:v*~> ♥(v_{1}}_{2},1,,1,,1,2,,,2)*{v*~> ♥(v_{2}:*2→v*}_{1}→v_{1}→v_{1}~ 2→v_{0}→v_{0}→2→2_{2},1,,1,..v_{2},,v_{2},1,,,2)*{1,:v*~> ♥(v_{2}}_{3},1,,1,,v_{2}-,1,,,2)*{v*~> ♥(v_{3}:*2→v*}_{2}→v_{2}→v_{2}~ 2→v_{0}→v_{0}→3→2_{4},1,,1,,v_{4},,,2)*{v*~> ♥(v_{4}:*2→v*}_{0}→v_{0}→v_{2}→2 ~ 2→v_{0}→v_{0}→2→3_{5},1,,,2)*{v*~> ♥(v_{5}:*2→v*}_{0}→v_{0}→v_{4}→2 ~ 2→v_{0}→v_{0}→3→3_{5},..,,..7,,,1)*{v*~> ♥(v_{5},..:v_{5}v_{5},..,,:v_{5}}_{6},1,,,1)*{v*~> ♥(v_{6}:*v*v_{5}→..2_{5}→..:v_{5}*~ v*}_{5}→↑v_{5}_{6},..,,..7)*{v*_{6},..:v_{6}v_{6},..,,:v_{6}}*~> v*_{6}→..2*{v*~> v_{6}→..:v_{6}}_{6}→↑v_{6}~> v_{5}→↑(**v**) = v_{5}→↑v_{5}_{5}→↑3→2 ~> v_{0}→↑(**v**) ~> v_{0}→↑(**v**)_{0}→v_{0}→v_{0}→3→3_{0}→↑(**v**) ~> 4→↑4→2_{0}→↑(**v**)_{0}→↑4

Notice the cube is upgraded with squares
when it is reduced to a *primer* `a,1,,,`

To compare this number with another notation –
in Beaf the next larger would be `{3,4,1,1,2}`

a small Pentadecal.

Now we approximate the cube starting_{ }from
the earlier results on the
square.

A member square `S`

holds _{n}`n`

rows `R`

and in `@`

we store a past largest entry._{ }

- S
_{n},,,b^{♥}**~>***@→↑n2*,1,,,b^{♥}*{@S*_{n}}

This wraps up the cube.

#### Multiple dimensions §3.7

A structure is anything that is systematically countable.
A bare structure is counted down and either waiting to be upgraded
or to be counted off.

Iterator variables `1..`

are the smallest structures in this respect
and get an upload from the accumulator value `a`

in rule `♥.4`

(more precisely: the bare variable `1`

rightmost from the *primer* has the substructure unit
`1`

added `a`

times).

We've
arranged
the primer in the system `♥`

to be `a,1`

so the countdown of variable `b`

and the first row stops there if a higher structure is waiting.

Philosophically the accumulator `a`

is not part of any structure and all structures
are to be counted down to `1`

(except final variables `z`

in expressions of `♥`

which
are counted down to zero, leaving a piece of the structural skeleton
to drop off from the right).

To address separators in general we^{ }introduce
a generic shorthand `$`

which signifies any type of variable separator.^{ }
This translation should be consistent, meaning that similar types are
intended at similar^{ }positions
on both sides of an equation.

Then a dimensional series
`p$`

with various commas _{i}.. *{:n}*`$`

is
_{i}`,`

can be written in the shorthand
^{..} *{,:k _{i}}*

`p`_{$}.. *{:n}*

in a rule list as below^{ }.

**0.2**A_{$}= A**2.?**a,1_{$}..1Z*{1*= a,1_{$}:n}_{$}..a1_{$}Z*{1*_{$}:n-}

After countable commas `,`

to separate higher dimensions,
extradimensional types of separators
^{..}`,`

or rather _{Xi;}^{..}`,``

will follow suit.**X _{i}**`..

^{ }