Construction methods for Big numbers



 
New Page

Ψ. Construction Index X

"bigPsi, construction methods for natural operator expansion"  © 2009-2012 by F.G.A.W. Lelieveld

bigΨ.I. Number operations

part 1, zeroth edition 0.0.24
public: 2009-10-11
last update: 2010-09-03

§I.0. Prelude

Finite beings can only build finite systems. In mathematics we often assume otherwise, but to reasonably refer to infinite items we need to keep our conversation finite, else nobody could hear us out.
To paraphrase the great Dedekind – is he listening? – a mathematical system is Big when it is similar to a previous part of itself. Something as simple as adding an extra counter will expand upon an algorithm for Big numbers to create mind-bogglingly Bigger ones…
In our own number constructions the initial operators are made to nearly match the later operatorial functions. As often, this requires a jump out of the box and into the ocean. When jump and match satisfy, previous concepts are ready to be counted in a new and higher, more general system.

Each number finds expression in an algorithmic system.
Numbers belong to one of four different temperaments.

Address numbers
to count or point to things or chances in the physical world
Big numbers
expressions reduced by an algorithm to a sequence of units
Continuous numbers
the algorithm never halts, yet is projected to the real or infinite
Diametric numbers
mark the jump or link to hitherto disparate algorithmic levels

This on-line book is about the quest for Big numbers and their construction tools – the operatorials bigO. Functions which produce theoretically countable, but practically uncountable natural numbers 1...
The sign ψ (psi) was used by the first classical recursion theorist Wilhelm Ackermann to mark a higher type of function, iterating over a known family of functions. Therefore our prodigious paper is delivered with the tantalizing title bigΨ.
We wish all readers a giant leap and an enchanting journey, into a boundless land of numbers untold of before!

Diophantine riddle

Asamkhyeya takes the liberty to start with a numerological riddle:
The background-coloured digits in the following number point to a diophantine equation. What is its formula? [click→]

Prelude> 6^^3 = 6^6^6
 
Average number of solutions per number base - for digit places 2,3,0,4,5

[hint→] 666 does seem to be the last solution in number base 10, and there are probably no diophantine solutions with more than 5 digits in any other radix. But beware! As foretold in a secret Sasataansanic saga, there might be a Big number solution with 6 digits in the true number basket of Kabbalah, where Tetragrammaton and Beast Nº.2*333 rest asleep in a sea of glass mixed with fire – humånity hanging upside down from Yggdrasil, the mångrove Church of Life, like a Lemånwhose diophantine equation is… (a+b)*(a-b)+a = b*(r^p-1)/(r-1) [b<r]

Ψ.1. Natural repetition

§1.0.1. Addition?

Young native woman with headdress - photo Tropenmuseum Amsterdam

1,2,3,4,5,6,7,8,9,10,

¿Where is Buddha when I am counting?

– Prabhâsadharma Roshi
20th century international Zen master

When you count you repeat a certain unit – a single entity. Stars, spirals, sleep, sheep, sets, seconds, satyrs, smiles or sand grains – all objects are subjects for counting, as long as their individual units can be recognized.
Any two objects are separated by some space and space can be measured in units. These measures can be items for a comparative list, etcetera... until one fails to find meaning and the item's separator is just empty space .

In real life, except for quantity quality always matters. It is perfectly possible to sell a quantity of pigs in exchange for a selection of roots and a busty woman of bad reputation, without knowing their exact number. To belittle a people who only have use for counting numbers up to three is no less barbaric.

The initial unit of arithmetic is one 1 and by repetition of 1.. you can count natural numbers.
The natural representation of zero   ..is nothing!

n = 1... [1#n]
0 = 1... [1# ] =  

Don't think of addition as an operation on numbers. Like zero, addition doesn't actually exist. When we relate it to the first operation of multiplication, addition can be defined as a zeroth operation – the operation without stars.
We add all integers in our notation for natural counting automatically – by simply joining their units with 0* space in between. The old-style plus + operator is unmasked here as an empty star.

ab [0*] = a*..b [*#0]
        = 1...1... [1#a 1#b] = a+b

Peano's successor function S(n) = n+1 uniquely covers all numbers 1.. starting from n=0 by iteration of S, and thereby defines the set of natural numbers.
But it is preposterous to name individual integers with a function or a set. Who would order S(S(0)) baked eggs? Mathematicians are crazy, and they still have to count! (Count the (depth of nested) brackets…)

§1.0.2. Multiplication!!

There are two ways to define multiplication – by repeated addition or by repeated substitution. In our notation a*b the a is repeated b times, which is a binary operation on a pair (a,b) of numbers. We use the single star * as operator, to multiply left operant a (called the item) by right operant b (the iterator).

a*b = a... [a#b 0*]
    = 1... [1#b 1:a]

We write multiplication as a*b and not as b×a because we'd like to position higher iterators on the right.
The second evaluation above shows that multiplication can also be defined by substitution b [1:a] of value a for each unit 1 in natural number b.

# Context of empty operations

Classic mathematicians smoke the empty joint ab [0^] of multiplication, and next enumerate the single arrow a^b of exponentiation as the first case of the a^..b super-powers.
Addition isn't necessarily covered by multiple arrow operators ^.. [^#c] as the reduction rule at one ^ or at zero ^#0 drops operator counter c altogether. An arrow operator a+b is not so simple to define.
To resolve an equation with good old-fashioned adding we explicate the lower level operation a+b with a plus. But by nature addition doesn't belong to the world of arrow operators.

Most calculations we make rely on addition at a basic level, but it is by no means clear how physical states and sizes can be taken together. How do you add force to distance? It's impossible, the qualities don't match. Yet force measured in Newton multiplied by distance in meters amounts to energy Nm = J in Joule. Every quantity in nature is counted by some qualitative physical unit, and only quantities of the same quality add up.

This makes us wonder, does there really exist such an arrow universe, where joining the same qualitative units a... [a#b 0^] = a^b is dimensional in nature? And if not, because deep down under in zero space we live in a discrete world of integer addition, what is it that qualifies as distance or dimension?
According to a theory of Gerard 't Hooft information content depends on the surface of a holographic sphere – ultimately square Planck lengths. Perhaps ours is actually a universe of stars a... [a#b 0*] = a*b where the probabilistic walk of a quantum man is to be measured in square root square foot.

In our experience multiplication is a messy business, in need of an operator. Its classic notation ab without an operator sign, obscures the arithmetical fact that we add numbers by simply joining and counting them. There doesn't seem to be any place for primordial zero 0 in a world of instant multiplication, where all is 1.

In pure mathematics new constructs may arise from multiplication that shy away from direct addition. As such we propose the existence of a utopian or infinite number line with a zero square 0*0 on its inverse part.

00 [0^] = ψ^(-2) 00+0 [0^] = 0

# 1.1. Maths with make-up

§1.1.1. Signs

Variables are notated in lower case a,b,c,.. and can be replaced by numbers or by expressions reducible to numbers. The number substituted for a variable depends on the context – the parameters inside an expression of bigO are defined to hold natural numbers [n≥1] larger than zero.
When you choose to substitute another type of number, the justification for this is a special number theory.

A wildcard is written in upper case A,..,Z to hold the place of any word (sequence of characters) allowed on that position in the expression. Bear in mind that a wildcard can often also stand in for an empty string.
Wild card R (sometimes S,T too) is reserved to designate a row or part of a row of parameters. In the following definition for a partial row R with n non-zero parameters, the empty row is expressed when n=0.

R = aki,... [aki#n aki>0] = ak1,..,akn

The incrementor i is repeated in the corresponding ellipsis and incremented by 1 at each repetition.
The 3-point ellipsis ... is a wildcard for a sequence, specified by a meta-repetition statement X#Y that follows after the expression. A 2-point ellipsis .. can be used instead, and if a meta-statement doesn't follow this .. relies on the imagination of the reader to continue its series (usually there is a minimum of one item).
We notate repeating operator signs with a superscripted ellipsis ×... or ×..

An equation A=B or A=>>B states an exact reduction step of the left expression to the right.
An expression does not contain an equality sign = or an equal by iteration sign =>> or an approximation sign ~ or some comparison sign < > ≠ or substitution sign := or mixed sign thereof.

The inverse unit - generating the negative integers -*n is treated in the next chapter, as is omega ω.
Inverse units should be appended on the right n- of a number, to tell them apart from subtraction n-1.
Because we use e as a 5th function parameter and i more as an incrementing index, the classic signs e for the base of natural logarithms and i = √-1 for the square root of minus one, are written as ê and î = -^2^-
You can find more special signs in the Sign dictionary.

§1.1.2. Colours

Meta-expressions are notated in [violet] font. Both subscripts and meta-expressions preferably use star operator notation, with addition as zeroth star, e.g. [tm1;≥ab] specifies variables a+b < tm+1;

To typify individual variables, wildcards, etc. these are subscripted as: Sign,red,orange.;;

Old style expressions in brown font use the operators +,*,^,^^,.. and apply old school precedence.

Arrows and stars a^...b [^#m] = a*...b [*#m1] can be used to express super-powers. Both operations result in the same numbers, but the latter requires an extra star and there's the issue of precedence.

  • Minority star operators have colour *.. black and define operatorial bigI.
  • Operations with majority arrows ^.. navy are expressed by function bigE.
  • Addictive plus operations +.. green are used in the construction of bigA.
  • Sometimes an expression in a deviant context has the colour kryptonite.

To improve the readability of bracketed expressions we've painted nested entries in the colours of the sea.

E(1,blue,F(2,azure,G(3,dolfin,H(4,aquatic))))

Different fonts give emphasis to details in the mathematical code and structure to the text as a whole. The mottos and pictures reflect on the subject matter of the coming chapter from a spiritual angle.
We've provided for the headers of the subdivisions in this book to be helpful as anchors, stamped in various colours. A box will contain more advanced material, a comment is a note attached to the main text.

Part

Chapter

Subchapter



Section

Box

Comment


Paragraph Code Sub note

Some more arduous (even tedious) samples from longer calculations are currently hidden in the web version of the book, but can be conjured up by clicking a dynamic link to show the grinder!
You can double click the online text to highlight (and print) memorable passages in yellow.

Your reading experience can be further personalized by selecting your own page, highlight and font options in the small form box on top of this webpage. The new settings are kept in a cookie on your browser.
Another interactive feature is the ability to hide (or show) parts of the book with the X close icon (or O open icon) at the top right of each chapter heading. A copy of the chapters of your choice (but without yellow highlights) is then kept in the New Page link that you can find (and click) above the main index. So you can share just the chapters from the book that you like by sending somebody a personalized link (this we recommend).

# 1.2. Meta-methods

Silhouette of two ravens in synchronous flight high in a grey sky

The ravens sit on Óðins shoulders and say into his ear all the tidings which they see or hear. They are called thus: "Huginn" (Thought) and "Muninn" (Memory).
He sends them at day-break to fly about all the world, and they come back before the noon meal, so he is acquainted with many tidings. Therefore men call him "Hrafnaguð" (Raven God), as is said:

Hugin and Munin hover each day the wide earth over.
I fear for Hugin lest he fare not back, --
yet watch I more for Munin.

Gylfaginning 38.

§1.2.1. Indication

Meta-expressions in square brackets [] for substitution and repetition and in curly braces {} for set and class offer us methods to formulate rules for the evaluation of expressions.
A meta-expression [X] can determine the range of a variable or the length of a character sequence (a repetition of words) in the preceding mathematical expression. These notations will help to work out the reduction cascades of operatorial functions and to approximate their relative speeds.

The notation for the range of a variable is familiar, e.g. n>0 to exclude 0 from the natural numbers.
When needed a meta-statement marks the empty space betwixt variables – with 0* to add (our default) or 0^ to multiply (your fault) two neighbouring variables as a single number ab (this we discussed above).
A meta-expression contains a number m of meta-statements Mi which apply in order to preceding expression X.

X [Mi ... #m]

To show which part of the expression the meta-statement applies to, we will either quote the intended character(s), or point to their . beginning and end . with inserted dots. As subsequences S can be quite long – the new rule saves on paper, but costs ink. (o: the legendary ink dots :o).
Dot selection is safe for expressions where surrounding A and Z may contain S that must not change. Indication of a subsequence by quotation in the meta-statement is literal (or lazy) by default, but can be made greedy. Where literal indicators substitute the character S exactly as such, greedy indicators also target adjacent S situated at the end of A or at the start of Z.

ASSSZ = A.S...Z [.#3] (dot selection)
      = AS...Z [S#3] (literal quote)
      = AS...Z [S#3] (greedy quote)  if  A≠A'S & Z≠SZ'

Usually series of meta-statements are evaluated from left to right – which is easy because it doesn't involve repeating as yet unresolved meta-statements – but when an ellipsis .. is itself repeated, a stricter order of precedence from right to left applies. Advanced meta-statements may refer to each other, so that two (or more) take turn in tandem.

Anything that either is or is not can be counted. Every recursion starts with a single operation, defined with an initial case and a single step. With bird's-eye view we can reduce any number of steps to a single meta-repetition.
We believe that, as the rules for the reduction of our Big number constructions become ever more complex, the meta-operator # for repetition will come to lead a life of its own. So that in the end, the whole hip hop movement between expression and meta-expression bursts open for #.. quantification.

§1.2.2. Substitution

Every construction is built from units and substitutions. This way we've defined multiplication a*b as a series of substitutions 1... [1#b 1:a] of the units 1 in a natural number for another natural number.
In essence all notation is substitution. Here substitution is first selection, the read – which requires recognition and physical positioning – and then replacement, the write – which combines the acts of removal and insertion.

Our meta-statement of substitution is A:B and more precisely A:B in P where the substitute word B replaces A on the receptor site A in the preceding expression or exclusively in part P of the expression.
The evaluation is given by XAZ [A:B] = XBZ and TPY [A:B in P:XAZ] = TXBZY, where all A in X and Z are included – recursively as X'AZ' etc. – but possible A in T and Y are excluded from the substitution.

In case substitute B is empty then XA [A:] = X removes site A recursively from each X'..A word.
On the other hand X [:B] on its own does nothing , because an empty site is normally not eligible for substitution. Any substitution rule n [:1] = n1 of zero, would lead to n1.. [1#ω] = ω a definition of infinity.
We'd rather use ω directly, and apply (:n) to the enumeration of characters in hyperarithmetic.

# Hyperarithmetical code

The text on your screen is stored as binary codes in your computer – Unicode boasts a fixed size of 16 bits and 65535 characters. Similarly the symbols of an ever expanding mathematical system can be translated to natural numbers :n to form series of 1.. delimited by : stops.
For example :0 =   should code for null and :1 = X [X:1] = 1 seems onely natural. Follows the separator :2 = , for expression input, plus a pair of brackets `at least` for machine evaluation.

The translated sentences jump to the first hyperarithmetical level h=1, which is in essence a table that swaps characters for numbers, so the sign for substitution : applies. What is called the hyperarithmetical hierarchy would be the enumeration :h;n of a cascade of hyperarithmetical jumps or code translations.

The purpose of hyperarithmetic for Big number lovers is obvious. Using a lot of characters, you can enumerate them as :1;1.. numbers substituting for :0 (ground level) signs. When you know how to streamline your axioms (the rules to evaluate expressions), any size expression systems can be explicated by number.
If the coast looks clear and the weather is fine, a Big number n can call some far away code :1n sign, that would allow you in :0 to create even Bigger numbers n' with, round and round we go…
The recursion that arranges this would necessarily be written in the language :1 of a higher hyperarithmetical level, with an alphabet encoded :2;1 = 1 and :2;2 = : to start with. Then a higher loop can jump in to exploit the full power of recursion over characters and levels in the :h; hyperarithmetical hierarchy.

Just like multiplication, repetition of a word A by a whole number n can be covered by two substitutions A:n 1:A. This works for all A (for XAZ subsequences dot selection or the in clause helps).
Repetition by substitution embodies a distributive law, it doesn't raise issues when A.. [#n] ≠ n.. [#A] is not composed of (evidently) commutative factors, such as omegas (and zeros).

A... [A#n] = 1... [1#n 1:A] = A [A:n 1:A]

Vice versa you can notate substitution A [A:B] as repetition, by A...B [A#] which looks somewhat odd. The A left of the ellipsis will be selected for repetition by 0 and removed, so the B the tooth fairy appended is left. Nothing is actually substituted – what should have been a series was simply pulled out!

Though we use meta-repetition statements profusely, in our view substitution is the True Way, if only because it expresses   [0:1] = 1... [1#ω] = ω infinity naturally, where the raven of substitution would fly off to a rapacious .. [#1] = 0... [0#ψ] = 1 end of the world, if ever, to meet the initial One, or else wait nine days for Him to fall  .. [# 0^] = 0^0 = 1 from the Tree of More remember?

§1.2.3. Repetition

We define a meta-notation for repetition, applied in mathematical and logical expressions.
By extending it with smart features this will be our main tool for constructing Big numbers.

Notate a repeated sequence A in an expression in the format XAB...Z [A#n]
where B is optional and A the first occurrence of the word A left of the ellipsis.

The meta-repetition A#n substitutes AB in the expression n times for word A
while inserting the word B in between, before every next A, in total n- times.

If all characters A directly left of the ellipsis are to be repeated,
we can omit them from the meta-statement with A...Z [#n]

We abbreviate a 3-dot ellipsis ... to a 2-dot ellipsis .. whenever this is convenient.
Superscripted ellipsis ×... count operators, e.g. 2^..3 [^#n] = 2*..4 [*#n]

Extend our meta-repetition notation to cover double-sided recursive constructions.

Instead of the formal XA...CD...Z [A#n D#n] an equal number of n
repetitions on both sides of the ellipsis will be written A..C.D [A#n#D]
or alternatively as A.CD.. [A#n#D] so if n=0 the term C remains.

If all characters to the left and/or right end of expression A..C.D are repeated,
we can omit A and/or D from brackets with [A#n#] or [#n#D] and [#n#]

Likewise for A.C.D..Z where Z is optional, [#n#] repeats both A and D.

An expression AB.... [#m B..#n] with two 2-dot ellipsis .. is a power tandem,
where the right or second hash # repeats the ellipsis .. for the first, see example.

a,.... [#b ,..#3] = a,..,..,.. [#b #b #b]
            =[b:2]= a,a,,a,a,,,a,a,,a,a,,, =[a:2 ,:0*]= 2**4

A full dimension box with repetitions m=n can be marked with a square ellipsis ::
Such power and tetration-like meta-repetitions should be evaluated from right to left.

§1.2.4. Variation

Reserve special meta-variables i,j,l,o to allow repeated sequences to evolve.

The variables i and j signify incrementors, repeated inside A or (also) B.
Start at i=1 (default) and at each iteration add 1 to i, let it increase to n.

Variators l (el) and ο (omicron) are random enumerators, shorthand for
li; = 1... [#ni;>0] is an integer n>0 and οj; = O(ω,Xj;) for infinity.

Incrementors i or j can be followed by an iterative ellipsis (or illipsis) .:. or :.
The :. indicates the sequence in which each preceding meta-variable is dealt with
(a telling example and a hard one with two incrementors handled by a single illipsis).
It is used to override the default where the first ellipsis after the incrementor owns it.

Also a series of substitutions can be employed to address meta-variables,
as in O(v,...) [v#n v:Xi] = O(Xi,...) [Xi#n]

# 1.3. The capacity of counting

Black brush drawing of raised index finger and Chinese signs

Whenever Master Judi was questioned, he would just raise a finger. Later a servant boy would also raise a finger when outsiders asked him what the master taught.
When Judi heard of this, he cut off the boy's finger with a knife.
The boy ran out screaming in pain, but Judi called him back. When the boy turned his head, Judi raised a finger. Suddenly the boy attained enlightenment.
When Judi was about to die, he said to a group, "I attained my teacher Tianlong's one-finger Zen, and have used it all my life without exhausting it." So saying, he passed away.

Wumenguan 3.

Our choice to count fingers 1.. to finally represent Big numbers is not so primitive as it might look. For practical Big purposes its capacity is comparable to decimal numbers, even with exponential notation m.nE+p = m.n*10^p applied.
The principle of frugality then tells us not to waste characters on extra digits to support an inefficient number base (radix). Consider a moderate example:

A series of n ones can be noted down in log(n) digits, concisely so it seems, but already when n = 10^^10 = 10^... [10#10] no (exponential) notation based on an integer radix r>4 offers adequate storage capacity.

log(10^^10) = log(10^(10^^(10-1))) = 10^^(10-1)
            = 10^^9 decimal digits, or 10^^8 in the exponent

The resolution of finger counting is the same in every radix system – all natural numbers are covered.
Note that two natural numbers can represent a fraction n/m or replace a decimal point n.m


Do the binary power towers 2^^n = 2^... [2#n] increase by squaring and decrease by square roots?
Use the function lg below to refer to logarithms of 2, so lg(a) = log(a)/log(2)

2^^6^2 = 2^(2^^5*2)
       = 2^2^(2^^4+1) = 2^2^65537
       = 2^2^2^(2^^3+lg(1+1/2^^4)) ~ 2^2^2^16.0000220
√(2^^7) = 2^2^(2^^5-1)
        ~ 2^2^2^(2^^4+lg(1-1/2^^5)) ~ 2^2^2^(65536 -7.2E-19729)

With respect to a number made by tetration a^^b either squaring or adding 1 does not matter much to the result.
Apparently a system with a resolution where squares have meaning – physical measures are inconceivable without – does not have enough capacity to set most tetrated numbers 11***b and 11***b1 apart.

From a programmer's perspective the mathematical expression of a Big integer is input, formulated by two or more character types. The program itself simplifies this expression in several recursive reduction steps, which typically require extra bracket character(s). And the projected output is a number of repeats of just the digit 1.

# 1.4. Cosmic information resources

§1.4.1. Our little universe

The young physicist Planck with glasses Max Planck
(1858-1947)

The information capacity of our physical universe was recently estimated by Seth Lloyd at 10^90 quantum bits. Any sequence of bits in a fixed state represents a number – this way the random number the cosmos embodies in an instant is ~ 2^2^299.
We can see no particular mathematical reason why there shouldn't be more information around. And indeed, Alan Guth's theories of big bang hyper-inflation provide for an exponential number of pockets of universes of which ours is only 1.
Whether the size of the larger mathematical physical substrate is unlimited, we do not know.

Fact is, we're stuck with Planck units, quantum particles and astronomical constants, which put a physical lid on the size of the information our universal laptop can process.
Suppose the cosmic processor calculates at a fixed rate of (2*(2*2)!)! Planck impulse moments per Planck time unit of 10^-43.2683 s. This algorithm results in a constant energy in the universe of 10^71.1835 J, which divided by Einstein's square of light speed amounts to 10^54.2298 kg approximately the observed mass in the cosmos.

Most information is packed in dark matter and stellar objects, humanity happens on the fringe of cosmic computation. We wonder, is intelligent life a kind of software corrosion, or are we quality – meant to be – on top of quantity?
If life is important so is ethical behaviour, if the universe is important so is religion. Operating on the edge of randomness and determinacy these bits of life cannot grasp and hold their own raison d'être.
On the other hand, this universe – which looks continuous but deep down is discrete – might be a virtual mirror of an earlier Real One, which numerically bugged the Gods called Great. Then what happened to our real selves?
And where are We all?? In a cascade of Transcending importance??? [ write on :-]

According to Seth Lloyd the number of logic operations performed thus far is 10^120 ops. So a digital disk with a perfect copy of the universe up to the present day puts maximally 10^210 bit configurations in causal order.
This seems to convert ops from time to space, but the cosmic Planck grid counts only 10^60.9 time units up to now, and the laws of nature constantly zip up all quantum-events with a physical variant of Jpeg-compression.
Universe, earth, body and mind – all have limited resources. Use them wisely… (read on :-()

Somewhere after stars stopped shining, black holes evaporated and a Big Crunch rolled us all up, the history of the universe must end. We estimate the size of a total copy of cosmic history between 10^100 and 10^300 bits, expressing a random number below the ceiling of 2^2^830 ~ 2^2^2^10.
Left on its own the cosmos never will be able to express a modestly Big random number – for example of size 5^^4 ~ 2^10^2185 ~ 2^2^7257 ~ 2^2^2^13 – even though mathematicians know such numbers exist, in abundance… (this is a proven theory, called the frivolous theorem of arithmetic :-)

Because we can easily express very Big numbers by iteration of functions, Big physical number holes are gaping in-between, where random natural numbers hide which are inexpressible given the resources of our universe.
Big random numbers are physically infinite and cryptographically safe for alien computers (that's a promise ;-)

The sole way to address random Big number individuals, hiding in physical infinity, is by chance [or prayer ;-]

§1.4.2. Chance functions

Just as numbers can get astronomically large, extremely small chances surely exist. This is lovely – you don't know anything that can happen in the real world with 100% certainty. Perhaps your eyes were deceiving you, perhaps someone's memory was incorrect. Small chance? Ask a forensic expert!

Small chances make bad statistics. To win the jackpot in the state lottery 10 times in a row (buying a single ticket for each draw, without using your mafia connections) is less probable than being the first man to have set foot on the moon (when your name isn't Neil Armstrong. Don't you remember? It happened when you were three: the Russians abducted you, they came there first, the American moon landings were staged, as are the Chinese.)
Write a scenario, dissect it and multiply the probabilities of each separate event. When you thought of everything and your estimates are right, the resulting product is a lower bound for the total chance, because events tend to correlate and other scenarios are possible too. (This proves the number of connectable events in our world is vastly limited.)

To express truly Small chances, we have to refer to processes that can only happen outside of the physical guya of our universe. The proposition that we all live in a yellow submarine which entered a black hole and came out in one piece on the other side, except that your intestines are inside out (of which you'll become aware in about 3 seconds), qualifies with a Small amount of uncertainty as wrong.
Yet it's infinitely more likely than the construction of a spaceship powered by an Infinite Improbability Drive somewhere in the unknown future. But then we're talking infinities, and zero chance.

To say that the number of 9^^^^^^^^^9 ones shall be reached one day on your computer by click starting the series 1.. (multiple clicks allowed!) and then just letting the program roll out, in our opinion is harder to realize then the aforementioned world inside a submarine.
It belongs in the Guinness Book of Records as the Smallest non-zero chance to date practically conceived by man.

Nature is random, therefore it's essential to be able to express random numbers and their probability.
We propose these elementary functions of chance.

Let 2? = 0|1 [P(1)= ½] be a flip operation with an outcome of none or one,
both with even chances: (2?)... [#p p↑ω 0*] = p*11**- = p/2

Define a random number operation n1? = 0|i... [|i#n]
with an equal probability P(i) = 1/n for each choice, defined as:
     $(m,n?)...*n [#p↑ω m<n 0*] = p

$:   $(a,bi...) = 0 [,bi#k] iff  a≠bj | ... [a≠bj#k] and
else $(a,bi...) = 1 [,bi#k] iff  a=bj & ... [a=bj#k]

# 1.5. Addictive counting

There's more to counting than meets the eye. In the real world for instance, it's not obvious when we have counted all the objects we have. Maybe later more items will be added, counting is a process, it never stops (though it doesn't really reach infinity).
Therefore a more philosophically inclined mathematician would consider all the natural numbers to be lower bounds. And he would raise his arithmetical system up from this experiential fact of counting.

a ≤ a+... [+#n n≥0]

We'll re-employ the plus sign as a unary operator + acting as a count on a left operant. This new +0 is the initial case of a whole family of countable unary operators +c culminating in the operatorial bigA.
We'll name these operations addictive (Latin addictio = assignment).

The start of + is 1 is familiar, there's this given number a and we count one more.

a+0; = a+ = a1
a+... [+#b] = (.a+).. [(#b#+)] = ab

The next step, operations with subscripts +1 results in doubles, of doubles, of…
Then ai+1;.. ... [ai:2? +1;#i≥0 #n] expresses integers in a random binary system.

a+1; = a++; = a+... [+#a] = a*11
a++;... [++;#b] = (.a++;).. [(#b#++;)] = a*11**b

The basic formula for left associative operators +c has the same footprint.

a+c;... [+c;#0] = a
a+c1; = a+c;... [+c;#a]
a+c;... [+c;#b1] = (a+c;)+c;... [+c;#b]

Inverse addiction +- is a strange beast – it does not exist (or inexists).

a+0; = a+-;... [+-;#a] => +-;... [#n≥0] = + = 1
                     & +-;... [#0] = 1 <= +-;+-; = +-; = 0

More on addictive subscripting in chapter 3.
Our main story line continues with super-power star operators in chapter 2.

# 1.6. Ancient history of Big numbers

Multiple Indian Gods and Godheads appear above the chariot tatraika-stham jagat krtsnam
pravibhaktam anekadhâ
apasyad deva-devasya
sarîre pândavas tadâ

At that time Arjuna could see in the universal form of the Lord the unlimited expansions of the universe situated in one place although divided into many, many thousands.

"...Arjuna could see in the body of Krsna many thousands of universes. As we learn from Vedic scriptures, there are many universes and many planets. Some of them are made of earth, some are made of gold, some are made of jewels, some are very great, some are not so great, etc. Sitting on his chariot, Arjuna could see all these universes. But no one could understand what was going on between Arjuna and Krsna."

Bhagavad Gita 11.13
A.C. Bhaktivedanta Swami Prabhupada

§1.6.1. In Egypt, India and Greece

From the days of Egyptian hieroglyphs to Indian decimals to Renaissance exponentiation our ability to express numbers in a concise manner has evolved.

7555544444444333332222222111111 => 1048576 => 2^20

Of course the Egyptian numerals look differently, but they were millennia ahead of their time – using powers of ∩ = 10 as a number base, counting units instead of exponents, character typing powers instead of digits.
The hieroglyph of the worshipper unit on the right signifies the megalithic figure of a million, as well as infinity.

Six Egyptian hieroglyphs for powers of ten

These signs for 1 10 100 1000 10000 100000 1000000 are at least five thousand petalled lotus years old, as the last three are inscribed on the macehead of the possessive Pharaoh Narmer of the first dynasty.

Some 3000 years later in zero-minded India the mahâyâna (Great Vehicle) buddhists developed a big thirst for stupendous baroque visions of the universal Buddha and the unspeakable numbers to count his huge host of followers and his manifold virtues in a library full of scriptures of which the most renowned is the Lotus Sutra.

# Counting on the Lotus Sutra

The Buddha answered the Bodhisattva Infinite Thought:
    "Good son! If there be countless [10^?] hundred thousand [10^5] myriad [10^4] kotis* [10^7] of living beings suffering from pain and distress who hear of this Bodhisattva Regarder of the Cries of the World, and with all their mind call upon his name, the Bodhisattva Regarder of the Cries of the World will instantly regard their cries, and all of them will be delivered."

– the Lotus Sutra, chapter 24 or 25
The All-Sidedness of the Bodhisattva Regarder of the Cries of the World
* note: Sanskrit original reads sattvakotînayutasatasahasrâni [10^21] in total

If there really is such a higher being (Bodhisattva Avalokiteshvara in Sanskrit) who looks down upon us and is capable of assisting at least 10^16 living beings in an instant, then this enlightening being (whom the Chinese call Guan Yin, a motherly figure like the Virgin Mary), or the God powered rescue mechanism he/she employs can only exist in a larger universe (Buddha land) of which ours is a small but accessible part.

The question is, "How much larger?"

We think the size of a divine lifeline must be exponential compared to the being saved. If the scales don't match, the abstract spark of a soul may be lifted from its bodily enclosure, but all physical information will be lost, because it's too small to contain in a higher order transitory environment.
So if a small creature contains 2^k [k=18] bits of personal information (such as the Name), we surmise its helper God will at most be 2^(k-1) times bigger than the creature's universe – not so very Big.

The Bodhisattva Avalokita, while moving in the deep course of Perfect Understanding, shed light on the five skandhas and found them equally empty. After this penetration he overcame all pain.
    "Listen Shariputra! Form is emptiness, emptiness is form, form is inseparable from emptiness, emptiness does not differ from form. The same is true with perceptions, ideas, feelings and consciousness.
Hear Shariputra! All dharmas are marked with emptiness. They are neither produced nor destroyed."

– the Heart Sutra
(Listen! It's back to zero again ;-)

Meanwhile in Greece the musings of the mind became more mundane and Euclid wrote his mathematical masterpiece Elements (300 BC) of which his foundation of geometry and in particular his postulate for non-parallel lines is best known because it gave rise to non-Euclidean geometry.

From Archimedes of Syracuse we have a treatise called The Sand Reckoner, where he calculates the maximum number of sand grains 10^63 that fit inside Aristarchus of Samos' heliocentric universe (diameter ~ 2 light years).
Archimedes knew the law of exponents a^m*a^n = a^(m+n) to manipulate powers of ten.
Then it's easy to derive the second law (a^m)^n = a^(m*n) too.

The largest number of Greek antiquity was Archimedes' 108*1016 ~ 944 TB
Terabyte computer hard disks nowadays write away: 1 TB = 2^48 bit

§1.6.2. Untold number records

The largest and most grandiose work of buddhist literature is the Flower Ornament Sutra (Sanskrit: Avatamsaka Sutra, India 2nd century AD). Chapter 30 The Incalculable (Sanskrit: Asamkhyeya) describes the largest numbers in ancient history, but experts disagree on their exact size. The three major translations calculate a series of squares differently, resulting in different uncountable numbers.

The first Chinese translation by Buddhabhadra starts credibly by squaring the induction base x0=10^5 (Sanskrit: a Laksha). The second translation by Shikshananda is the more complete text and has a series of n=103 calculable squares. We propose the incalculable Asamkhyeya is reached at x104 by applying our squaring formula.

xn = 10^(5*2^n) ~ 2^2^(n+4.054)

Note that Cleary's translation (which generally follows Shikshananda who starts squaring at x1 = 10^7) positions his induction base at x0 = 10^10 one square higher than Buddhabhadra. But on top of that he has 10 cumulative mistakes and 8 copying or printing errors, so Cleary's last calculable number at x103 is not accurate anyhow.

Philologically, the question why x104 = 10^(5*2^104) is out of reach in buddhism is of special interest.
During the traditional practice of mantra meditation a monk keeps count of his prayers with rounds of 108 beads on his rosary. Past 108 there is no counting – exposing a hidden property of that foremost uncountable number.

2^2^108 = (2^10)^(0.1*2^108)
        ~ (10^3)^(3.2*2^103) = 10^(9.6*2^103)
                             < 10^(10*2^103) = x104 ~ 2^60 TB

The Buddha continues with a series of squared squares, that define the numbers measureless x106, boundless x108, incomparable x110, innumerable x112, unaccountable x114, unthinkable x116, immeasurable x118, unspeakable x120, untold x122 and finally square untold x123.
Use our squaring formula to find the values of the Avatamsaka Sutra's countless numbers, e.g. the unit untold x122 = 10^(5*2^122) on which even higher number records are based in the following verses [vs.2-3].

"If untold x122 Buddha lands are reduced to an unspeakable x120 number of atoms in an instant,
and in every single atom are untold x122 lands..."  = 10^(45*2^120) ~ 2^2^2^7
"...and this continuous reduction propagates for untold x122 aeons, then it's hard to tell their number."

Thus the exact number record of the ancient world is defined as 10^(45*2^120) universes.
The rest of the numbers in the story can only be estimated, and is subject to speculation.


Though it's historically unclear what an instant is, this question can very well be solved by modern science, which says there are 1.855E+42 shortest instants of Planck Time in a second, a total of 10^47 moments a day.
Our aeon can be defined as the maximum period for life to exist in the universe, which is probably until star formation stops after 10^14 years. Then there are a maximum of 10^17 days in an aeon, and a total of 10^64 moments.

In chapter 31 of the Avatamsaka Sutra called Life Span, every aeon in the field of a Buddha is equalled to a day and night in a higher Buddha world. The number of moments tr in a Buddha's aeon is increasing at each reduction level r of lands. Our instant land formula calculates the exponential number of worlds wr issuing from a level r Buddha land, where w0 is the minimal field of Shakyamuni Buddha, our stellar universe.
The constant u is the number of universes resulting from one instant of reduction of all the atoms of a Buddha land, where u = 10^(25*2^120) is as quoted above.

tr [r>0] ~ 2^(212+55*r) ~ 10^(64+17*r)
wr = u^tr ~ 10^2^(337+55*r) ~ 2^2^r [r>x5]

Let the reduction start in a Buddha land where the aeon consists of untold x122 instants, then we derive from tr its level r ~ 2^120.3 and the number of worlds issued from its atoms wr ~ 2^2^2^126.
The next reduction level r-1 will result in a total of wr^2 lands and so on, all the way down to the atoms of level r=1 as the last Sutra quote suggested. In this continuous reduction the physical coefficients of tr in our instant land formula don't matter much – only the extra exponent does – and the effect of the constant u is negligible too.

w ~ 2^(2^2^126 * 2^2^120) ~ 2^2^2^126

Still the estimated total number w of Buddha lands appears immovable like Mount Sumeru. A power tower 4 storeys high is the boundary of human imagination, the machinations that follow lie beyond the veil.

Ψ.2. Towards the Ackermann numbers

§2.0.1. Star spangled super-powers

Fat boy with sunglasses feels number one Fat boy with brown t-shirt "I'M #1 SO WHY TRY HARDER"

Allahu Akbar !

God is greater

– Call to prayer, Islam

Exponentiation (raising to a power ab) is the operation which iterates over multiplication. We'll prefer the double star** here rather than the arrowhead ^ to use as exponentiation operator.

a**0 = 1
a**b = a*... [a#b] = a^b

Next comes the true super-power of triple stars *** which Goodstein called tetration (tetra = 4) counting index 1 for addition (here 0 stars).
Our triple stars equals two ^^ arrows (arrowheads) and adheres to Donald Knuth's 1976 up-arrow notation (where the operant b always counts repetitions of items a) and not to Ackermann's phi recursion (because Ackermann's own iterator b counts the number of in-between operators instead).

a***0 = 1
a***b = a**... [a#b] = a^^b

The insight that * is a countable unit, dawns with the recognition that operators *.. can be expanded at will.
Of the various names for this family of operations that have been suggested, Nick Bromer's superexponentiation is most instructive. Note the super-exponential star operation isn't really built upon exponentiation a**b which is the 2nd operation in a series starting with instant addition as initial 0th.
On second thought Bromer's term is visually and verbally overweight – we'll use our super-powers instead.


An n1 number of super-power stars in a*...b equals n arrows in a^..b.
But there are differences with respect to their order of evaluation or precedence in complex expressions. With competing star operations a*..b*..c smaller operations with less stars are evaluated before larger operations (without brackets). This we call minority precedence, contrary to the majority precedence you're used to since primary school, and which applies to the arrow operations of a^..b^..c
In expressions where both stars and arrowheads appear, arrow operations always take precedence and are resolved first. Types of precedence are further investigated in chapter 2.4.

To show off with our new super-powers, we calculate a few pentation squares m^^^2 and conclude with a more general tetration approximation rule, where ~> is the sign for an algorithmic successor.

4^^4 = 4^4^4^4 ~ (4^3.17)^^3 ~ (4^252.)^^2
5^^5 = 5^5^5^5^5 ~ (5^4.12)^^4 ~ (5^3120.)^^3

m***n ~> m**m-***n-
      ~> m**(m**m)(-*m)***n--
      ~> m**(m***d)(-*(m***d-))***n(-*d) [0<d<n-]

The initial super-power star rules are addition at c=0 and the case a*1 = a.
Next operations *.. are recursively =>> defined, so that every reduction train stops at the initial case.
The basic super-power formula provides for a countable number c of stars.

  • a*...1 [*#c1 c>0] = a*...1 [*#c] =>> a*1 = a
  • a*...11 [*#c1] = a*...a [*#c]   so 2*..2 = 4
  • a*...b1 [*#c1] = a*...(a*...b) [*#c *#c1]
                 =>> a*.. ... [*#c a#b1]

§2.0.2. Backslashes

The approximation of Big number algorithms often benefits from a precision notation with backslashed operations H\×..g that assigns a lower level operation (the guest) to a higher (the host). Here the backslash \ invites a guest operator ×.. with operant g on top of a host operation, such as H = ..b [×#c]
The backslash is dropped when the host has fully counted down a single operator sign, as in .. ...(..g) [×#c- a#b-] where the guest joins in with a direct (bracketed) evaluation at the assigned (top) position.

We've pondered the virtues of backslashing, and below you'll find a few instructive examples.
Star operations *.. are resolved by minority and arrows ^.. by majority precedence.

7^^7\*11 = 7^7^7^7^7^7^77
p****1111\***111\**11 = p***p***p***p**p**p*p
6+\5^^5\1+2^ = 11^5^5^5^33
1\3;a***b3 = a**a**a1**a... [**a#b]
2^^^3\\3;^8 = 2^^4\3;^8 = 2^256^2^2

The original backslashed operations stay unresolved, but as soon as the host has shed a single star – for backslash virtuosos ~ as many stars as we count off backslashes – the activated backslashed operation is granted the highest priority. Then these are evaluated from the inside out.
Subscripted backslashes \n count from 1 to n, but may do this in two directions. So that g*\n;a^^b counting up from left to right, and a^^b\b1(-*n);*g from the right down, apply to the same nth exponent a in the host.

§2.0.3. Beyond logarithmic senses

This subchapter zooms in on tetration and super-powers. Skip the details if your interest is to get the Big picture.

We compare expressions of the form (a*..b)*..c with the form a*..bd and try to see what lies beyond.
Mind that  1\b;a^^b1 < a^^b1\1 = a**...**a1 [a#b] < a1^^b1  puts the backslash notation we've just invented to good use.

  • (a*b)*2 = a*bb  is a case from:
    (a*b)*b = a*b^2  from:
    (.a.)*b.. [#n#] = a*b^n
  • (a^b)^2 = a^(b*2)  from:
    (a^b)^b = a^b^2  from:
    (.a.)^b.. [#n#] = a^b^n
  • a^^b1  =  a^a^^b <~
        (a^^b)^^2  =  a^(a^^b-*a^^b) <~
             1\3;a^^b1 [b>2]  =  a^a^a1^a^^b--  from:
  • a^^bb- <~
        (a^^b)^^b <~
             1\b1;a^^bb-  from:
  • a^^bb-.. [b-#n-] <~
        (.a.)^^b.. [#n#] <~
             a^^1(n*b-)\b--;1

From 3 arrows onwards these expressions are exceedingly difficult to resolve. It can be guessed from these comparisons that our minimal range for pentation ^^^ is already very imprecise, if not lost in jeopardy.
We look at the case for b=2 starting at a=3, where a widening number hole is looming.

      3^^^3 = 3^^3^^3 = 3^^(3^27)  <
(3^^^2)^^^2 = (3^^3)^^3^^3 = 3^^(27+3^28)  <
    3^^4^^3 = 3^^(4^256)  <
    3^^3^^4 = 3^^(3^(3^^3)) = 3^^(3^3^27)

We'll boldly generalize our findings in a super-comparison formula of super-powers.
In the cases below let ^.. [^#c c>2] and its reduction *.. [*#c] continue from where we left, after tetration. Mark the specified repetition dots ... violet. As usual arrows take precedence before stars.

  • a^..b1  =  a*..a^..b <~
        (a^..b)^..2  =  a^..b*..a^..b  <=>
  • a^..bm  =  a*.. ...a^..b [#m] <~
        (a^..b)^..m1  =  a^..b*.. ...a^..b [#m]  =>
  • a^..(b-*n)1 <~
        (.a.)^..b.. [#n#] <
             a^..b*n      .

§2.0.4. Primitive recursive family

We'll first explain what recursion is and what primitive recursion, and how all super-power stars *.. can be created just by primitive recursion. This answers to the meta-mathematical need to classify a function according to the simplest means that generates it.

Recursion is an initial case plus an iterative function which lets all next steps n1 follow from current step n.

Primitive recursion (p.r.) initially just increments a parameter by 1 as in F0(n) = n1
Next all steps n of functions Fc(R,n1) are exclusively defined by substitution of a parameter in a known p.r. function Gc-(X) at sublevel c-1 for a previous p.r. step of Fc(R,n)
The enumeration of p.r. levels c is not made iterable by setting up an extra parameter c to expand the function family F, so that the class of primitive recursive functions remains closed.

As an example we'll generate a primitive recursive function family Fac, which is a bit special because we start with a function index -1 where 0 is more common. Fa is faster than star super-powers, by Fac(a,0) = a instead of a*..0 = 1 [*#c c>1] so that for example Fa2(a,1) = a+a*a
The inverse unit is used to signify both the negative index - = -1 and subtraction as in a- = a-1. For an explanation of the applied list markers, check chapter 4.

  • Fa-(a,0) = 1
  • Fa-(a,b) = Fa-(a,b-)1 =>> 1... [#b1] = b1
  • Fac(a,0) [c≥0] = a
  • Fa0(a,1) = Fa-(a,Fa0(a,0)) = Fa-(a,a) = a1
  • Fa0(a,b) = Fa-(a,Fa0(a,b-)) =>> Fa-(a,..a.) [#b#] = ab
  • Fa1(a,b) = Fa0(a,Fa1(a,b-)) =>> Fa0(a,..a.) [#b#] = a*b1
  • Fa2(a,b) =>> Fa1(a,..a.) [#b#] = (a**i)... [#b1 0*]
  • Fac(a,b) = Fac-(a,Fac(a,b-)) > a*...b1 [*#c a>0 b>0 c>1]

Family Fac could very well have used one rule Fa0(a,b) = ab for initialization. Then only two axioms would have sufficed to define Fa, one less than super-power star or arrow operations.
The reason why Fa didn't make it as a defining algorithm for super-powers is that its properties are not so cool as those of multiplication, etc… Because a*b = b*a is commutative and Fa1(a1,b) = Fa1(b1,a) is not.
And although the virtues of exponentiation a^b are distributive, with a minor adaptation using logarithms the powers can be rendered commutative by a^(log(b)*e/log(e)) where e is an arbitrary exponent / base.

# Ackermann level functions

Despite their manifold mathematical merits all super-power functions live on the same level {Κ.1} of primitive recursion, where functions {Κ.1.c1} are compositions of (or iterations over) earlier primitive recursive functions {Κ.1.c} (but not over any enumeration of such functions), initially boiling down to addition and Peano's successor function Ps(n) = n1 on ground level {Κ.0}.

In 1928 Wilhelm Ackermann proved a conjecture by Hilbert that there are recursions which increase faster than any primitive recursive function. These are the so called Ackermann functions {Κ.2}, which iterate directly over the enumeration c of the primitive recursive order of functions.
Generally a higher level function building on super-powers should substitute the star [*#c] or arrow [^#c] operator counter, either for a nested subexpression or for the accumulated value of the lower iterator b left in its parameter list. The former method of substitution belongs to Conway's chained arrows, and the latter to our subscripted operators. Chapter 3 will make clear that our method of uploading b is faster.

The Ackermann row level of functions beyond super-powers can be subdivided in a number {Κ.2.n} of recursive sublevels, separated by a single Ackermann jump of which the initial one is described below.
In chapter 5 we'll prove that each of the chained arrows advanced by Conway represents such an Ackermann jump. The final value z of a row of chained arrow parameters of length n counts the order {Κ.2.n.z} of super-power-like iterations over Ackermann row sublevels.

§2.0.5. Ackermann's jump from primitive recursion

Portrait of the mathematician Ackermann looking inverted Wilhelm Ackermann
(1896-1962)

Ackermann used a primitive recursive φ function (phi) as a prerequisite to construct the higher level Ackermann ψ function (psi) in his article "On Hilbert's construction of the real numbers" (1928).
The Ack_φ (φ) function is a super-power algorithm, it differs from star operations only with respect to the initial cases for operators c>2. After that it grows away slightly from super-powers, though Ack_φ never catches up with the upstart super-power function family Fac which raised its initial case earlier at Fa1(a,0) = a

  • Ack_φ(a,b,0) = ab = a+b
  • Ack_φ(a,0,1) = 0
  • Ack_φ(a,0,2) = 1
  • Ack_φ(a,0,c) [c>11] = a (Ackermann's extra axiom)
  • e.g. Ack_φ(a,1,11) = a
  •      Ack_φ(a,b,11) = a**b
  •      Ack_φ(a,1,111) = a**a
  •      Ack_φ(a,b,111) = a***b1
  • Ack_φ(a,b1,c1) = Ack_φ(a,Ack_φ(a,b,c1),c)

If you'd replace the 2nd and 3d rule above by a single axiom Ack_φ(a,1,c) [0<c<3] = a the evaluation of all expressions of Ack_φ where b>0 will work out fine.
Compare the relative speed of the super-power functions from this chapter. The three of them are relatively close, with differing values of b, while arrows a^...b [^#c] increase a unit value of c faster than stars.

  • a*...b [*#c c>11] < Ack_φ(a,b,c) < Fac(a,b) [a>0 b>0]

We still owe you Ackermann's historical psi-function which gave rise to the concept of the Ackermann numbers. The whole Shakespearean purpose of Ackermann's Ack_ψ (ψ) function was not to be primitive recursive, which succeeded gloriously. Yet there was no mention of any Big numbers in Ackermann's famous article.

  • Ack_ψ(a) = Ack_φ(a,a,a)
  • Ack_ψ(i) =>> { 1, 4, 3^3^3^3,
                   4^^(4^^(4^^(4^^5+1)+1)+1), .. }
  • ψ(4) = φ(4,4,4) = φ(4,φ(4,3,4),3) = φ(4,φ(4,φ(4,2,4),3),3)
         = φ(4,φ(4,φ(4,φ(4,4,3),3),3),3)
    φ(4,4,3) = φ(4,φ(4,φ(4,4**4,2),2),2) = 4**4**4**4**4 = 4***5

The complications in working out the structure of the 4th Ackermann number seems to prove that his extra axiom is apart from being unnecessary also relatively unnatural. Of course this depends on our view of naturalness, which is tainted by Donald Knuth's up-arrow type of super-powers. The cumbersomeness of defining extra axioms is not a strong argument in this discussion, given the leaner physique of Fa with its meaner power operation Fa2, which is just as unwieldy as a translation of Ack_ψ(5) to arrows – try for yourself.
Anyhow, without the extra axiom the resulting φ' function has the same rules as the super-power stars of bigI. And the expression Ack_ψ'(4) reduces to 4^^^4 = 4^^4^^4^^4 more straightforwardly (in our eyes ;-)

# 2.1. Inverse and infinite iteration

§2.1.1. Unit -

Notate new style negative integers as repetitions -*n = -.. [-#n] of inverse units.
The inverse unit - can be defined destructively as follows, in star context, also with the complex root î = i

  • -1 [0*] = 0 (successor is zero)
  • -*- = -**11 = 1 (square)
  • (a*b)(a*c) = a*(bc) (left distributive law)
  • 1- [0*] = (-*-)(-*1) = -*(-1) = -*0 = -.. [-#0] = 0 (add right)
  • î*î = -

When we allow negative integers as values of iterators, arithmetic is already enriched with division, square roots, etc. There are many iteration operators, so the mathematics of inverse functions is an abundant topic.
The elementary inverse sets comprise the negative, the rational and the algebraic complex numbers.

a = ab(b*-) => {set-I}
a = (aI*b**-)*b => {set-II}
a = (aII**b**-)**b => {set-III}

Even though their real world approximation might well require infinite series, inverse numbers can be represented exclusively by countable units {1,-,*} and in this (notational) sense all inverse numbers are countable numbers.


The two inversions of super-powers can be represented by a multiple division sign /.. for super-division (division, roots and super-roots) and by a new binary operator £.. for super-logarithms, functioning as you would expect from conventional logarithms.

  • (a/..b)*..b [/#c *#c] = a = (a*..b)/..b [*#c /#c]
  • a^..(a£..b) [^#c £#c] = b
    with a£b = alog(b) = log(b)/log(a)

Perhaps a super-modulo operator %.. is helpful too, but you won't see many inversion signs in this article.
The int function yields the integer part of a number, so that int(2.7) = 2 and int(-3/4) = 0

a%b = a - int(a/b)*b
a%..b [%#c] = a - int(a/..b)*..b [/#c *#c]
so (a*..b)%..b [*#c %#c] = 0

Beyond exponentiation little is known about the super-roots /// and super-logarithms ££ of super-power operation *** and beyond. We can speculate that every super-power creates new sets of inverse numbers by combining earlier sets with the inverse unit - in various equations.
A mathematician who can pave the way for such inverse super-powers surely has Napier's bones.

§2.1.2. Unit ω

The first number that cannot be reached by finite counting is the natural infinity ω called omega. Georg Cantor invented omega to count (or name) the denumerable infinite set of all natural numbers.
By definition the unit ω is larger than any number expressible by recursion over the units 1..

1... [1#ω] = ω   where  1.. [#n] < ω < ω1

Starting from the above order relation on omega and counting further with his infinite numbers (ordinals), Cantor travelled into the realm of countable infinity (Cantor's paradise) and never came back…
We'll declare ω to be the first unit of infinity and apply ω in place of 1 to express much Bigger infinite numbers.

ω1... [1#ω] = ωω = ω+ω
ω... [ω#ω] = ω*ω
ω*... [ω#ω] = ω**ω
ω**... [ω#ω] = ω***ω = ε0
ω*.. ... [*#ω ω#ω] <~ Ack_ψ(ω)

Only when our operatorial expressions fail to reach higher a second infinity ω2 comes im Frage.
So an infinitorial function bigOmega can be defined, where Ω(1) = ω and Ω(n) = ωn and we can see that the road from Ω(0) = 1 to for example Ω(1,1) = ωω never ends, but does have a beginning.
It's the beginning that's special – and that is why our natural reality is probably virtual, some game designed higher up – and primitive mathematics is actually real and most important… ;–)


Concerning the domain and range of limits for super-power functions as b tends to infinity – Euler's thematic ê in the minimum and maximum of *** captures our imagination and helps us derive the power twins.

u = a*b   [b↑ω] => a↓0 => u↓0
u = a**b  [b↑ω] => - ≤ a ≤ 1 => u*(u*u)- = 0
u = a***b [b↑ω] => 0 ≤ a ≤ ê^ê^- => ê^- ≤ u ≤ ê
                 a = ê**ê*- = 0.0659.. => u = ê**- = 0.367..
                 a = ê**ê**- = 1.444.. => u = ê = 2.718281..

u = (n^n^-)^^b  [b↑ω n>ê] <=> n^n^- = u^u^- <=> n^u = u^n
 p^(p+d) = (p+d)^p  [d↓0] <=> p =↑ ê
           (1+a^-)^a [a↑ω] = b*(b!**b**-) [b↑ω] = ê

An exciting problem is whether the inverse values of function counter c naturally classify recursive algorithms. The rational number c=11^- for instance should be the operation halfway between addition and multiplication, but what does that mean?

# 2.2. Deeper than counting

§2.2.1. Transcendental numbers

Oriental style portrait of the one eyed mathematician Euler Leonhard Euler
Berlin 1753

Transcendental numbers are defined to be those real numbers, which are not algebraic. Algebraic numbers give the solutions (roots x) to polynomial equations, which are composed of addition, repeated multiplication, constants ai and an unknown variable x.

(ai*x..).:. [*x#i #n] = a0

All polynomials with exponents 0<n<5 are solvable by radicals, but most higher polynomials n≥5 cannot be simplified, as Galois (1832) showed. For example, the quintic 2*x^5 + 5 = 10*x is not solvable (Abel 1824), though it has 5 roots.
While the defining polynomial of an algebraic number is enumerable, often that equation cannot be reduced to a simpler expression. Of course its x can always be approximated by iterating over some continuous algorithm…

Generally, for any class of functions there are numbers which cannot be expressed by recursion alone, but which must be created by mixing and inverting existing operations. And then there are higher transcendent numbers that escape any such definition and can only be approached by infinite recursion.

With the expansion of the function context many former transcendental numbers run the risk of finding expression. In the box below we utter our doubts about pi π. Together with π a host of connected constants may fall from infinite grace. Foremost ê, the base of natural logarithms, which is connected to π via Euler's famous theorem.

ê**î*π = -             where  î = -**11**- = -1^½  and
ê = 1(a**-)**a [a↑ω] = lim (1+1/a)^a [a↑ω] = 2.718281828459..

§2.2.2. Transcendent numbers

We've elected the term transcendent for numbers which cannot be defined within a certain class of functions under inverse composition (compare the polynomial composition above, which exploits the algebraic inversion of the function class up to multiplication optimally).
Our recursive operatorials bigO travel well beyond the algebraic realm, so the inverted transcendent numbers that escape the net are a far more elusive set than the common transcendental.

Real transcendent numbers are supposed to be based on ω, for they can only be defined by infinite iteration.
We assume the majority of all numbers to be really uncountably deep, but appear helpless in constructing one…

# The countability criterion

Cantor's omega ω denotes the size of the set of all countable numbers.

Because enumerable functions with countable parameter values will only create countable numbers, Cantor's set of countable numbers also contains all those numbers which are definable by hybrid functions – finite combinations of finite sets of enumerable algorithms.
This applies to the number pi below, because it is defined by the value ½ in Euler's gamma function – essentially a hybrid of two operatorials – even though pi can perhaps only be generated by an infinite series of a single operatorial.

When a transcendental number can be defined by an operation of type a*..b, it is not transcendent any more in the context of primitive recursive functions.
This may easily happen to pi π, which lost its real transcendence in the year 1730, when Leonhard Euler conjured pi from his Gamma hybrid of the factorial and exponential functions.

Γ(½)^2 = π = 11*(11**-)!**11 = (2*½!)^2
           = ½!*(-½)!*-½ = 3.141592653589..

In the context of a factorial algorithm halves n*(11**-) are transcendent constants. For other fractions like Γ(1/3) and Γ(1/4) there is no known definition, as Julian Havil notes in his giddy monograph "Gamma".

All in all it's unclear whether transcendent units can be sustained.
There's always hope to rediscover each real constant by clever use of finite recursive algorithms (in the future). Yet the more advanced our mathematical functions, the more elusive the transcendent numbers that can be generated by application of these functions to infinite series.
So if transcendence isn't here to stay, it seems the continuous generation of transcendent numbers will never stop …flowing in ever wider streams towards finite solutions on ever higher levels. A truly infinite phenomenon!

# 2.3. Big number holes

The tao that can be told is not the eternal Tao.
The name that can be named is not the eternal Name.

The unnameable is the origin of Heaven and Earth.
When it carries a name it is the mother of 10,000 pieces.

Tao Te Ching1.

The larger the numbers we'll come up with, the bigger the holes in between where random numbers hide, that cannot be expressed because we lack the physical resources. Even if all the quantum-information in our universe could be deployed to write a single integer with a single arithmetical algorithm, most Big integers would escape the net.
The image this conjures up in the mind of the observer is that of an expanding mathematical universe of galaxies of numbers, surrounded and dominated by dark matter which randomly falls down from infinity…

The earthly boundary for random information holes is at present given by Google's server size and time.
Google's current 10^18 bit will have to miss almost all integers smaller than a googolplex or 10^googol or 10^(10^100) and larger than (10^100)^(10^32) this year, no matter how sophisticated their algorithms.
Here's why:

Define a finite algorithm to be a text (containing expressions with variables), which is theoretically reducible to a single number when non-random values are substituted for each variable. Expressions are theoretically reducible, when we may work them out instantly in a hypothetical universe with infinite resources.

In a physical space s an algorithm can be applied a t number of times, but in a notational universe the time factor is part of the number p of available places, so that s*t = p.

Let a notational universe with k characters and p places, describe a finite algorithm.
With k characters on a places, no more than k^a different algorithms can be defined.

The resolution of a number system with k characters is never better than radix k,
so in p-a places maximally k^(p-a) unique non-random values can be expressed.

If all the algorithmic variables are filled in, the expression is reduced to one number
picked out of a total of maximally k^(p-a)*k^a = k^p unique natural numbers.

To avoid doubles altogether, radix k can create unique (but smaller) numbers directly and without the fuzz.

State the Big number hole theorem of algorithmic oblivion.

Given free resources of k characters and p places, and a Big number m>k^p
together with its algorithmic successor n, then the best estimate h of the total
of inexpressible natural numbers hiding in holes between m and n, is h = n-m-k^p ~ n.

To illustrate the theory, with 10^90 bits you can naturally express any binary number below 2^2^299. Suppose you use the first bit as a switch to a Big number algorithm, then you lost half your options 2^(2^299-1) and it is too hard to make up for it… If there are two choices in our universe, it is that expensive to pick one to apply.
<!- And that is why true Saints refrain from choosing – they follow the great Tao, walking the middle path… :->

At such Big heights dwell number sequences, packed with dazzling amounts of digital information – which ordinary man can never touch, for he is only allowed to express the very simplest of the words that go beyond this world.
This reveals the limitations of the operatorial methods you'll meet in this book – given the resources of our universe the Big numbers we can produce are nothing but tiny specks of extremely low information. A sobering thought.

# 2.4. Rules of precedence

§2.4.1. Right minority and majority operators

Star * and arrow ^ operations are right associative, evaluated while moving from right to left.
The various operations +,*,^ of the old school reduce in the same direction.

3^3^3 = 3^(3^3) = 3^(3*(3*3)) = 3^27 = 7625597484987

Star associativity looks familiar, but our use of minority precedence for these operators *.. differs from the majority precedence taught at school and applied to the classic arrowhead operators ^..
The rule of minority precedence compares neighbouring operations (those that share an operant), so that smaller or equal operators must be evaluated before larger operators. Same example:

111****11 = 111***111 = 111**111**111 =
111**111*111*111 = 111**111*111111111
Donald Knuth in orange striped shirt Donald Knuth
Stanford 1998

The main advantage here is that we don't need extra brackets to further reduce the result of the operation. Usually after an operation is addressed for evaluation, its reduction takes place within brackets.

Donald Knuth's up-arrows continuing as majority arrows ^R;.. will overrule the minority nature of stars *S;.. so that in complex expressions a mix of * and ^ operations can be used instead of brackets.
The mutual precedence order of these super-power operators is illustrated below.
At the factorial precedence position ( ! other unary operations also take place, but units come first, such as number units 1.. which are joined by default.

( + ( .. ( *** ( ** ( * ( ^ ( ^^ ( .. ( ! ( ..

In the formula for right minority stars the precedence function G will eat away expressions from the inside out.

G(X*..a*..b) [*#m *#n n≤m] = G(X*..(a*..b)) [*#m *#n]

G(X*..a*..b*..Z) [*#m *#n *#p n<p n≤m] = G(X*..(a*..b)*..Z) [*#m *#n *#p]

G(a*..b*..Z) [*#k *#m k<m] = G((a*..b)*..Z) [*#k *#m]

# Presiding house rules

  • The units x substituting for a number variable a:(x) and the signs of X substituting for an ellipsis ... or wildcard A:X will be evaluated within the expression they become part of.
  • Backslashed \ operations will resolve when the host operator has counted down by 1. Outer backslashes wait for inner. The usually right associative guest operation H\×G has the lowest right precedence.
  • Parameter separators ,.. and their dimension delimiter ; let the parameter values work out first, as if within brackets. Operatorial separators are in principle controlled by function definition, not by associativity.
  • Further left in our precedence pecking order come the comparison and equality signs ~ = < > etc. (mixed) and the logical signs & (and), | (or).
  • After this you'll read text again, which controls the flow (brackets are Lords of the Flow [ ;–).
  • Within meta-brackets [X] other signs take precedence over typical meta-signs and meta-signs # : will be evaluated last. Otherwise the default evaluation direction from right to left also applies to meta-statements.
[ ] <  # : < ( ) < text < | < & < ~ = ..

§2.4.2. Operator comparison

Binary precedences in general work by scanning back, comparing former operators n to the latter m, until a pair of operators is found, which fulfils the precedence's comparison rule. Then the former operation of n will be evaluated, and the procedure can start again.
In the case of right minority precedence, scanning back to the left, the comparison rule [n≤m] demands that for a right operator n to be evaluated, it must be smaller than or equal to the operator m on the left.

Given right associativity and that we only compare for operator size, 7 distinctive types of precedence for binary operators can be put in the following order. For left associative operators the signs < and > should be reversed.

{ n>m, n≥m, n≠m, n<m, n=m, n=n, n≤m }

Minority precedence [n≤m] results in the biggest numbers of all 7 types of comparison, because the highest operators will be served the fattest operant values.
We have right associativity (straight evaluation n=n) as a good second, the rest is trailing. Try them on expressions like "2**3**2*2**3", we still need more statistics! [above order was a wild guess :–]

The human approach would be to pick out the smallest operators and resolve them first. An expression ruled by right minority precedence can then be seen as subdivided by its larger operators waiting to be resolved – which appeals to our intuitive notion of larger vessels containing smaller ones – with addition at the bottom, corked in a bottle.

A series of number units such as ω1.. must be added right associatively.
In the context 0^ of countable arrows a^...b [^#0] the operation with zero operators is multiplication, and addition may not be represented by any number of ^.. operators.
If we place variables a b next to each other, there is (by definition) no operation happening within the universe or context where the operator rules. There ab fuses to become one entity – a single number – until a simpler context is taken into account.
In the context 0* of minority stars the principle is clear – addition simply joins two natural numbers 1..1.. While in arrow context 0^ two qualities or quantities ab are joined directly, adding needs an awkward new old rule.

For quantities the prospect of such instant multiplication looks grim, but for the mathematical qualities of the units {1,-,0,ω,ψ} there is hope. Does it help us to obtain division by zero, the Holy Grail of the Dudes? Try me!

  • 1^^-^- = 0^- = 1/0 = ψ (our utopian unit psi)
  • 0.. [#ψ] = 0*ψ = 0 [0:ψ 1:0] = 1.. [1#ψ 1:0] = ψ [1:0]
             = 0^1*0^- = 0^1- [0*] = 0^-0 [0^] ~ 0^0
             = 0/0 = 1.. [1#n<ω] ~ 1
Outside precedence

In an operatorial context the reduction steps on the outside of an expression may be given precedence over the reduction of inner subexpressions. This distinction does not play a role of importance here yet, but it does when waitor rules that slow down and speed up operatorial functions will be presented in part 2 of the book.
Sometimes a reduction rule cannot be applied to a subexpression in a particular parameter position. Such a special rule is signified by a right equal sign. It postpones the evaluation of a so called waitor until another rule picks it up.

Theoretically, if the evaluation direction for functions would be strictly right to left such provisions for waitors are not necessary, because all expressions would be evaluated from the outside in and subexpressions that are not in direct iterator position should wait. But outside precedence for nested functions is counter-intuitive, because we usually like to evaluate smaller inner expressions first. To understand functions and to find short cuts it helps if we're not coerced into reduction by outside precedence all the time – hence the concept of a waitor.

§2.4.3. Various unbracketed

The lifespan of a pair of common fixed brackets is regarded as eternal: ( = (ω
On the other hand some parts of an expression won't need bracketing: (0 = (.. [(#0]

With unbracketed evaluation the operants issued by intermediate reduction steps are allowed to drift away and attach to neighbouring operators before the original operation has been totally reduced to natural number. After each partial reduction the whole expression should be evaluated again right associatively from the outside.
Here we'll mostly apply plain unbracketing (0 which directly removes fixed () brackets from some given formula.

Imagine a type of temporary brackets (s that last for a variable number of reduction steps #s within the reduction train that carries them (steps from other operations, outside or inside these particular brackets do not count). The last reduction included in the cascade of s is the step to an iterator value b=1.
Brackets (r with remaining steps r<1 are to be dropped from the expression before their contents has been evaluated, after which the usual precedence of the operators prevails. Brackets (r where r≥1 stay fixed after the original reduction train has past, until their contents is resolved to a number (as usual).

Write the formula for Right/Left associative minority/majority exponential star operators with (s brackets that count off the most primitive of steps.

  • Rm/m: (s;a**b1) = (s-;a*(s;a**b)) = (s--;a*(s-;a*(s;a**b-)))
                 =>> (r;a*..(s;a).)  [#b#] where r = s(-*b1)i
  • Lm/m: (s;a××b1) = (s-;(s;a××b)×a) =
                 =>> (r;..(s;a).×a)  [#b#] where r = s-b-1+i

Put step countdown s=0, so that after the applicable rule has been processed the brackets (0 are dropped. In the above formula this will work out to two or three different results (and one irreducible expression, running to infinity).
The first case Rmin of unbracketed minority stars *.. is overall slower than arrowheads ^.. and hereby is determined that this unbracketing is less powerful than 1 extra operator counted by c.

  • (0 Rmin: a*b1 -> aa*b -> (.a*2).. [(#b#*2)] = a*2^b
             a**b1 -> (a*a)**b -> (.a**2).. [(#b#**2)] ~ 2^^b\^a
             a*..b1 [*#c1] ~ 2^..b\^..a [^#c1 ^#c] < a^..(b+1) [^#c1 a>2]
  • (0 Rmaj: a^(b+1) = a(a^b) =>> a.. [a#b1 0^]
             a^^(b+1) = a^a^^b =>> a^.. [a#b1]
  • (0 Lmin: a××b1 -> a××(b×a) ↑ ω
  • (0 Lmaj: a××(b+1) = (a××b)×a =>> a×.. [a#b1] = a^(b+1)
             a×××(b+1) = (a×××b)^a =>> a^(a^b)

Compare (0 Rmin with the unbracketing of a similar function Fa to match bigA's addictive pluses in chapter 4.2.
When a right minority operation is unbracketed, the item operant a of the largest operator is expanded, so that the numbers produced become Bigger. This is shown below for exponentiation – with larger operators differences like these tend to increment absolutely, yet become algorithmically less and less significant.

  • a**b1 = a*(a**b) < a*a**b = a**bb
  • a*..b [*#c] < a*..a*..b- [*#c- *#c] < a*..bd [*#c c↑ω d↓0]

We hereby close this exercise of unbracketing subscripted brackets, which is in the form where it counts off every single step (as defined above) a rather tedious tool – similar to subscripted backslashing. However, with these we can express Big numbers that would otherwise be lost in the black hole of inexpressibility.
Perhaps our surgical Big number tools could be put to better use, where each pair of brackets subdivides a larger number of steps in one go. Such as when a whole level of iterators is counted down in some nested surge and then a feedback operation ripples through…

Ψ.3. Chained arrows versus subscripting

§3.0.1. Conway's chained arrows

Traditionally dressed up man, Marind Anim, South New Guinea, interbellum

A large party of men, with To'uluwa, the chief of Omarakana, went to Tuma. They landed not far from the Modawosi stone, when they saw a man standing there. They immediately identified him as Gi'iopeulo, a great warrior and a man of indomitable strength and courage, who had died recently in a village not more than five minutes distance from Omarakana.
When they approached, he disappeared, but they heard distinctly "Bu kusisusi bala [You remain I shall go]" – the usual form of "Good-by".

Baloma, the Spirits of the Dead

John Horton Conway considers his greatest mathematical discovery to be the surreal numbers that he constructed by playing Conway games to fill in the gaps between Cantor's ordinal numbers ω1..
Another achievement of Conway is his popularization of Big numbers in "The Book of Numbers" co-authored by Richard Guy, where Conway shoots off a chained arrow notation ai→... [ai#n] which (for chains with n>3 parameters) names natural numbers far beyond the reach of super-powers and Ackermann's Psi function.

Conway modelled his chained arrows after Donald Knuth's up-arrows, introduced before as the arrow operation a^...b [^#c] starting from multiplication at c=0, then exponentiation at c=1, tetration at c=2, etc.
The principle that every next super-power ^.. [#c1] is equivalent to a repeated number of preceding operations, is with Conway's chained arrows expanded to an arbitrary number of parameters.

a^..b1 [^#c1] = a^..(..a.) [^#c #b#] <=>
      a→b1→c1 = a→(.a)→c.. [a→(#b#)→c]

ai→...y1→z1 [ai→#n] =
      ai→...(.ai→...)→z.. [ai→#n ai→...(#y#)→z ai#n]

Conway and Guy's book doesn't tell what should happen with the single chained arrow a→b.
This is commonly interpreted to signify the powers a^b (plausible, for then all R→1 = R). But can also be defined independently as multiplication ab [0^] (else reduction to a→b→0 is unreachable), or as addition ab [0*] maybe (because it's missing).


Conway's formula for the first row of chained arrows covers super-powers, making a separate axiom for the basic 3 parameters unnecessary. We'll support the historical interpretation of a→b→1 = a→b to equal exponentiation, and let this 2 parameter case be the initial axiom.
Lo and behold! Here come the first 4 parameters of the archetypical operator function known as chained arrows.

  • a→1 = a
  • a→b1 = (a→b)a [0^] =>> a... [#b1 0^] = a^b1
  • a→b→1 = a→b                a→b→c→1 = a→b→c
  • a→1→c = a                  a→b→1→d = a→b
  • a→b1→c1 = a→(a→b→c1)→c     a→b→c1→d1 = a→b→(a→b→c→d1)→d

We've presented Conway's notation in the same format as our operatorial functions (see bigE), to make clear that chained arrow signs are more like parameter separators , than like operators. Normally operations are resolved in order of precedence, that is by operator size, but the evaluation of variables separated by chained arrows is the sole consequence of their position in the row, much like parameters in a function.

§3.0.2. A single operator subscript

A natural alternative to bridge the conceptual gap between operators and functions is to create operator types with coefficients in the form of subscripts. Subscripted arrowheads are recursively enumerated operators of a type which transcends super-power arrows.
We show the initial cases and steps over operator counter c and type counter d of subscripted arrows with 4 parameters.

  • a^1;b = a^...b [^#b]
  • a^1;...b [^1;#c1] = a^1;.. ... [^1;#c a#b]
  • a^d1;b = a^d;...b [^d;#b]
  • a^d;...b [^d;#c1] = a^d;.. ... [^d;#c a#b]

At the very start operator subscripts are equivalent to chained arrows, but when a>2 we promptly speed away.
In the example below, we conveniently use the signs 2 and 3 in place of their representation in units 1..

2^d;...2 [^d;#c] = 1111 = 2→2→c→d = 4

3→3→2→2 = 3→3→(3→3) = 3^...3 [^#27] <
          3^1;^1;3 = 3^...(3^^^3) [^#3^^^3] <
                   3→3→3→2 = 3^...3 [^#3^..3 ^#27] <
                             3^2;3 = 3^1;... [3#3^1;^1;3]

This should give you an impression of the respective strength of these notations.  
Note that in our construction of subscripted majority arrows ^Rj;.. a sequence of operators with mixed subscripts such as a^1;^b does not make sense yet.

§3.0.3. Passing a row of chained arrows

After the first 4 parameters the rest of Conway's chained arrows follows easily.
Let the wildcard R substitute for a row of arrow→separated→parameters of arbitrary length n>0.

  • R→1 = R
  • R→1→z1 = R→1→z =>> R→1→1 = R
  • R→y1→z1 = R→(R→y→z1)→z

Because a→b = a^b there are no restrictions on the range of values the two drop axioms apply to. And the main axiom without condition y>0 implies that R→0→z = 1 (true as early as exponentiation). Fits like a clockwork!
Interestingly, the right part of a row L→1→R =>> L→1→y→1 = L→1→y = L collapses on the position of the parameter value 1. This is a waste of expressive power or resolution, for only the left (non-empty) part L is kept.

It's a bit awkward that we can't count down the last parameter z to 0 which is the preferred initial index for our operatorial functions. We'll define right arrows with this operatorial countdown property below.

Portrait of the mathematician Conway in class John H. Conway
Princeton 1987

# Conway level functions

Conway's chained arrows are still functions on the Ackermann row {Κ.2}, albeit with arbitrarily many super-power order {Κ.2.n.z} iterators.
The chained arrow notation is remarkable, because it covers the Ackermann row level completely. Every next chained arrow represents an Ackermann jump after which the next sublevel {Κ.2.n} is enumerated by a new final parameter z.
The resulting Big numbers are physically out of reach for the closed lower class {Κ.2.n-} functions, even though every function eventually reduces to 1..

Similar to the way Ackermann jumped from primitive recursion, Conway extrapolated a higher super-chained ψ-arrow function from his original chained φ-arrows.
These countable ψ-arrows inaugurate the so called Conway level {Κ.3} of general recursion and cannot be expressed by Ackermann level {Κ.2} recursions alone, because Conway's ψ-arrows increase the length n of the first row of chained φ-arrows {Κ.2.n} directly.

Take the property that a rule expands the length n of an Ackermann row of super-power iterators recursively as the initial property of these new Conway level functions.
In chapter 5.2 we prove that bigE's subscripted ^R;.. arrows in turn cover all sublevels {Κ.3.n.z} that can be created with Conway jumps. The initial Conway jump is supplied below.

Now put Conway's chained arrow notation in φ-function format.

  • Car_φ(ai,...) [ai#n] = ai→... [ai#n]

Conway went further as he hinted at a ψ-function or super-chained arrow, by describing the first 4 values of Car_ψ in his imaginative Book of numbers. The concoction of a double →→ arrow-operator is apocryphal.

  • a→b→1 = a^b = a*... [a#b] = a→.. ... [→#0 a#b 0^]
  • a→b→...1 [→#c1] = a→.. ... [→#c a#b]
  • Car_ψ(a) = a→a→→1 = a→... [a#a] = Car_φ(a,...) [a#a]
  • Car_ψ(i) =>> { 1, 4, 3^^7625597484987,
                   4→4→(4→4→(4→4→256→3)→3)→3, .. }

The 2nd rule counts chained arrows directly when c=1 and from this Car_ψ follows in the line below. Of the numbers Conway mentions in his book Car_ψ(4) = 4→4→4→4 is already physically inexpressible without resort to a function faster than super-powers.

§3.0.4. A row of operator subscripts

Comma separated coefficients can be extended naturally by the same rules for subscripted operators we saw above for operators ^d... right up to the end of a first row ^d,..,z...
But it's not obvious how to handle the initial cases of operator subscripts. The concept that a low level parameter can seed a very high one is called uploading and the Big numbers created by such rules are unprecedented.
The next functions of e-init and e-step choose for double upward substitution of b for c=1 and d=1.

  • a^1,1;b = a^b;...b [^b;#b]
  • a^1,e1;b = a^b,e;...b [^b,e;#b]

Continue to apply this kind of multiple substitution in the definition of subscripted arrow and star operations.
It should be clear by now that operant b, operator count c and following subscripts d,e,.. are similar iterator parameters, each iterating over a previous parameter (with the provision that b iterates over constant a and that a sequence of operators with mixed subscripts is not counted by arrows).

We'll suffix c before a row of arrow coefficients to improve readability. You should substitute a^R;..b [^R;#c] for a^c,R;b in this general formula for subscripted majority arrows, to get the original countable operator form.

  • a^1;b1 = a^0;(a^1;b) =>> a^0;... [a#b1] = a... [a#b1 0^]
  • a^1,...;b [1#k1] = a^b,...;b [b#k]
  • a^1,...,n1,R;b [1#k] = a^b,...,n,R;b [b#k]
  • a^c1,R;b1 = a^c,R;(a^c1,R;b) =>> a^c,R;... [a#b1]

With uploading we substitute higher parameters for a value accumulated in a lower parameter – that is b in case of subscripted arrows and stars. Without this mechanism it's hard to see how ordinary unnested functions can move into the Conway level of super-chained arrows.
Uploading parameter values from the first row is definitely the way for us to conquer the next dimension.

# Single parameter substitution

Functions defined by simultaneous substitution in the first row can also be represented by recursion with single substitutions. Having an earlier parameter (value b) uploaded parameters ahead (substituting for d) can just as well be covered by substitution to the next parameter (b for c and c for d).

For example, in the evaluation of a^1,e;b you could opt to substitute b for c=1 and in the next step c for d=1. The net effect of this definitional detour would be a double upward substitution as usual, but when you count down e the parameter dependent on it should be substituted at value d=2 instead of d=1.

a^11,e1;b = a^1,e1;..b [^1,e1;#b] = a^b,e;..b [^b,e;#b]

Take a step forward to find our general upload axiom for ^R composed of intermediate substitutions of single parameters as these are counted down to initial value 0 (instead of 1).

a^1,..,z1;b [1#k1] = a^b,0,1,..,z1;b [1#k-]
                =>> a^b,..,0,z1;b [b#k] = a^b,..,z;b [b#k1]

Zeros are superfluous characters that make strange iterators (though this procedure may well be used to define them). Besides, the same rules do not work for subscripted *d,e; minority stars.
We take another direction in our micro-definition of upload by single substitution of arrow coefficients.

a^1,..,z1;b [1#k1] = a^1,..,b1,z;b [1#k]
                =>> a^1,b1,b,..,z;b [b#k-] = a^b,..,z;b [b#k1]

Later, when we'll insert a new rule in bigI to accommodate mixed star subscripts, you'll see that the capacity lost by bigI's iterator collapse is redeployed to lift it a level higher in bigI's first row with waitor.
So if chained arrows issue a whole row of similar iterator y destructions, this dormant capacity in the keeping might just be the thing that allows us to gracefully lift a function of mixed arrows up to higher heavens.

# 3.1. Subscript mixation

§3.1.1. Mixed majority arrows?

Our formula for ^R; subscripted arrows did not cover mixed subscripts ^m;^n; [m≠n]
For a sequence of majority arrows with competing unequal subscripts the question is which one to evaluate next. We solve this issue by extending the fixity rules for arrow operations – namely right associative majority precedence – to include subscripts.
Majority precedence will apply externally between two subscripted operations, as well as internally in a single operation, where it chooses the reduction to apply first.

The right associative order of evaluation is only decisive, when subscripts are of equal size, in other cases size determines which operator is evaluated first. We do not use brackets in subscripts.
Subscripts live in a complicated multicultural environment, and the benefit from wielding such an expressive tool is increased notational resolution (more numbers can be expressed).
We won't cover all the combinations, but explain the most essential mixed arrows in a few examples. The smaller arrow in the operator reminds us of the postponed backslashed operation – it waits its turn.

a^1;^;b = a^;...b [^#b1] = a*1;b11\--
a^m1;^n;b [0<n<m1] = a^n;^m1;b = a^n;^m;... [a#b]

After a certain reduction step the companion arrows ^n put on hold because of smaller size, will merge with the new, equally subscripted operators ^m; [m=n].

Because mixed operators governed by majority precedence do not add substantially to the size of numbers (compared to subscript parameter value), these will be treated as an insignificant variant.

§3.1.2. Mixed minority stars

Also in the definition of *R; subscripted star operations we extend their fixity rules – namely right associative minority precedence. These decide which reduction step to apply to a combination of mixed star subscripts.
Subscript inequality unfolds as a great tool in the construction of Big numbers. Given our observation that mixing of unequal arrow subscripts ^R is insignificant, we'll make a bigO comparison between the two subscript systems of minority stars and majority arrows.
The sign <~ means the left expression is algorithmically close(st!?) to the expression on the right, yet smaller.

a*1;b = a*..b [*#b] = a^..b [^#b-] <~ a^1;b <~ a*1;b1
a*1;*b = a*1;.. [a#b] <~ a^1;.. [a#b] = a^1;^1;b
a*1;**b = a*1;*.. [a#b] <~ a^1;^1;.. [a#b] = a^1;^1;^1;b
a*1;*1;b = a*1;*..b [*#b] <~ a^1;..b [^1;#b1] <~ a^2;(b+1)
a*1;*1;*b = a*1;*1;.. [a#b] <~ (a+1)^2;.. [(a+1)#b] = (a+1)^2;^2;b
a*1;*1;**b = a*1;*1;*.. [a#b] <~ (a+1)^2;^2;^2;b
a*1;*1;*1;b = a*1;*1;*..b [*#b] <~ (a+1)^2;..b [^2;#b2] <~ a^3;(b+2)

Star subscripts are way ahead – when they put value d=2, arrows need a 2nd parameter e.
And when stars append the next iterator e, arrow subscripts come to the end of their first row.

a*2;b = a*1;..b [*1;#b] <~ a^b;(b+b) <~ a^1,1;(b+1)
a*2;*b = a*2;.. [a#b] <~ (a+1)^1,1;.. [(a+1)#b] = (a+1)^1,1;^1,1;b
a*2;*1;b = a*2;*..b [*#b] <~ (a+1)^1,1;..b [^1,1;#b1] <~ a^2,1;(b+1)
a*2;*2;b = a*2;*1;..b [*1;#b] <~ a^b,1;(b+b) <~ a^1,2;(b+1)
a*3;b = a*2;..b [*2;#b] <~ a^1,b;(b+1) <~ a^1,1,1;(b+1)
a*1,1;b = a*b;..b [*b;#b] = a*b1;b <~ a^1,..;(b+1) [1#b1]

The progression of mixed stars versus unmixed arrows gives us a tool to study similar systems at work on different levels. Minority stars are comparable to majority arrows, yet the stars as defined by the first row of parameters in bigI travel on a higher function level past the 4th parameter (compared to the arrows of bigE).
The general definition of subscripted minority star operations has a somewhat broader scope.

  • aS*..b1 [*#c1] = aS*..(aS*..b) [*#c *#c1]
                 =>> aS*.. ... [*#c a#b1]
    where S = *Tj;;.. .:. [*Tj;;#kj; *Tj;;..#m]
    where Tj; = tjp,tjpi,.. [tjpi#n tjq≠0] and Tj; > Tjd; [d>0]
  • aS*1,..,1R;b [1#k] = aS*b,..,R;...b [b#k *b,..,R;#b]
    same S with Tj; > 1,..,1R
  • aS*1R;...b [*1R;#c1] = aS*1R;...*R;...b [*1R;#c *R;#b]
    same S with Tj; > 1R

The order of star subscripts *T; is quite intuitive, even if the conditional comparisons T > R are difficult to define exactly. In the reduction train of bigI to natural number this is usually not a problem – when we start from the evaluation of an expression a*R;..b [*#c] all subsequent mixed subscripts will satisfy these conditions.

# 3.2. Addictive subscripting

Disk of green jade with centre hole and stylized animal motives on the edge

Sun-faced buddhas, moon-faced buddhas. The three sovereigns and the five emperors. How pale they look…
For 20 years I've had bitter experiences. I have descended into the Green Dragon's Cave. For whom? I cannot tell the depth of it.
Anybody here with a clear eye? Do not be careless about this!

– Ma-tsu in The Blue Cliff Records 3.

§3.2.1. Minority pluses

The venerable plus operator snatched new meaning, when we established addictive counting with a left associative unary operator + and single subscripts a+c;... [+c;#b] in chapter 1.5.
These pluses are ruled by very simple concepts. As we already saw, in the 0th dimensional case + equals 1.

  • a+0; = a+ = a1 = a+1
  • a+c1; = a+c;... [+c;#a]
  • a+c;... [+c;#b1] = (a+c;)+c;... [+c;#b]

In practice brackets are not necessary for the reduction of minority pluses, but they help us write out definitions concisely. For instance the last rule could be restated in two rules for +0; and +c1; without brackets.
Now try to fit a 4th coefficient d into this evaluation system, modelling it after parameter d of majority arrows.

  • a+++;; = a++1;; = a+1,1; = a+a1; = a+a;... [+a;#a]
  • a+++;;... [+++;;#b1] = (a+1,1;)+1,1;... [+1,1;#b]
  • a+++;...; [++;#c1] = a+c1,1; = a+c,1;... [+c,1;#a]
  • a+++...;; [+#d1] = a+1,d1; = a+a1,d; = a+a,d;... [+a,d;#a]

Expand this to a row of equally subscripted +R; operators, comparable to majority arrows.

  • a+1,..; [1#k1] = a+a,..;... [a#k +a,..;#a]
  • a+1R; = a+R;... [+R;#a]
  • a+1,..,1R; [1#k] = a+a,..,R;... [a#k +a,..,R;#a]
  • a+R;... [+R;#b1] = (a+R;)+R;... [+R;#b]

§3.2.2. Mixability of pluses

The question arises whether we can successfully mix unequal subscripts into the general definition of these unary plus operators? Does the possibility of a+m+n [m≠n] work out naturally into a tremendously fast operator system, parallel to the way mixed subscripts for minority stars followed up on super-powers?

Because multiple pluses are left associative, as shown in the last rule the answer seems no. And indeed, if mixed pluses were ruled by minority precedence we could conclude the minority pluses system by simple recursion.

a+R;... [+R;#b] =>> (.a+R;).. [(#b#+R;)]

But when we agree to apply majority precedence (with the operator sign plux ×), a larger subscripted ×R; operator can extend the range from operant a to include all the smaller subscripted ×R'; operators in between.
Given an expression with mixed pluxes, the largest subscripted (leftmost) operator is evaluated first and all the mathematical terms on its left become subject to repetition (by character duplication).

Because a plux has a single left operant there's a nasty problem – the iterator value to count these repetitions has to be derived from the repeated sequence itself. To achieve this the left sequence has to be reduced to natural number first. And then the original unreduced left characters are to be iterated over.
This cannot happen in place, but requires two separate programme states. Enumeration of states of computation is a complication issue we will not dive into in this article.
Our focus is on general recursion and not computability, though we'll miss out on some truly Big numbers.

With unary operators mixed sequences such as in the general formula of mixed minority stars, if possible, will have to occupy some secondary space for evaluation. For instance, a plux at the right end could still employ the empty character space on its right to perform a calculation, but this extension of operator sequences to derive an iterator value essentially uses temporary (nested) right operants.
These alternatives of countable programme states and virtual extra operants are not truly what operators are about. Such constructions are better set in the framework of functions and their operatorial extensions in part two.

We will forget about majority pluxes and happily raise bigA on the foundation of minority pluses, which look so simple but are to our surprise more powerful than the arrowheads ^.. of operatorial bigE. This is proved in chapter 4.2.

# 3.3. Arrows quarters

under 2010 construction

§3.3.1. Repainting up-arrows

The definition of Conway's chained arrows is apt to draw its own bow → skip the basic trio a→b→c = a^...b [*#c] and derive super-powers directly from its axioms for the first row. That is, provided the duo is defined separately as exponentiation a→b = a^b, which slows the row expansion down by a parameter position, compared to a more rigorous application of the scheme of chained arrows.

We will define a right arrow function using the sign as a parameter separator. On the operator axis a new algorithm for what we still call up-arrows (though not Knuth's, but painted by Novaloka) forms the basis.
Our notation applies the convention of majority precedence for arrow operators, leaving out brackets when possible.
Let's walk through the different forms of up-arrows, following the trail of an expanding row of parameters to the right.

  • An operator .. [#z] = a without operants to operate upon is strange, but natural z = 1.. [#a]
  • The initial up-arrows a;00;.. are unary a↑.. [↑#z] with z counting their series.
  • Then come the still unsubscripted yet doubly iterable binary up-arrows a↑..y [↑#z]
  • Continue with subscripted up-arrows a↑R;..y [↑R;#z] which are unmixable, so you can either write for example a↑x;x;x;y or a↑x;↑↑y or a↑↑↑x;y as [↑x;#3] is what's intended.

Within a series of up-arrows different subscripts will not mix – describe this property in a logical statement.

a;SiRi;..y [;SiRi;#z] => Ri = R0 & Si = S0

We've painted the new zubscripts magenta (not red), to indicate that they shift to the right – with every final parameter z as an operator counter (instead of the fixed red c) and penultimate parameter y as the main iterator (instead of a fixed b).
For instance the operation a↑b,x;..y [↑b,x;#z] equals the expression a→b→x→y→z.
This isn't just cosmetic – we'll position those parameters that most increase function speed (create the Biggest numbers) to the right of function arrays. In the chained arrows algorithm the double iterator z functions as operator counter and has the greatest impact on the result, since there is no uploading of accumulated iteration values.

§3.3.2. Redrawing right arrows

In this chapter we define a right arrow function with navy coloured separators to distinguish it from chained arrows. Right arrows ai→... [ai#n] are roughly similar to chained arrows, but have three major differences.

  • Of value importance the a↑R;.. operator counter z is counted down (virtually) to 0 (and dropped) instead of dropping 1, in support of our general notion of operatorial functions.
  • Of value importance when penultimate iterator y counts down to 0 and collapses, it is revived by the prestine value of x. Only one parameter drops off, whereas chained arrows drops both last positions.
  • Of parametric importance the main axiom of the R→y→z scheme applies directly to the first two parameters a→z past [a≠1 z≠1] the initial cases.

Because a→b→c = a^..b [^#c] = a^0;..b [^0;#c] = a→0→b→c seems to make sense, in principle any parameter value zero in between could simply collapse its position. Plausibly even those at the start.

  • X→0 = X
  • X→0→Z = X→Z
  • 0→Z = Z

Helped by our collapsing insight, only two axioms – the initial and the main axiom – suffice to define the row function of right arrows, together with its zubscripted up-arrow operators.
If however stuborn, we cannot accept axioms with zero values 0 up front as item or in between as iterator, then we must adapt our rules that count down from 1 to express the same state of affairs. We list them below.

  • a→1 = a↑ = a1
  • 1→b1 = (0→b1)→b = b1→b
         = 1↑.. [↑#b1] = b1↑.. [↑#b] ~> 2*..b3 [*#b--]
  • a1→b1 = (a→b1)→b
          = a1↑.. [↑#b1] = (a↑..)↑.. [↑#b1 ↑#b] ~> 2*..a3 [*#b-]
  • R→1→z1 = R→(R→0→z1)→z = R→(R→z1)→z
         [R:a]= a↑..1 [↑#z1] = a↑..(a↑..) [↑#z ↑#z1]
       [R:a→x]= a↑x;..1 [↑x;#z1] = a↑x;..(a↑..x) [↑x;#z ↑#z1]
     [R:a→Q→x]= a↑Q,x;..1 [↑Q,x;#z1] = a↑Q,x;..(a↑Q;..x) [↑Q,x;#z ↑Q;#z1]
  • R→y1→1 = R→(R→y→1)
         =>> R→(..R→1→1.) [#y#] = R→(..R→1.) [#y1#]
         [R:a]= a↑y1 = a↑.. [↑#z z:a↑y]
       [R:a→x]= a↑x;y1 = a↑..x [↑#z z:a↑x;y]
     [R:a→Q→x]= a↑Q,x;y1 = a↑Q;..x [↑Q;#z z:a↑Q,x;y]
  • R→y1→z1 = R→(R→y→z1)→z
          =>> R→(..R→z1.)→z [#y1#]
       [R:a]= a↑..y1 [↑#z1] = a↑..a↑..y [↑#z ↑#z1]
     [R:a→Q]= a↑Q;..y1 [↑Q;#z1] = a↑Q;..a↑Q;..y [↑Q;#z ↑Q;#z1]

The translation from Novaloka's up-arrows to right arrows doesn't look so smooth, but it's workable. The numbers created by our right arrows are a single parameter Bigger than Conway's chained arrows which is not terribly significant on a grand scale, where parameter rows R can be stretched to arbitrary length.
If you'd like to see how the above estimate a→b2 ~ 2*..a2 [*#b] of two parameter super-powers was reached, click here!

  • a→2 = (a-→2)→1 = (a-→2)1 =>> (0→2)a = a2
  • a→3 = (a-→3)→2 = (a-→3)2 =>> (0→3)(a*2) = (2*a2)-
  • a→4 = (a-→4)→3 ~> (a-→4)*2 =>> (0→4)*2^a ~ 2^a2
  • a→5 = (a-→5)→4 ~> 2^(a-→5) =>> 2^^a\^(0→5) ~> 2^^a2
  • a→b [a>1] = (a-→b)→b- ~> 2^..(a-→b) [^#b-4]
            =>> 2*..a\*..(0→b) [*#b-2 *#b-3] ~> 2*..a2 [*#b--]

If we fill in the extremum 1→b1 in the main rule, our approximation of the two parameter case turns out rather crude.

1→b1 = (0→b1)→b = b1→b ~> 2*..b3 [*#b--]
     ~ 2*..3 [*#b-] = 2*..4 [*#b--] => b~1

§3.3.3. Mixing down arrows

under 2010 construction

Initially arrow expressions are without multiple subscripted operators – the opportunity for mixing didn't occur yet – this is where up-arrows and down-arrows do not differ in function and result.

  • a←y←z = a↓..y [↓#z] = a↑..y [↑#z] = a→y→z
  • a←x←1←1 = a↓x;1 = a←x←(a←x←0←1) = a↓..x [↓#z z:a↓x]
            = a↑..x [↑#z] = a→x→(a→x→1) = a→x→1→1 = a↑x;1
  • a←x←y1←1 = a↓x;y1 = a←x←(a←x←y←1) = a↓..x [↓#z z:a↓x;y]
             = a↑..x [↑#z] = a→x→z = a↑x;y1 = a→x→y1→1

Obviously the final parameter z stays unmixed, because it expresses the number of possible mixings. Less obviously the penultimate parameter y is reserved to contain a waitor subexpression and shouldn't be subscripted or mixed.
Follow the translation rules for revolving arrows around the clock.

  • a←R←x←0←z1 = a↓R,x;..0 [↓R,x;#z1] = a↓R,x;..R;x [↓R,x;#z]
  • a←1←1←2 = a↓1;1;1 = a←1←(a←1←0←2)←1 = a↓1;a↓1;↓1
            = a↑1;a↑↑1;1 = a→1→(a→1→1→2)→1 = a→1→2→2 = a↑↑1;2
  • a←x←1←2 = a↓x;x;1 = a←x←(a←x←0←2)←1 = a↓x;a↓x;↓x
            = a↑x;a↑↑x;x = a→x→(a→x→x→2)→1 = a→x→x1→2 = a↑↑x;x1
  • a←x←2←2 = a↓x;x;2 = a←x←(a←x←1←2)←1 = a↓x;a↓x;x;1
            = a→x→(a→x→x1→2)→1 = a→x→x2→2 = a↑↑x;x2
  • a←x←y1←2 = a↓x;x;y1 = a←x←(a←x←y←2)←1 = a↓x;a↓x;x;y
             = a→x→(a→x→xy→2)→1 = a→x→xy1→2 = a↑↑x;xy1
  • a←x←1←3 = a↓x;x;x;1 = a←x←(a←x←0←3)←2 = a↓x;x;a↓x;x;↓x
            = a→x→(a→x→xy→3)→1 = a→x→xy1→3 = a↑↑x;xy1
  • a←x←1←z1 = a←x←(a←x←0←z1)←z
             = a↓x;..1 [↓x;#z1] = a↓x;..a↓x;..↓x [↓x;#z ↓x;#z]
             = a↑x;a↑↑x;x = a→x→(a→x→x→z1)→z = a→x→x1→z1 = a↑↑x;x1
  • a←1←y1←z1 = a↓1;..y1 [↓#z1]
              = a↓1;....y1 [↓1;#z ↓#v] where v = a↓1;..y [↓1;#z1]
  • a←x1←y1←z1 = a↓x1;..y1 [↓#z1]
               = a↓x1;..x;..y1 [↓x1;#z ↓x;#v] where v = a↓x1;..y [↓x1;#z1]
  • a←R←y1←z1 = a↓R;..y1 [↓#z1] = a↓R;..R-;..y1 [↓R;#z ↓R-;#y1]

More arrow quarters round the clock.

a↓1;↓b = a↑↑1;b = a→1→b→2 = a↑1;a↑↑1;b-
a↓1;..b [↓#z] = a↑1;..b [↑1;#z1]
              = a→1→b→z1 = a↑1;..a↑1;..b- [↑1;#z ↑1;#z1]

a↓1;1;b = a←1←b←2 = a←1←(a←1←b-←2)←1 = a↓1;a↓1;1;b-
       = a←1←b←b1 = a↑1;..b [↑1;#b1]
a←1←b←2 = a↓1;1;b = a↓1;..b [↓#b]
        = a←1←b←b1 = a↑1;..b [↑1;#b1]

# 3.4. Recursive arrow mixation

under 2010 construction

§3.4.1. Revolving the axis

There's a beautiful story recalled by Richard D. Gill, how John H. Conway derived a power tower of omegas ω on a small blackboard, that he rotated 90° clockwise to create a much larger infinite expression involving epsilons εεε..

Using ω→2→3 = ω^^ω = ε0 to express ε0→2→4 is not so impressive as it seems, considering the chained row of omegas ω→.. [ω#ω] that must have been on Conway's mind when he invented his chained arrows.
We don't want to spoil Gill's story here. It gains interest when we find a way to turn clockwise the very arrows Knuth and Conway started with! This involves a revolution of the arrow's axis. Of course the first turn is Conway's…

§3.4.2. The next revolution

bigΨ.II. Function sizes

part 2, Work draft
publishes: 2012

§II.0. Summary

In the chapters below you'll find a showcase of 5 different operatorials bigO* – created from their corresponding subscripted operators, which we've introduced in the first part of this paper.

You've witnessed Conway's chained arrows in action before – this is an operatorial function in disguise – and we'll work it over in the first row of bigY.
So you already have an idea of what is coming – after the basic operations the first row of parameters will be defined and then we start counting and iterating over array lengths and dimensions and over extra-dimensional types.

The challenge is to iterate in a smart way, to recognize and grasp each opportunity to move the algorithm higher by feedback of iterators from down below – thereby creating Big numbers undreamed of before.
In this 2nd part of the book the operatorials pass through 4 different levels of function classes together. To each operatorial level we'll devote a separate chapter.

* Note on: bigO*, generic operatorial function O

The nomenclature is confusing here – the names "bigO" (bigOh) and O() and "bigOmega" and "Omega" are already in use as measures for algorithmic complexity or function speed. The primitive bigOh notion of algorithmic order just accounts for the fact that the size of the numbers an operatorial function produces is determined by the value of its highest positioned parameter.

We feel our operatorials are entitled to the name bigO, because of the shared property that all parameters are put in order of algorithmic weight. This allows us to compare a given operatorial on a whole range of parameters. To decide which operatorial bigO increases faster we first check the lengths of the parameter rows, and then the values of the rightmost differing parameter.

We originally opted for the generic function prefix O() because our operatorials are constructed on top of a system of operators. Also, a numerical property of our operatorials O(X,z) is that final iterators z are count down to 0 (zero) and then dropped.
Related Big number functions such as Conway's chained arrows may be called operator functions.

Ψ.4. Super-powers of bigO

§4.0.1. Generic rules

Stone sculpture of a stylized animal

In those days the multitude being very great, and having nothing to eat, Jesus called his disciples unto him, and saith unto them, I have compassion on the multitude, because they have now been with me three days, and have nothing to eat: And if I send them away fasting to their own houses, they will faint by the way: for divers of them came from far.

And his disciples answered him, From whence can a man satisfy these men with bread here in the wilderness? And he asked them, How many loaves have ye? And they said, Seven.
And he commanded the people to sit down on the ground: and he took the seven loaves, and gave thanks, and brake, and gave to his disciples to set before them; and they did set them before the people.

And they had a few small fishes: and he blessed, and commanded to set them also before them. So they did eat, and were filled: and they took up of the broken meat that was left seven baskets.
And they that had eaten were about four thousand: and he sent them away.

Mark 8.

An operatorial O is a container O(T) with an array of parameters O(a,..,z), where every next term is an iteration counter, modelled after and expanding on previous terms, and based on an initial case O(a,1).
The term basic refers to the primitive recursive function class or the super-power level of construction. A related subclass is Kalmár's elementary, which covers all functions defined by iterations up to multiplication.

To evaluate an expression of an operatorial completely, it is reduced to the smallest possible number of operations on units. Without other numeric units than 1 the final reduction of an operatorial must always deliver a natural number. This is what's meant with reducibility, and every new rule should preserve it!

Creating operatorials for Big numbers is more of an art than a science. Our bigE should capture all recursive functions under the hood (if yours accelerates faster we'll catch up later), by extrapolating the principles of natural operators to higher parameter dimensions and beyond.
We'd like simplicity to be our guide, but this is alas not trivial. Contrary to popular belief it is not the higher which rules the lower from above. Operatorial higher constructs facilitate the lowest to iterate over all other constructs below the higher. In a fast algorithm the highest intervention – characterized by z countdown – will happen very very rarely.

The post-reduction and post-countdown destructors lay the foundation for all operatorials. Both rules are marked here in the generic context for bigE.
The post-reduction axiom maps a single item (such as a natural number) to itself. Post-reduction in the context of bigI can also be incorporated by its addition rule.
The generic post-countdown axiom is most fundamental for bigO as it puts a lower limit to all iterations, but it can perhaps be overruled in a special case of z=0 such as via the substitution definition of multiplication in bigE.

  • O(a) = a
    so  O() =   = 0  if a = 1.. [1#a]
  • O(X,) = O(X)
    so  O(X,0) = O(X)

§4.0.2. Basic bigE

Traditionally multiplication is defined by repeated addition – recursively in two steps. Notice that the initial step of unity is already contained via the two generic axioms E(a,0) = a, so the zero-arrow definition of bigE is not a complete fit, because it does not cover multiplication by zero, which is unreachable as the iterator drops at b=1.

  • E(a,1) = E(a) = a
  • E(a,b1) = E(a E(a,b)) [b>0]
          =>> E(a... E(a,1)) [a#b] = E(a...) [a#b1]
            = a+... [a#b1] = a(b+1) [0^] = a*b1 [0*]

You might like to leave multiplication untouched, there's something to say for that – just drop the single separator and collect the result E(a,b) = ab = a*b
For bigE we are tempted to choose the substitution definition of multiplication, where the value b=0 is allowed to overrule the generic post-countdown axiom for once. Unusual here is that a functions as an iterator over b, while bigE's version of the lonely separator completely replaces all units 1 in a by the value b

  • E(a,b) = E(1...) [1#a 1:b]
           = b+... [b#a] = ba [0^] = b*a

Now how is this suddenly possible? As the last single separator is dropped, the algorithm of bigE should select the highest remaining separators to grab its parameters from. At the lowest level dwell the empty separators which add the unit parameters that compose numbers – so that finger counts 1 become available now… Contrived?

Naturally an iterator countdown is a zero-level process too – dropping what seems to be a 0 number of separators , in between z1 => z. Consider this a context where zero space 0, = 0* =  
We can take the hair-splitting yolk to its amniotic extreme and define addition in bigE by assuming separators of size 0 and then iterating over the two virtually separated values of a and b. The result is the same as without the empty separator, but that's what you always have with addition.

  • E(a,...b1) [,#0] = E(a1,...b) [,#0]
                   =>> E(a1...,...1) [1#b ,#0]
                     = E(a1...) [1#b1]
                     = E(ab1) = a+b+1 = ab1 [0*]

Recursive scheme Nº0 for bigE with 1 parameter.

  1. 0.1. Function destruction: post-reduction
  2. 0.2. Empty recursion: addition
  3. 0.0. Separator destruction: post-countdown

Basic recursive definition of bigE with 3 parameters – first an example (exponentiation), then two (temporary) axioms.

  • E(a,b1,1) = E(a,E(a,b,1)) =>> E(a,..a.) [#b#]
              = a... [a#b1 0^] = a^(b+1) = a**b1
  • E(a,1,c1) = E(a,1,c) =>> E(a,1) = a
  • E(a,b1,c1) = E(a,E(a,b,c1),c) =>> E(a,..a.,c) [#b#]
               = a^.. ... [^#c a#b1] = a^...(b+1) [^#c1]

Recursive scheme Nº1 for bigE with 2 to 3 parameters.

  1. 1.1. Root recursion: multiplication [defined by repeated addition]
  2. 1.2. Recursion example: exponentiation <= 1.4 + 0.0
  3. 1.3. Parameter destruction: second iterator collapse
  4. 1.4. Double iteration: super-powers

§4.0.3. Basic bigI

Follows the basic abc of operatorial function bigI, called the big Iteration. Compared to the big Expansion of bigE, an advantage of bigI could be that it incorporates addition ab with its initial pair of parameters.
The definition list of bigI covers super-powers with the 3d parameter c counting the number of stars *.. of the corresponding super-power operation, multiplication represented by a single star.
Here too, multiplication by zero cannot be reached by reduction of any expression of bigI.

  • I(a,1) = I(a1) = a1
  • I(a,b1) = I(I(a,1),b) =>> I(ab,1) = ab1
  • I(a,1,1) = I(a) = a
  • I(a,b1,1) = I(a,I(a,b,1)) =>> a... [a#b1 0*] = a*b1
  • I(a,1,c1) = I(a,1,c) [c>0] =>> I(a,1,1) = a
  • I(a,b1,2) = I(a,I(a,b,2),1) =>> a*... [a#b1] = a**b1
  • I(a,b1,c1) = I(a,I(a,b,c1),c) =>> a*.. ... [*#c a#b1]

Recursive scheme Nº1 for bigI with 3 parameters.

  1. 0.1. Initial destruction: post-reduction => 1.1
  2. 1.0. Initial case: succession => 1.1
  3. 1.1. Root recursion: addition   [Drop axiom: lonely separator I(a,b) = ab]
  4. 1.2. Destruction case: identity => 1.4
  5. 1.3. Primary recursion: multiplication <= 1.5
  6. 1.4. Parameter destruction: double iterator collapse
  7. 1.5b. Recursion example: exponentiation <= 1.5
  8. 1.5. Double iteration: super-powers

We'll continue modelling the operatorial bigI after mixed star operators, expanding the above lists to a row of parameters in chapter 5.3. As it turns out bigI is the big brother of bigE, whose first row is the next construction, building upon the basic parameters defined in this chapter.

§4.0.4. Axioms of addition

The recursive definition of addition in bigI is a threefold loop – starting off as an induction step on two parameters, it drops second parameters b=1 by succession, which in turn destructs the function post-reduction.
The case of b=0 must then be resolved post-countdown (not by inverse construction) to completely define addition as we like it.

I(a,0) = I(a,) = I(a) = a = a0
so  I(a,b) = ab

But addition I(a,b) is also the natural choice for an initial axiom of bigI. It is then defined as a rewrite rule — to drop the lonely separator comma , together with the function I brackets.
As was demonstrated as early as chapter 1 the operator of addition is empty and redundant. Succession is surpassed by addition of 1, the next rule in bigI's definition list. And the impractical rule of post-reduction of one unreduced parameter a is derivable by inversed application of the post-countdown axiom.

I(a) = I(a,) = I(a,0) = a0 = a
so  I() = I(0) = I(0,0) = 0 =  

Therefore an addition which drops the lonely separator can function perfectly as a stand-alone axiom to deal with the final reduction of expressions in a super-power operatorial.

Compare the axiom of addition by zero separators in bigE. We feel that countable separators are an indispensable property of operatorials, and that bigE applies this more rigorously than bigI.
However, with the introduction of waitors to accommodate mixed minority stars in parameters on the front row, the single value c=0 wasted on addition becomes the hallmark of bigI's row expansion.

§4.0.5. Definition lists and function hierarchy

A function definition is an equation existing of a new rule A=B, defining a reduction from A to B. With often appended a conclusion B=..Z derived by iteration =>> of the rule and/or from the preceding definition context.
This context has 3 types of scope – from generic rules, from earlier lists, or from earlier definitions in the same list.

The four types of list markers (none, circle, disc, square) for definition lists rate the axiomatic strength of each new or rehearsed rule by placing it in the function's definition context (as printed in this article).

  • salient = example, non-essential case dependent on a next rule in the same list.
  • transient = recursive rule, part of the conclusion of a next rule in the same list.
  • provisional = recursive rule, surpassed by a rule in a following definition list.
  • fundamental = axiom, recursive rule necessary for all following definitions.

Within the same definition list provisional and fundamental rules prescribe a certain order of application. For example, the rule I(a,1,c1) is listed before super-powers I(a,b1,c1), prescribing that in case b=0 the former rule takes precedence, even if the latter rule is declared without specifying that b>0.
When a rule is not fundamental (an axiom), it will be overruled by a more general definition in a following definition list. Our job is to abstract new rules, create Bigger numbers and keep the context expanding forever…

A definition list should cover an (intuitive notion of an) operatorial hierarchy – in the case of bigI the *... [*#n] operators. The definition lists in this chapter present the basic context of super-powers, so that each basic operatorial covers all subclasses of the primitive recursive Grzegorczyk hierarchy.

Doctorat honoris causa Andrzej Grzegorczyk Grzegorczyk
Auvergne 2008

# Grzegorczyk's subclasses

The number-theoretical space occupied by bigE, bigI and bigA with 3 parameters is known as the Grzegorczyk hierarchy {Κ.1.c} of classes of functions closed under the operation of limited recursion.
Limited recursion over class {Κ.1.2} for example, means that you cannot step from exponentiation c=2 to power towers a^a^a directly. From this Grzegorczyk proved that every primitive recursive function exists on a separate sublevel c.
We take addition as level {Κ.0} whilst Grzegorczyk calls this class ε1.

Grzegorczyk in 1953 devised his own primitive recursive function family to investigate his super-exponential hierarchy. The operatorial function Grz is essentially his (except at *notes).

  • Grz(a,b,-) = a1 (*Grz reversed a <—> b with c1 as function subscript)
  • Grz(a,b,0) = ab (Grz's addition axiom, here enumerated by c=0)
  • Grz(a,b,1) = a1*b1 (Grz's extra multipligation axiom)
  • Grz(a,1,c1) = Grz(a1,a1,c) (*Grz put 0 in parameter b on the left)
  • Grz(a,b1,c) = Grz(Grz(a,b,c),b,c) (the Grzegorczyk hierarchy)

This is a 3 parameter, multiple substitution, non-nested, non-alternating, primitive recursive function.
Suppose we'd let drop the addition and the multipligation axiom, and then rely on the rest of the definition list Grz(X) => Gr(X) to accelerate the cases c=0 and c=1 and thereby our new Gr expansion.
These functions stay super-powers – they do not escape from primitive recursion like Ackermann did.

  • Gr(a,1,0) = Gr(a1,a1,-) = a11 = a+2
  • Gr(a,b,0) = Gr(Gr(a,b-,0),b-,0) =>> a(11**b) = a+2^b
  • Gr(a,1,1) = Gr(a1,a1,0) = a1(11**a1) = 2^(a+1)+a+1
  • Gr(a,b,1) ~ 11***b\**a1 ~ 2^^(b+1) (say multipligration in Gr)
  • Gr(a,b,c) ~ a*...b [*#c11]

# 4.1. Inverse iteration

Because operatorials build natural numbers 1.. they shun the number 0 from their definitions. Any awkward expression with an inner parameter value of 0 should be resolved by inverse recursion, which iterates backwards from an initial value 1, as is done here for the familiar 0 values of super-power iterators.

I(a,1,1) = I(a,I(a,0,1)) = a I(a,0,1) = a => I(a,0,1) = 0
I(a,1,c1) [c>0] = I(a,I(a,0,c1),c) = I(a,1,c) => I(a,0,c) = 1 [c>1]

We try out inverse recursion to determine how negative operators work – many solutions are the same and extract a successor function on b. However, there are second solutions, can you see?

I(a,b1) = I(a,I(a,b),-) = I(a,ab,-) = ab1 => I(a,b,-) = b1
I(a,b1,-) = I(a,I(a,b,-),--) = I(a,b1,--) =>> I(a,b,-*n) [n>0] = b1

An aesthetic solution, but Peano will have to wait for negative eternity for the ambiguity about true negative functions to go away – it is only the probability of his successor function that rises…
A few hints for future research:

or  I(a,b,-) = (b*a**-)a1 = b/a+a+1  [a≠0]
    I(a,b,--) = b(a**-) = b+1/a  or  = (b-a-1)*a+2
I(a,b,-*m) [m>2] =>> b1 = b+1    or  ad infinitum

Considering the fundamental role of the successor function we may well be hallucinating here.
It's alright to define I(a,b,-*n) [n>0] = b1 as an axiom. There's an overwhelming amount of evidence to show that the operation that precedes addition need not be difficult – compare Gr or Fa- above and the translation of Rózsa Péter's recursion to bigI format below. Because the Big Lebowski calls this zeration and thinks highly of it, we've restated its law in double Dutch for all Dudes.
The inverse separator reminds us of the relations between inverse points, counted by Newton's negative binomial.

a**b     -> a*b    -> ab     -> a*..b [*#-]    = b+1
E(a,,b) --> E(a,b) -> E(ab) --> E(a,..b) [,#-] = ?

The formula for primary negative iterators b by application of inverse recursion, is given as an exercise.

I(a,-,111) = 0 <=: I(a,-*m1,n11) = -*m [m<n]

# 4.2. From bigA to fractation

Smooth abstract Carrara marble sculpture

There is something unborn, unoriginated, uncreated and unformed.
If there was not, escape from the world of the born, the originated, the created, the formed, would not be possible.

But since the unborn, unoriginated, uncreated, unformed is real, there exists a way out of this world of the born, the originated, the created and the formed.

Persistent in their meditation, resolute and strong, the wise reach out to conquer Nirvana, the highest happiness.

Buddha

§4.2.1. Basic bigA and affiliates

Translate the rules for unary minority pluses to the basic parameters of a new operatorial function bigA.

  • A(a,1) = a+ = a1
  • A(a,b1) = a+... [+#b1] = ab1
  • A(a,1,c1) = a+c1; = a+c;... [+c;#a] = A(a,a,c)
  • A(a,2,c1) = A(A(a,a,c),A(a,a,c),c)
  • A(a,b1,c) = a+c;... [+c;#b1] = (a+c;)+c;... [+c;#b]
              = A(A(a,1,c),b,c)

We've described the case Rmin(0;a,b,c) of unbracketed minority stars in section 2.4.3. We'll derive a slightly faster function Fb = a×...b [×#c] by unbracketing the function family Fac from section 2.0.3.
It will then become clear that the binary function Fb() and the unary operatorial A() are the same, at least in the basic three parameters.

First restate the rules for function family Fac(a,b) to Fa(a,b,c) in operatorial format.

  • Fa(a,b1) = Fa(a,b)1 =>> Fa(a)b1 = ab1
  • Fa(a,1,c1) = Fa(a,a,c)
  • Fa(a,b1,c1) = a×...b1 [×#c1] = a×...(a×...b) [×#c ×#c1]
                = Fa(a,Fa(a,b,c1),c)

Assume the operator × of Fa and Fb is ruled by right minority precedence.
Unbracket Fa by removing brackets ( -> (0 in the last rule of the above definition.

  • Fb(a,b) = ab
  • Fb(a,1,c1) = Fb(a,a,c)
  • Fb(a,b1,c1) = a×...b1 [×#c1] = (a×...a)×...b [×#c ×#c1]
                = Fb(Fb(a,a,c),b,c1)

Because the two step reduction A(a,b1,c1) = A(A(a,a,c),b,c1) matches the main rule of Fb and the previous two rules are the same, operatorial A equals function Fb in the super-power context.
From this we conclude that for 3 parameters, bigA increases faster than bigI on two points – because Fa starts squaring sooner than bigI at b=1 and because its unbracketing to function Fb mostly produces notably bigger numbers, as it feeds the substituent expression to the larger operator (this was explained in section 2.4.3).

But how fast is bigA approximately compared to bigE?
The dagger sign is used to cut calculations short.

  • A(a,1,1) = A(a,a) = aa = a*2
    A(a,b,1) =>> A(.a.,1,1).. [#b#] = a*2^b
  • A(a,1,2) = A(a,a,1) = a*2^a
    A(a,2,2) = A(A(a,1,2),1,2) = a*2^(a*(2^a+1)) ~> 2^2^a †
    A(a,3,2) = A(A(a,1,2),2,2) ~> 2^2^(a*2^a) ~> 2^2^2^a †
    A(a,b,2) =>> A(.a.,1,2).. [#b#] ~> 2^^b\^a †
  • A(a,1,3) = A(a,a,2) ~> 2^^a†
    A(a,b,3) =>> A(.a.,1,3).. [#b#] ~> 2^^^b\^^a†
  • A(a,1,c) = A(a,a,c-) ~> 2^..a† [^#c-]
    A(a,b,c) =>> A(.a.,1,c).. [#b#] ~> 2^..b\^..a† [^#c ^#c-]

Unlike unbracketed stars versus arrowheads, when c>1 early riser bigA is always slashly ahead of bigE.
This is because: a^^b < 2^^b\^a in which the final exponent a < 2^a is dominant.

§4.2.2. Half-speed super-powers

Getting your hands dirty and making mistakes is recursionist practice.
In chapter 2.1 we asked if there exists a continuum of algorithms in the gap between super-power counts of c of which we've so far only met the integer values. This is a problem Stephen Wolfram posed recently.
Natural candidates for the position E(a,b,½) halfway between multiplication a*b and powers a^b for example, are the binary exponential function a*2^b or the factorial a! perhaps.
Today in our algorithmic laboratory we stumbled across the following approximate evaluations for tryB.

  • B(a,b,1) = B(aa,b-,1) =>> (.a.*2).. [#b#] = a*2^b
  • B(a,2,2) = B(B(a,a,1),a,1) = a*2^(a*2)
    B(a,b,2) =>> B(.a.,a,1).. [#b#] = a*2^(a*b)
  • B(a,2,3) =>> B(B(a,a,2),a,2) ~> 2^(a^2*2^a^2)
    B(a,b,3) =>> B(.a.,a,2).. [#b#] ~> 2^^b\^(a^2)
  • B(a,2,4) =>> B(B(a,a,3),a,3) ~> 2^^a\^(2^^a\^(a^2))
    B(a,b,4) =>> B(.a.,a,3).. [#b#] ~> 2^^(a*b)
  • B(a,b,5) =>> B(.a.,a,4).. [#b#] ~> 2^^^b\^^(a^2)

This function tryB expands pairwise and traverses the super-power hierarchy at half the speed of bigA!
But how does one construct the algorithm? Should we supply an extra coefficient to store left parameter a temporarily, or can we retrieve the appropriate variable a from within the depth of all nests?
The first option would require us to remember these a somehow as waiting on a particular c too.
We choose a nested notation, which keeps expressions substituting for the first parameter unresolved, until the outer iteration counts down to value b=1. Nested subexpressions put on hold like this are called waitors.

We use the waitor mechanism to reduce super-power function speed to a fraction of one half. But tryB is not dependent on its special rules for waitors w. The whole mechanism can be taken care of by the nested recursion in the conclusion of tryB's main axiom (in the last line).
To indicate that tryB's special waitor rules can be represented alternatively as nested recursion these are marked as transient (with left a small circle). But when you'd insist on having a construction in the simplest of steps, the waitor rules should be considered fundamental.

Define our algorithm for tryB. The substituent expressions w are waitors B(v,1,c) nested to arbitrary depth. Variables a and v can be either natural numbers n or waitors, where v is selected for reduction by unnesting.

  • B(1..) [1#n] = n
  • B(a,1) = a1
  • B(a,b) = B(B(a,1),b-) =>> B(.a.,1).. [#b#] = ab
  • B(a,1,1) = B(a,a) = a*2
  • B(a,b,1) = B(B(a,1,1),b-,1)
           =>> B(B(a,b-,1),1,1) = B(a,b-,1)*2 =>> a*2^b
  • B(v,1,c) == B(v,B(v),c-)
  • B(x,B(w),c) [w:B(v,1,cd) c>0] = B(x,B(v),c) [d<2]
                                or  B(x,w,c) [d≥2]
  • B(a,b,c) = (w,b-,c) [w:B(a,1,c)] =>> B(.a.,1,c) [#b#]
             = B(B(a,b-,c),1,c) == B(B(a,b-,c),a,c-)
             =>> B(B(B(a,b-,c),a-,c-),B(a,b-,c),c--)
           =>> B(.w.,a,c-).. [#b-#] = B(.a.,a,c-).. [#b#]

This fractional waitor algorithm has the following features.

  1. A waitor is a subexpression in first parameter position that has an inner parameter value b=1 with an iterable (non-initial) value in the outside expression's parameter c (here c>1 is iterable).
    Waitors w cannot be resolved in place, instead they must wait for the outer expression to be iterated down to b=1. We've talked about the application of outside precedence to functions before.
  2. There's an initial rule at a fixed low value of c (here at c=0 and c=1) which resolves inner as well as outer expressions B(v,1,c) directly – unconditionally and without unnesting (unlike waitors).
  3. A selection rule which cannot be applied in waitor subexpressions, as indicated by the right equal == sign. This postpones the reduction of nested waitors until the outer expression is resolved.
    Officially each waitor w must wait for the value b=1 to occur in its outer expression, so that it is selected with the guarantee that its inner parameter c is still intact for comparison by the next rule.
  4. A waitor reduction fork which is conditionally evaluated, dependent on the difference d between the inner and outer value of c. It either selects the next inner first parameter or just unselects the waitor so it can be reduced separately as a normal expression B to become the next iterator.
    If d<f (tryB has f=2 and d<2 means d=1) this reduction rule digs up the inner first parameter from the nested waitor. For nested subexpressions w = B(.a.,1,c).. the reduction is recursive:
    B(w,1,c) == B(w,B(w),c-) =>> B(w,a,c-)
    Else if d≥f the waiting subexpression is substituted directly in iterator position, where the ex-waitor is reduced with priority, so it can subsequently be counted down by the main rule. This branch works like the more familiar super-power mechanism we met in bigA.
  5. A main introduction rule which substitutes first parameter a for a waitor subexpression as it counts down parameter b. During the course of the iteration over b waitors are nested to depth b-
  6. An unofficial short cut, overruling the default evaluation direction (from right to left).
    Further on in the reduction of fractional super-powers (when the outer c is counted down so that d=f) waitors can't be reduced by unnesting any more – essentially the waiting stops. Then we can decide to resolve these subexpressions as normal fractations, even when substituted in first parameter position.
    In tryB the original parameter a nested in the waitor becomes unreachable as soon as d=2 and it does no harm to resolve those ex-waitors, like we did in the last line of tryB's main rule.

It is sometimes difficult to realize we are still dealing with numbers here. For two examples of step by step evaluation of numerical expressions in tryB, click here!

B(3,1,3) == B(3,B(3),2) = B(3,3,2) = B(w,2,2) [w:B(3,1,2)]
= B(w1,1,2) [w1:B(w,1,2)] == B(w1,B(w1),1) = B(w1,B(w),1) =
B(w1,3,1) = B(w2,2,1) [w2:B(w1,1,1)] = B(w3,1,1) [w3:B(w2,1,1)]
= B(w3,w3) = w3*2 = w2*4 = w1*2^3 = w*2^(3*2) = 3*2^3^2 = 1536.

B(3,2,3) = B(w,1,3) [w:B(3,1,3)] == B(w,B(w),2) = B(w,3,2)
= B(w1,2,2) [w1:B(w,1,2)] = B(w2,1,2) [w2:B(w1,1,2)] ==
B(w2,B(w2),1) = B(w2,B(w1),1) = B(w2,B(w),1) = B(w2,w,1)
= B(w2,1536,1) =>> B(.w2.,1,1).. [#1536#] = w2*2^1536,
w2 = B(w1,1,2) == B(w1,B(w1),1) = B(w1,w,1) = w1*2^1536,
w1 = B(w,1,2) == B(w,B(w),1) = B(w,w,1) = 1536*2^1536,
B(3,2,3) = 1536*(2^1536)^3 = 1536*2^4608 = 3*2^(3^2*(2^3^2+1))

Prelude> 1536*2^4608 =
21508555048174302465876949175324489276722303317367625962613911393023535708309001
78680983067662471539315804775104840474528205150793642557204649350532414481362407
98199460785373402205046566762413511868871486946075012367733934401906436482634209
59419069734176249215449135598234647461283588582007188817294549851994894346936544
65285376410883677697566682011933691337122602607789253333664335939653210088009086
99770469576158631315246172393814114168729552291134778046293682760898673771130164
23519319173790600630511245345170358550201216597797145343678870759570666042935838
73996122460887992355390472801144634846876389929620929491842384582172483641434952
95188793678333958000373946494030710435917675778261498598834095731097965721642497
52594115967964661223700523122229635070400058206614546673319630344229139366308243
81426551272291648373590148626915038305230061956894736445177133599840169934060686
86541722487468972954615413466637605741404272180714146589918068237526297031550033
73427622995380922980483996219588881729412826516433562381873184009838669561476556
84391421837876739456716595598295903592305799885521657744249913875158756304330407
10054312458814812162316829404987960391540162046020325373999458283755441089542197
42529876945845356666207899983789154092325303066851863276617976497269531860721327
95718743734826255856889194790563371505928800555981765807151134341884599237347359
1937166512672488746198778249216.

A more precise mathematician may prove tryB's set of rules with waitors cannot be derived by primitive recursion, as the existence of the Grzegorczyk hierarchy suggests (else his concept of hierarchic function classes is in reality less strict). To us the above steps in the definition of tryB look quite primitive, but to prove that they are (as we conjecture) is not crucial for our discussion.
The striking feature of tryB is that it distinguishes between even and odd values of c in order to subdivide Grzegorczyk's enumeration of super-power functions in two.

Follows our proof that tryB increases at half the speed of super-powers. We take all reduction steps from the outside in – with no resort to the unofficial 6th rule for waitors – but with many short cuts. Expressions of tryB are approximately translated to arrows by means of backslashes \.
To show the whole construction of our proof by example, click here.

  • B(v,b,1) = B(B(v,1,1),b-,1) =>> B(.v.,1,1).. [#b#]
             = B(v,b-,1)*2 =>> B(v,1,1)*2^b- = v*2^b
  • B(v,b,c) = B(B(v,1,c),b-,c) =>> B(.v.,1,c).. [#b#]
             = B(B(v,b-,c),1,c)) = B(B(v,b-,c),B(v),c-)
  • B(a,1,2) = B(a,a,1) = a*2^a
  • B(a,b,2) == B(B(a,b-,2),a,1) = B(a,b-,2)*2^a
            =>> B(a,1,2)*(2^a)^b- = a*2^(a*b)
  • B(a,1,3) = B(a,a,2) = a*2^a^2
  • B(a,b,3) = B(w,1,3) [w:B(a,b-,3)] == B(w,a,2)
             = B(B(w,a-,2),1,2) == B(B(w,a-,2),w,1)
             = B(w,a-,2)*2^w =>> w*2^(w*a)
             ~ 2^(a*B(a,b-,3)) ~ 2^..B(a,1,3) [2^#b-]
           ~ 2^^b-\^(a^2*2^a^2) ~ 2^^b\^a^2
  • B(a,1,4) = B(a,a,3) ~ 2^^a\^a^2
  • B(a,b,4) == B(w4,a,3) [w4:B(a,b-,4)]
             == B(w3,w4,2) [w3:B(w4,a-,3)]
              = w3*2^(w3*w4) ~ 2^B(w4,a-,3)
            =>> 2^^a-\^B(w4,1,3) == 2^^a-\^B(w4,w4,2)
              = 2^^a-\^w4*2^w4^2 ~ 2^^a\^B(a,b-,4)^2
            =>> 2^^a\^(..B(a,1,4).)^2 [#b-#]
              ~ 2^^(a*b-)\^(2^^a\^a^2) ~ 2^^(a*b+2)
  • B(a,1,c1) = B(a,a,c)
        [c%2=0] ~ 2^..(a^2+2) [^#c/2].
        [c%2=1] ~ 2^..a\^..a^2 [^#c1/2 ^#c-/2].
  • B(a,2,c1) = B(w0,a,c) [w0:B(a,1,c1)]
              = B(w1,w0,c-) [w1:B(w0,a-,c)]
        [c%2=1] ~ 2^..(w1*w0) ~ 2^..w1 [^#c-/2]
              =>> 2^..a-\^..B(w0,1,c) [^#c1/2 ^#c-/2]
                ~ 2^..a-\^..(2^..w0) [^#c1/2 ^#c-/2 ^#c-/2]
                ~ 2^..a\^..w0 [^#c1/2 ^#c-/2]
                ~ 2^..(a*2)\^..a [^#c1/2 ^#c-/2].
        [c%2=0] ~ 2^..w0\^..w1 [^#c/2 ^#c--/2]
              =>> 2^..w0\^..(..B(w0,1,c).) [^#c/2 ^#c--/2 #a-#]
                ~ 2^..(w0*a-)\^..2^..w0 [^#c/2 ^#c--/2 ^#c--/2]
                ~ 2^..(w0*a) [^#c/2] ~ 2^..w0 [^#c/2]
                ~ 2^..2^..(a^2) [^#c/2 ^#c/2].
  • B(a,b,c1) = B(w,a,c) [w:B(a,b-,c1)]
              = B(B(w,a-,c),w,c-)
        [c%2=1] ~ 2^..a-\^..B(w,1,c) [^#c1/2 ^#c-/2]
                ~ 2^..a\^..B(a,b-,c1) [^#c1/2 ^#c-/2]
              =>> 2^..a\^..(..B(a,1,c1).) [^#c1/2 ^#c-/2 #b-#]
                ~ 2^..(a*b-)\^..2^..a\^..a^2
                      [^#c1/2 ^#c-/2 ^#c-/2 ^#c---/2]
                ~ 2^..(a*b+2) [^#c1/2].
        [c%2=0] ~ 2^..w\^..(..B(w,1,c).) [^#c/2 ^#c--/2 #a-#]
                ~ 2^..B(a,b-,c1) [^#c/2]
              =>> 2^..(..B(a,1,c1).) [^#c/2 #b-#]
                ~ 2^..b-\^..2^..(a^2+2) [^#c2/2 ^#c/2 ^#c/2]
                ~ 2^..b\^..(a^2) [^#c2/2 ^#c/2].

The numbers expressed by bigA and tryB always lie near super-power multiples of two. Factor a is dwarfed by the repetition of items 2 produced by the double iteration over b and c as the numbers get bigger. Therefore tryA and tryB are said to express a binary-exponential order.
The difference is that tryB moves at half the speed of tryA, so its resolution (the number range covered by 3 parameters in tryB) is twice as good as super-powers.

under 2010 construction

# 4.3. Super-factorial bigU

§4.3.1. Extending the factorial

Oil on canvas - Man standing with scarlet robe and black skull-cap John Wallis
Oxford 1701

The factorial operation a! = 1*2*3*..*a hasn't received a proper update since John Wallis published Arithmetica Infinitorum (1656) and his Algebra (1685).
We propose a new definition for an enumerable sign !X as the operator of the upcoming operatorial bigU. Because the general function is so fast, we've nicknamed it the fastorial.
You can forget about the slow superfactorials Sloan & Plouffe and Pickover defined in 1995, those are both exponential hybrids. For Big number lovers the factorial nature of the new super-factorial a!b operation – where b sits on the fastorial front row – is paramount!

Our super-factorial operators !b are always subscripted with a coefficient, starting with !1 (the good old a! factorial) defined by i*... [i#a] using an incrementor i.
Two factorials in a row a!1!1 = (a!1)!1 will be evaluated from left to right. Likewise a series of mixable (not necessarily the same) super-factorial operators.

a!bi... [bi#n] = (.a.!bi).. [#n#]

All fastorials !X are left associative. You can compare this to the coefficient used in the short cut formula for majority arrows, for which mixing unequally subscripted operators was deemed insignificant.
The super-factorial !b is a unary operator. Unary operations enjoy a higher precedence than binary operations, so for example m*n!1 = n*(n!1) evaluates the factorial with priority.
The b in a!b functions as a binary operant on a, but because we allow the subscript to contain more than a row of iterators, we've practically done away with the notion of n-ary operators. The operatorial function bigU comes instead.

Keep in mind that a number variable a is a series 1... [1#a] of characters one. Then a single 1 counted down to 0 will be a series of zero ones, nothing but an empty space.
Applying the generic operatorial axioms to bigU below, the unsubscripted !0 = ! would equal 0 if it was allowed.
The third general axiom will be applied to counting down U(1,b) and is unique for bigU.

  • U(a) = a (bracket drop at a number)
  • U(A,) = U(A) (right comma drop at z=0)
      so  U(a,0) = a!0 = a
  • U(,Z) = U(Z) (left comma drop at a=0)
      so  U(0,b) = 0!b = b

Follows the definition of the basic two super-factorial parameters of bigU.
The evaluation of numbers with zero space [0*] in between follows the star convention, so in a- = a-1 and a1!1 = (a+1)! an immediate form of addition takes place (variables and units combine with precedence).
Work out a few cases with the new super-factorial !2 click here!

  • U(1,1) = U(U(0,1),0) = U(U(1)) = 1
  • U(a,1) = U(1...) [1#a 1:U(a-,1)] = U(U(a-,1)*a)
         =>> 1*i... [*i#a] = a!1 = a! (factorial)
  • U(2,2) = U(U(2,1)*2,1) = 4!
    U(3,2) = U(24*3,1) = 72! ~ 6.12345*10^103
    U(4,2) ~ U(6E103*4,1) ~ 2E104!
    U(5,2) ~ U(2E104!*5,1) ~ 2E104!!
  • U(a,2) = U(v*a,1) [v:U(a-,2)] =>> (.2.*i)!1.. [#a#]
           = a!2 ~ 2E104!.. [!#a-3 a>3]
  • U(2,3) = U(3!2*2,2) ~ 1E104!2 ~ 2E104!.. [!#1E104]
    U(3,3) = 3!3 ~ 1E104!2!2
    U(a1,3) ~ u!2.. [!2#a] & u = ((4!1*3)!1*2) ~ 10^104 <~ 5!!
  • U(2,4) = U(4!3*2,3) ~ 4!3!3 ~ u!2!2!2!3
    U(a1,4) ~ 4!3.. [!3#a1]
    ~ u!2!2!2!3.. [!3#a]
  • U(2,5) ~ 5!4!4 ~ 5!1!1!2!2!2!3!3!3!3!4
    U(a1,5) ~ 5!1..!2..!3..!4.. [!1#2 !2#3 !3#4 !4#a]
  • U(1,b1) = U(b1,b) = b1!b
  • U(2,b1) = U(U(b1,b)*2,b) ~ b1!b!b [b≥2]
  • U(a1,b1) = U(v*a1,b) [v:U(a,b1)]
           =>> (.b1.*i)!b.. [#a1#] = a1!b1 (super-factorial)
                                   ~ b1!b;.. [!b;#a1]

             ~ 5!i...:.!b;.. [!i#i1 !i..#b !b;#a]

So you create a maximal predecessor subexpression v by counting down the first entry a in an array of U. Then retake the original expression U and count down the leftmost available iterator (value not 1 unless it's the final entry) right of a (here that's b which can be dropped) to form outer expression. And substitute all units in the parameter(s) left of the outer iterator (here each 1 of a) for inner expressions v.

§4.3.2. Speed of the super-factorial

The principle of bigU is to consequently replace every increasable construct by the maximal predecessor v. Just like a length is increased when we substitute its units of length, a number variable is seen not as a whole number, but as a series of units 1 (separated as it were by 0 commas), which isn't increased directly but through its units. This depends on the function of the single separator , for when the outer iterator lies to the right of a double comma ,, the number of parameters is increased too.

In general only the rightmost increasable construct is significant, which when substituted for v delivers a function increasing approximately just as fast as bigU. Simply replacing the whole variable a as in Rózsa Péter's recursion has comparable strength. (though she misses the factorial nature on our planet)~:
However, the problem lies in recognizing constructs, we only (try to think like a Vegan:~) expand units 1 and , in expressions of bigU.

Two reasons why bigU's basic pair of super-factorial parameters is the perfect Hînayâna motorcycle.
The original ideas are – substitution of the smallest dimensions (the units 1) and multiple alternating recursions.

  1. Instead of substituting parameters, bigU replaces the lesser dimensions 1 of its free parameter values. Here this amounts merely to multiplication, but it immediately kick-starts the engine.
  2. Fundamentally bigU is powered by alternating recursive rules or wheels. Every front wheel U(a,b1) depends on an existing rear wheel U(1,b1) which in turn relies on the front wheel U(a,b) for recursion.
    Rózsa Péter calls this double recursion and proves it increases as fast as 3-wheel super-exponentiation.

Because the algorithm is so intertwined, you'll literally have no idea what you're looking at when you see a number as a function of U() and this is a good thing, for all operatorials are heinously fast. When creatures with logarithmic senses feel comfortable about Big numbers, the golden brown Buddhas of Oblivion only if ever frown |:–|

The algorithm for bigU is slightly faster than having a!b1 count factorial signs a!b.. by [!b#a]
Though in the end it converges to this double recursion, just like super-exponentiation, but bigU achieves this in two parameters instead of three.

a!1 ~ a^a/2^a [a≥6] <~ E(a,2,2)
a!2 ~ a^^a/a^^(a-1) <~ E(a,2,3)
a!b ~ a^..a [^#b] or E(a,2,b1)

And so the question, whether the super-factorial !b grows with step 1 on the super-power speed-indicator ^.. [^#c] of bigE, succumbing to the same c++ beat as our other recursive operatorials towards the end, is vindicated with a big affirmative.

# 4.4. Operation Babelfish

In the Northern Ocean there is a fish called Kun which is many thousand li in size.
It changes into a bird named Peng whose back is many thousand li in breadth.
When it rises and flies, its wings are like clouds filling the sky.

Chuang Tsu 1.

§4.4.1. Péter's recursion

Chinese blue bowl with rows of decorative stripes around a stylized character Inspired by Ackermann's proof that primitive recursion is not the final word, Rózsa Péter continued work on the classification of recursive functions. Ackermann himself used a foundation of 3 parameters – essentially an inflated super-power function bigI – but from her hand is a basic 2-parameter algorithm, which she built to put an Ackermann φ penthouse on top (it's sometimes presented as the Ackermann recursion, though that's not historical), and which employs the same alternating double recursion as super-factorial bigU.
In this chapter we'll try to generalize Péter's Ackermann formula by putting it in bigI format. It feels like Rózsa would have sought such a translation herself, but it's not in her book.

The first thing we'll do is to reverse the direction of parameters in the functions which Péter and other recursion theorists like to use. For an intuitive understanding of the strength of parameters, we'll append every higher iterator to the right end, not to the start of the array. The last parameters create the Bigger numbers.

Pé(a,0) = a1 = a+1
Pé(0,b1) = Pé(1,b)
Pé(a1,b1) = Pé(Pé(a,b1),b)

Here Péter's algorithm has the same recursive substituent Pé(a,b1) as we saw in the basic pair of bigU. But in bigU every parameter unit 1 in a is to be substituted (i.e. the parameter is multiplied a*v), and Péter replaces her primary parameter in one go.
Therefore Péter must at least add n=1 to the single parameter a. Else if she had put Pé(a,0) = a then every reduction Pé(a,b) [a>0] would have the same result m=1.

§4.4.2. Prefix Pe a parameter

Our operatorials do not change single parameters. The principle is that a single variable has nothing to relate to.
We'll generalize Péter's formula so that any value n can be added to its initial case. This creates a recursive function in bigO style. Because variable n has a minor effect on the result it is positioned left.

Pe(n,a,0) = Pe(n,a) = Pe(an) = an = a+n
Pe(n,1,b1) = Pe(n,Pe(n,0,b1),b)
           = Pe(n,v,b) [v:Pe(n,1,b)]
Pe(n,a1,b1) = Pe(n,v,b) [v:Pe(n,a,b1)]

In expression Pé(1,b1) Péter's algorithm substituted v = Pé(1,b) where in bigU v = U(0,b) reduces to the smaller value b (the difference is not so significant – it doesn't happen often).
We could generalize the 2nd item in the above formula to contain all cases v = Pe(n,m,b) by prefixing another coefficient m to Pe's parameter array. Still m would remain constant, while the substituent in bigU varies during the course of the reduction.
Moreover, for a clean result m is dependent on the value of n as shown below.

First we rename the variables. The n of Pe should get the name a – note that a is not counted down.
Formula Pa is the operatorial form of Péter's recursion.

  • Pa(a,b) = Pa(ab) = ab
  • Pa(1,1,c1) = Pa(1,Pa(1,1,c),c)
  • Pa(a,1,c1) [a>1] = Pa(a,Pa(a,m,c),c) [m:Ma(a,c)=a-k]
  • Pa(a,b1,c1) = Pa(a,Pa(a,b,c1),c)

The 3d item in this definition list is newly introduced and provisional.
In the reduction of expressions Pa where a>1 and b=1 the nested inner iterator m is replaced by a-kc where kc<a and so 0<m<a simplifies the expression.
We still have to find out about m and leave it open for the time being. It's time to listen to the fish…

§4.4.3. Pa gone fishing

In the following 3-parameter translation Rózsa Péter's function behaves perfectly primitive recursive, as it finds expression in the super-powers of bigI.

Pa(1,b) = 1b = b+1 = I(2,b3,-)---
Pa(1,b,1) =>> Pa(1,..1.) [#b1#] = b+2 = I(2,b3)---
Pa(1,b,2) =>> Pa(1,..1.,1) [#b1#] = b*2+3 = I(2,b3,1)---
Pa(1,b,3) =>> Pa(1,..1.,2) [#b1#] = 2^(b+3)-3 = I(2,b3,2)---
Pa(1,b,c1) =>> Pa(1,..1.,c) [#b1#] = I(2,b3,c)---

We wrote the first parameter as a=m+k because it's not obvious what a good value for k is. (It says somewhere in our lost calculations that if a>2 then k=2 …and all will be well?!)
Keep things open with a provisional inner substituent mc:=Ma(a,c) to be determined by variable c.

Pa(a,1,1) = Pa(a,Pa(a,m1;)) = aam1;

Pa(a,b,1) = Pa(a,Pa(a,b-,1)) =>> Pa(a,..m1;.) [#b1#]
          = (a*b1)m1; = I(a,bx,1)-(a*(x-1)-m1;)

Pa(a,1,2) = Pa(a,Pa(a,m2;,1),1) = (a*(a*m2;1)m1;1)m1;

Pa(a,b,2) = Pa(a,Pa(a,b-,2),1) =>> Pa(a,..m2;.,1) [#b1#]
          = (a*..m2;.1)m1; [#b1#]
          = (m2;+1)*a^(b+1) + (m1;+1)*(a^i+...+1)-1 [a^i#b]

It looks like we're at a loss, but it's not too bad. To continue, consider case a=2 and put mc=1 as before.

Pa(2,b,2) = (m+1)*2^(b+2)-m-2 [m:1]
          = 2^(b+3)-3 = I(2,b3,2)---
Pa(2,1,3) = Pa(2,Pa(2,m3;,2),2) [m3;:1] = 2^2^4-3
Pa(2,b,3) = 2^^(b+3)-3 = I(2,b3,3)---
Pa(2,b,c) = 2*...(b+3)-3 [*#c] = I(2,b3,c)---

§4.4.4. The catch-all

Fill in mc=a-2 to translate expressions of Pa where a>2 to super-power format.

Pa(a,b,1) [a>2] = a*(b+1)+m1; [m1;:a--] = (a*b2)--
Pa(a,b,2) [a>2] = (m2;+2)*a^(b+1)-2 [m2;:a--] = (a**b2)--
Pa(a,1,3) [a>2] = Pa(a,Pa(a,m3;,2),2) = a^(a^(m3;+2))-2
Pa(a,b,3) [a>2] =>> Pa(a,..m3;.,2) [#b1# m3;:a--]
                = a^^(b+2)-2 = (a***b2)--
Pa(a,b,c) [a>2 mc;:a--] = (a*...b2)-- [*#c] = I(a,b2,c)--

This works for all parameters c, which means we can completely translate our extension of Péter's recursion to a primitive recursive definition in bigI or bigE.
For all n>0 in Péter's initial successor formula Pé(a)=a+n the recursion keeps increasing as fast as super-powers and therefore stays below Ackermann row level.

Rewrite the basic definition of our operatorial version of Péter's recursion.

  • Pa(X,0) = Pa(X)
  • Pa(a) = a
  • Pa(a,b) = Pa(ab) = ab
  • Pa(a,1,c1) [a=1 | a=2] = Pa(1,Pa(1,1,c),c)
  • Pa(a11,1,c1) [a>0] = Pa(a,Pa(a,a,c),c)
  • Pa(a,b,c) = Pa(a,Pa(a,b-,c),c-) = I(2,b3,c-)--- [a=1]
                                    = I(2,b3,c)--- [a=2]
                                    = I(a,b2,c)-- [a>2]

under 2010 construction

Ψ.5. First row of parameters

§5.0.1. Crafting by grafting

Ceramic hand with mathematical inscription

And the Cyclopes then gave Zeus thunder and lightning and a thunderbolt, and on Pluto they bestowed a helmet and on Poseidon a trident.
Armed with these weapons the gods overcame the Titans, shut them up in Tartarus, and appointed the Hundred-handers their guards. But they themselves cast lots for the sovereignty, and to Zeus was alloted the dominion of the sky, to Poseidon the dominion of the sea, and to Pluto the dominion in Hades...

– Apollodorus, The Library

To expand the super-power operatorials defined in the previous chapter to a row of parameters – or generally to move from one class level of functions to the next – there are two approaches.
You can either keep the basic rules and supplement them with a different set of axioms for the rest of the row – this we call grafting – or you can construct the whole row or higher level by extending the earlier axioms, so that for example the rule for bigE's parameter c is now included in bigE's row formula for the c,..,z range of parameters.

In this chapter the basic parameter definition of operatorials will be expanded in a handful of illustrative ways, where it's often a matter of taste which rules apply naturally.
With E(a,b,c) = I(a,b,c1) bigE and bigI both covered super-powers in the first three parameters. The rest of bigE's front row will be modelled after unmixed majority arrows, while bigI implements mixed minority stars which cover a whole row of arrow subscripts in a single parameter d with the help of waitors.

A function that resembles grafting is Conway's chained arrow notation, which expands super-powers to a row of iterators of arbitrary length. Chained arrows are very much the consequence of the basic 3 parameters, but Conway designed them carefully to stand alone.

When Van NovaLoka first became fascinated with the subject of Big numbers, totally oblivious, she used grafting to scratch at the Ackermann numbers (her focus was less on functions).
The invention of the so called Anchorman, Barman, Caveman, Doorman, etc. numbers M corresponded directly to the value and position of final parameters in the following recursive function O(R,z).
Here's a review of the formulas for the first row in Van NovaLoka's colourful essay.

O(a,b,c1) = a*...b [*#c]
M(p,1,r) = O(p,...) [p#r]
M(p,q1,r) = O(v,...) [v#r v:M(p,q,r)]
O(pi;,...,q) [pi;#r r>2] = O(v,...) [v#r v:M(pi;,q,r)]

The practice to put several functions in a set of equations is confusing, we agree, but perhaps you've noticed the nested substitution of numbers M for parameters in O. Without recourse to a helper function, a similar set of equations can be expressed by a single operatorial Om and some nifty meta-statements.
In the example rules for functions with r=4 parameters you learn how Om is nested to depth d before the multitude of 3^d deepest substituents drop their final parameter to become super-powers.

  • Om(a,b,c) = I(a,b,c) [Om shifts addition back to c=0]
  • Om(a,b,c,1) = Om(Om(a,a,a),Om(b,b,b),Om(c,c,c))
  • Om(a,b,c,d1) = Om(Om(a,a,a,d),Om(b,b,b,d),Om(c,c,c,d))
  • Om(ai,..,z1) [ai#r r>2] =
       Om(Om(ai,..,z),.:.,h) [ai#r Om(ai,..,z)#r h=0]

The last rule is awesome, as every free parameter is replaced by an iteration of Ackermann numbers. Note that the 4-dot illipsis sign .:. owns and increments the i for every subexpression Om(ai,..,z) here.
Obviously outer iterator h need not be 0 (and dropped). It can be given any value as long as the reducibility of the expression is preserved – any outer iterator 0<h<z1 could turn Om' into a faster function.
But, because we'd like to avoid a choice-type of functional subexpression, an original operatorial with an iterator z1 evaluates naturally to an outer iterator of either h=0 or h=z in the reduced expression.

§5.0.2. General recursive baby steps

Later at Van NovaLoka's old weblog in another function O' grafted on super-powers, she took predecessor h=z as outer iterator, thereby increasing the size of the numbers expressible by the same parameter values.
Here we'll call that particular function On and compare it with Om' where h=z (which we call Omz) to see if these functions result (on average) in equally large numbers, given the same super-power stock a,b,c.

  • On(a,b,c,1) = On(On(a,b,c),On(a,b,c),On(a,b,c))
  • On(a,b,c,d1) = On(On(a,b,c,d),On(a,b,c,d),On(a,b,c,d),d)
  • On(a,b,c,d,e1) = On(v,v,v,v,e) [v:On(a,b,c,d,e)]
  • On(ai,..,z1) [ai#r r>2] =
       On(On(ai,.:.,z),..,h) [ai#r On(ai,..,z)#r h=z]

Adapt the main rule of Om to create a function Omz = Om' [h=z] with the same maximal iterator h as in On. Then to gauge Omz versus On we just need to compare the final substituent Omz(ar;,..,z) [ar;#r] with On(ai,..,z) [ai#r] because these have decisive bigO strength.
In case of equal parameters a,.. both functions do not differ, but otherwise the last substituent of On has the value x=ar-; in its penultimate parameter, while the same substituent in Omz holds a sequence of undiluted y=ar; so that the difference between Omz and On boils down to the relative size of the two parameters x,y.
Therefore both functions have an equal chance of producing roughly equally large numbers.

Omz(a,..,z1) [a#r] = On(a,..,z1) [a#r]
x<y <=> On(R,x,y,z) < Omz(R,x,y,z)

The same reasoning applies to function Ono(R,z1) = On'(R,z1) [h=0] versus function Om.
If x<y then Ono < Om so that the numbers expressible by Om and Ono are roughly of equal size.

Nevertheless, some recursive functions are significantly slower than function Om in the first row. As an example we'll graft Ob [h=0] on super-powers, defining Ob so it stops growing much further.

  • Ob(a,b,c) = a*..b [*#c]
  • Ob(a,b,R,z1) = Ob(a,Ob(a,b,R,z),R)
  • Ob(a,b,c,1) = a*..a*..b [*#c *#c] ~ b*..3 [*#c1 a~b]
  • Ob(a,b,c,d) ~ b*..d2 [*#c1 a~b]
  • Ob(a,b,c,d,1) ~ b*..d2*..d2 [*#c1 *#c1 a~b]
  • Ob(a,b,c,d,e) ~ d2*..e2 [*#c2 a~b~d2]
  • Ob(a,b,c,ti;,..z) [ti;,#r] =
       Ob(a,..b.,c) [#u#] where u = ti;1*..z1 [ti;1*#r]
      ~ tr;2*..z2 [*#cr1 a~b~ti;2 i<r]

You can see that row length in Ob merely adds to the number of stars *.. counted by c. Such functions Obr still belong to the super-power class of functions, below the first Ackermann jump.
Chapter 5.5 generalizes the reason why Ob is so slow – higher parameters than b are never iterated over.

# A walk on the Ackermann level

Any function rule which limits the substitution position to some fixed receptor, even though higher than Ob's b, must be structurally slower than Om, because Om keeps expanding its row of receptors to the right.
We count these limit positions as our first super-power-like steps {Κ.2.1.n} past the Ackermann jump, and each step takes us further from the basic primitive recursive level {Κ.1.m} of functions.

Functions {Om,Ono,Og} belong to the same class as {Omz,On} which covers the first general recursive suborder {Κ.2.1} in the first row, waiting for the second Ackermann jump.
Note that the super-power stock Om and On were grafted on, does not play a major role in smoothing out the differences between them. Pivotal is that both original definitions (before grafting) already require a full row to fill the Grzegorczyk hierarchy. The next chapter and later Og0 confirms this explanation.

Conway's chained arrows express every step {Κ.2.1.d} of the row of Om with their 4th parameter, and so they make the 2nd Ackermann jump by the 4th chained arrow (and next parameter).
By recursive grafting on Og we shall prove, that the full row of chained arrows cover the enumeration of Ackermann jumps and sublevels {Κ.2.p} totally.

§5.0.3. Multiple substitution is futile

In this chapter we'll show the meagre consequences of multiple substitution in an operatorial function Nn, which looks fast in the beginning, but actually needs a whole parameter row to cover merely Grzegorczyk's subclasses. Function Nn rigorously applies the rules of On from the start – after Nn(a,1) actually.

Because Nn is incapable of reaching the Ackermann level within its first row, this proves that a whole row of parameters in On cannot force the next Ackermann-like jump to a higher recursive sublevel, and that On must stay firmly within the first recursive class on the Ackermann level. This despite of the fact that Om was grafted on Ackermann numbers and that On increases faster than Om (as shown above).
Remember that the Ackermann function Ack_ψ is of a higher order than the super-powers of Ack_φ, because it jumped from primitive recursion. By contrast, Nn is incapable of transcending primitive recursion in its first row.

Young woman with dark hair and a squint Rósa Politzer
Budapest ±1923

It was Rózsa Péter/Politzer who gave a rigorous proof that unnested multiple recursion does not lead out of the class of primitive recursive functions.
Generally multiple substitution over a range of parameters does not create significantly larger numbers than single substitution applied to its highest parameter. Because multiple substitution is a tedious, unnatural and ineffective procedure, we'd best choose another policy to optimize operatorials.

The example function is pretty straightforward – students can easily check that Nn maintains reducibility. The weak point of Nn is its induction step, which is not so efficient because the final parameter z is reduced twice in each step – counting down z in both the outer and the inner expression.
The generous substitution of free parameters in the outer expression of Nn compensates for this, but still multiple substitution is comparatively slow.

In the formula for Nn the generic rules of bigO apply and addition happens naturally when variables are adjoined. The variable v that substitutes for every free parameter is determined by the meta-statements that follow.

  • Nn(a,1) = Nn(1..) [1#a 1:a]
            = Nn(a..) [a#a] = a*a
  • Nn(a,b1) = Nn(v,b) [v:Nn(a,b)] = a**11**11**b  ~ 2^^3\^b1
  • Nn(a,b,1) = Nn(v,v) [v:Nn(a,b)]  ~ 2^^6\^b
  • Nn(a,b,c1) = Nn(v,v,c) [v:Nn(a,b,c)]  ~ 2^^(3*(c+2))\^b
  • Nn(R,y,z1) = Nn(v,..,z) [v#r1 v:Nn(R,y,z)]  where R = ti;,.. [ti;#r]
      ~ 2^..(2^(z+1))\^..(2^y)† [^#r1 ^#r]  ~ 11*..(11**z1)111† [*#r11]

We use backslashed \ operators to enhance notation precision and a dagger † to cut the calculation short.
By the 5th parameter Nn progresses practically on a par with the super-power ***** of bigI. According to our last calculation, at the end of its first row Nn will converge close between two super-power limits.

I(2,I(2,tn;,2),n) <~ Nn(t1;,..,tn;) <~ I(3,3,n1) [n↑∞]

The point to pay attention to is that all parameters in Nn's first row stay well inside super-power limits, so that Nn will only reach Ackermann functionality past the first dimension.
While Nn is groping for emancipation at the right edge of its parameter row, Conway's chained arrows as well as bigA, bigE and bigI become Ackermann functions in their 4th parameter, and bigU already in its 3d.

The main difference between Om and On lies, as shown above, in the value h of the outer iterator. But this doesn't even count as a decisive step in our classification system.
Suppose we'd remove Om from its super-power stock to define a function Mm.
Let Mm(a,b) = a*b and Mm(a,b,c1) = Mm(Mm(a,a,c),Mm(b,b,c)) then the first 3 parameters of Mm remain in Kalmár's elementary class of functions, well below the power towers pointing to tetration.
Define the rest of Mm(R,z) like we defined Om before and Mm will take the whole row to match super-powers.

Mm(a,b,1) = a^2*b^2
Mm(a,b,c) = a^2^c*b^2^c
Mm(a,b,c,1) ~ ab^2^c^2^c1
Mm(a,b,c,d) ~ ab^2^c^2^..c1 [#d1] ~ abc***4*d1
Mm(a,b,c,d,e) = abc***..4*d1 [#e1] ~ abcd****e2
Mm(ti;,..z) [ti;,#n] ~ t*..z2 [*#n]

The notation with an algorithmic mean t or ab.. indicates, that when parameters ti;.. are common non-extreme integers these are less relevant to the result.
The first row of Mm increases with super-power speed, like Nn above (albeit one count of c slower), and evolves on a par with the simpler ur-function Og0 of Graham's Og below. In fact Mm reduces to the same approximate expression as Ôg0 towards the row limit – a clear example that multiple substitution cannot help you in the end.

# 5.1. Graham's Og

§5.1.1. Expressing a world record

What we call Graham's Og is the little brother of Ono, defined above from On using multiple substitution, although substitution in Og is a single affair and only the penultimate parameter is subject for it. On top of that Graham's Ôg starts off sooner with exponentiation at the count of c=1 (hence the arrow-like circumflex on the O).

The operatorial function Ôg is especially suited to give an exact formulation of a famous number of Ronald Graham. The final entry in the Dictionary of curious and interesting numbers tells the tale of Graham's number.

The World Champion largest number, listed in the Guinness Book of Records, is an upper bound, derived by R.L. Graham from a problem in a part of combinatorics called Ramsey theory.
Graham's number cannot be expressed using the conventional notation of powers...

Consider the largish number v1; = 3^...3 [^#v] with v = 3^^^^3 arrows.
Next construct the incredible, ungraspable number v2; = 3^...3 [^#v1;].
Now continue this process vd1; = 3^...3 [^#vd;] until step d+1 = 63.
That is Graham's number.

Postscript

Since Graham and Rothschild wrote their "Ramsey's Theorem for n-Parameter Sets" in 1971, Graham's upper bound didn't change. The lower bound for a solution – which experts think is a small number – increased from 6 to 11 (Exoo 2003) and recently to 13 (Jerome Barkley 2008).

Ron juggling with four balls in front of blackboard Ron Graham
Juggler of Og

With this information we can devise an operatorial function Ôg that expresses Graham's number exactly in the proposed fashion as Ôg(3,3,4,63)
Grafted on super-powers, which is the dominant rule of Og.

  • Ôg(a,b,c) = I(a,b,c1) = a^...b [^#c]
  • Og(a,b,c,1) = Og(a,b,Og(a,b,c))
  • Og(a,b,c,d1) = Og(a,b,Og(a,b,c,d))
  • Og(R,y,z1) = Og(R,Og(R,y,z))

Circumflexed Ô functions start with multiplication instead of addition of 2 parameters. This is a matter of initialisation and of minor importance. The main axiom above applies to Ôg too.
Ôg travels not nearly as fast as bigE or our champion bigI, and it doesn't leap to the next recursive order. The progression of Graham's Og is comparable to our baby Om.
The fact that Og uses a single substituent does not reduce speed that much. Because multiple substitution is futile both Og and Om belong to the same class of recursive functions, together with On, which increases hardly any faster towards the end of the row.

The substituent of Og (with addition at c=0) is the same as that of Ono = On' [h=0] and by analogy we can define a new function Of with the same substituent as Om [h=0] and check that Of and Og roughly keep pace.
An example of Of(a,b,c,d1) = Of(a,b,Of(c,c,c,d))

It's trivial that Ôg has an edge over function On. Substitution of the rightmost parameter is dominant and Ôg has a head start, so On will perpetually lag behind Ôg, provided the original parameter values are not too extreme.
Despite its handicaps (single substitution, dropping the outer iterator) Og apparently has the same expressive power as any other 2nd order function.

On(x,x,y,1) = I(I(x,x,y),I(x,x,y),I(x,x,y)) <
              I(x,x,I(x,x,y1)1) = Ôg(x,x,Ôg(x,x,y)) = Ôg(x,x,y,1)
Og(R) < On(R) < Ôg(R)

Graham's number Ôg(3,3,-2,Ôg(4,3,1)) can be approximated by chained arrows or by bigE. Here operatorial bigE represents typed majority arrows, and by translation from chained arrows the above expression in Ôg of Graham's number rolls out.
Imagine the fathomless space in between such relatively close Big numbers!

   m→n→64→2 <
E(3,65,2,1) < Ôg(3,3,4,63) < E(4,65,2,1) < 2→3→65→2

§5.1.2. How Og hops back

With good reason we found that the functions {Omh,Onh,Og,..} dwell in the same recursive order next to super-powers. Then we take a step back to measure the ur-functions Nn and Mm, which remain primitive recursive, although they apply multiple substitution to a whole row of parameters.

Similarly we'll define the ur-function Ôg0, which applies the rules of Graham's Og from the start, only to find that the Ackermann level is never reached. Og0's first row of parameters stays on the primitive recursive level – well before the jump to the next sublevel on the Ackermann row.
From this we may conclude that the rules of Graham's Og are essentially slower than the main super-power rule, even though functions Ogn typically operate on a higher class of numbers. It is the grafting that gets them there.

  • Ôg0(a,b) = a*b
  • Og0(R,y,z1) = Og0(R,Og0(R,y,z))
Ôg0(a,b,1) = Ôg0(a,Ôg0(a,b)) = a*a*b
Ôg0(a,b,c) = a^c1*b ~ a^c2 [a~b]
Ôg0(a,b,c,1) = a^(a^c*a*b)*a*b
Ôg0(a,b,c,d) = (a^..c.*a*b) [#d1#] ~ abc^^d2
Ôg0(a,b,c,d,1) ~ abc^^abc^^d2
Ôg0(a,b,c,d,e) ~ abc^^^e1\^^d2 ~ abcd^^^e2
Ôg0(ai,...z) [ai,#n1] ~ a^..z2 [^#n]

To get the approximation for Og0 just replace arrows ^.. [#c] by stars *.. [#c]
These functions Og0 are clearly Grzegorczyk order functions, though it takes a lengthy row of parameters to get a high value of c. This means the ur-graft Og0 is covered with the 3rd parameter c of chained arrows.
Then we can draw the conclusion that Og1 (Graham's Og), having the same rules as Og0 past its 3 parameter stock, will behave the same, in that it won't make another Ackermann jump and with its first row Og1 will cover the second recursive order completely.

We'll prepare Ôg0 for the job of initializing the sequence of recursive grafts on Qy.
The following equations can be worked out as an exercise.

Qy(a,b) = a→b = a*b = Ôg(a,b) = Ôg0(a,b)
Qy(a,1,c) = Qy(a,Qy(a,a,c-),c-) = Ôg0(a,...Ôg0(a,...)) [a,#c a#c1]
Qy(a,b,c) = Qy(a,Qy(a,b-,c),c-) = Ôg0(a,...,b) [a#c1]

§5.1.3. How Og is jumped over

What lies beyond 2nd order recursion? Who makes the second jump and the next, counting an arbitrary number of Ackermann jumps? We've suggested before that Conway's chained arrows fill the bill. Now we'll show how the operatorial successor Qy of chained arrows covers the same order as expressed by the first row of Ôgwith its single 4th parameter d.
Define the operatorial function Qy based on Conway's chained arrows – to graft Graham's Ôg on.
Because the 3 parameter rule has precedence all R = ti,... [ti#r r>1] have at least 2 parameters.

  • a→b→c = Qy(a,b,c) = a^...b [^#c] [same base]
  • R→y1→1 < Qy(R,y1,1) = Qy(R,Qy(R,y,1)) [drops z=0]
  • Qy(R,1,z1) = Qy(R,Qy(R,0,z1),z) = Qy(R,Qy(R,Qy(R,-,z1),z),z)
               = Qy(R,Qy(R,Qy(R),z),z) [O: nests 2 extra iterations,
    compare :→]
      R→3→z1 = R→(R→(R→1→z1)→z)→z = R→(R→(R)→z)→z
  • Qy(R,y1,z1) = Qy(R,Qy(R,y,z1),z) [same main rule]

This tells us chained arrows R→x→y1→z1 are slower than Qy(R,x,y,z) given 4 or more parameters. And both expressions are predecessors of R→x→y→z2 which increases notably faster (its outer iterator dominates).

  • a→b→c→1 = Qy(a,b,c) = Ôg(a,b,c) = a^...b [^#c]
  • Qy(a,b,1,1) = Qy(a,b,Qy(a,b,a*b)) = Ôg(a,b,a*b,1)
  • Qy(a,b,c,1) = Qy(a,b,Qy(a,b,c-,1)) = Qy(a,b,..a*b.) [#c1#]
                = Ôg(a,b,a*b,c)
  • Qy(a,b,1,2) = Qy(a,b,Qy(a,b,a*b,1),1)
                = Ôg(a,b,a*b,Ôg(a,b,a*b,a*b)) = Ôg(a,b,a*b,a*b,1)
  • Qy(a,b,2,2) = Qy(a,b,Qy(a,b,1,2),1)
                = Ôg(a,b,a*b,Ôg(a,b,a*b,a*b,1)) = Ôg(a,b,a*b,a*b,2)
  • Qy(a,b,c,2) = Qy(a,b,Qy(a,b,c-,2),1)
                = Ôg(a,b,a*b,a*b,c)
  • Qy(a,b,1,d) = Qy(a,b,Qy(a,b,a*b,d-),d-)
                = Ôg(a,b,a*b,...,Ôg(a,b,a*b,...)) [a*b#d- a*b#d]
                = Ôg(a,b,a*b,...,1) [a*b#d]
  • a→b→c1→d1 < Qy(a,b,c,d) = Ôg(a,b,a*b,...,c) [a*b#d]

The first row of Graham's Ôg creates a new super-exponential order past the Ackermann jump, and Conway's chained arrows cover this whole subclass with their 4th parameter d.
The length of Og's row keeps increasing as fast as chained arrows' final parameter value, so it's definitely the 4th chained arrow which jumps to the next sublevel of the Ackermann row.

§5.1.4. Recursive grafting on Og

A row of Ôg0 is equal to 3 parameters of chained arrows or Qy, and a row of Ôg1 takes 4 parameters of Qy.
Suppose we'd graft a similar function Ôg2 on Qy(a,b,c,d) instead of super-powers, then Ôg2 expresses the 3d recursive order with its first row of parameters. But how much of the value of the 5th chained arrow parameter does that take? And ultimately – do we need a whole row of chained arrows to express all these recursive Ackermann functions completely or will a limited number of parameters be sufficient?

Find the key to enumerate the whole level of countable Ackermann jumps with a single coefficient.
Start with the two axioms of Ôg2 and then write out the necessary calculations like we did before.

  • Ôg2(a,b,c,d) = Qy(a,b,c,d)
  • Og2(R,y,z1) = Og2(R,Og2(R,y,z))
  • Qy(a,b,c,1,1) = Qy(a,b,c,Qy(a,b,c,Qy(a,b,c)))
                  = Ôg2(a,b,c,Ôg2(a,b,c),1)
  • Qy(a,b,c,d,1) = Qy(a,b,c,Qy(a,b,c,d-,1))
                  = Ôg2(a,b,c,Ôg2(a,b,c),d)
  • Qy(a,b,c,1,2) = Qy(a,b,c,Qy(a,b,c,Qy(a,b,c),1),1)
                  = Ôg2(a,b,c,Ôg2(a,b,c),Ôg2(a,b,c),1)
  • Qy(a,b,c,d,2) = Qy(a,b,c,Qy(a,b,c,d-,2),1)
                  = Ôg2(a,b,c,Ôg2(a,b,c),Ôg2(a,b,c),d)
  • Qy(a,b,c,d,e) = Ôg2(a,b,c,v,...,d) [v#e v:Ôg2(a,b,c)]

The family of functions indexed as Ôgn, share the main rule of Og and are recursively grafted on the operatorial Qy (increasing slightly faster than Conway's chained arrows) with parameter row length n+2. With each next grafting n>0 function Ôgn jumps to a new subclass on the Ackermann level.
Give the general formula of recursive grafting on super-powers, which translates expressions of Ôgn into Qy. First the stock, then the shoot. The first shoot is the front row of Ôg0 super-powers.

  • Ôgn(a,ti;,..) [ti;#n1] = Qy(a,ti;,..) [ti;#n1]
  • Qy(a,ti;,..y,z) [ti;,#n] = Ôgn(a,ti;,..v,..y) [ti;,#n v,#z]
                   where v = Ôgn(a,ti;,..) [ti;#n]

So ultimately, yes, the row of chained arrows covers the recursive function orders singly enumerated by Ackermann jumps – what we call the Ackermann level of functions.
That primitive recursion should be the initial function order is not evident (addition is a likely candidate at the root). But here expressing Ôg in Qy we cannot graft any lower than on Ôg0(a,b) = a*b because the early 1 parameter stock Ôg-(a) = a leads to contradiction in this system.

A row of Og = Og1 acts as a 2nd row, appended after the super-power front row of Og0, which is the stock Og is grafted on. The following row of Og2 is like a 3d row in the square of Og0 or a 2nd row in the square of Og.
From the above follows that a row of chained arrow parameters of length n3 is about as fast as an n row square of Og, and that a row of chained arrow parameters of length ng2 generally increases as fast as an n row square of Ogg.
To put it bluntly – a square array of Og is equivalent to a row of chained arrows – the super-power grafting square.

Summarizing our proof for the super-power grafting square

We knew by analogy with Og0 that Og1 should cover a whole new super-power-type order with its first row of parameters. We defined the operatorial Qy (an altered form of chained arrows) to show that 4 parameter Qy and a specific expression over the row of Og1 are equally fast.

In this chapter we extrapolated the method of grafting so it could be used recursively, taking n2 parameter Qy as a stock for the first n2 parameters of the next function Ogn covering the n1th recursive order.
Because Qy is exactly expressible by functions Ogn and because Qy uses similar rules as Conway's chained arrows (and does not increase significantly faster), it follows that the first row of chained arrows parameters covers the rest of the Ackermann level, where every n2th chained arrow designates the nth jump.

# 5.2. Front row bigE

§5.2.1. Home of subscripted arrows

The first row of parameters of the operatorial function bigE continues the basic definitions for 3 parameters from chapter 4, according to the plan introduced by the general formula for subscripted majority arrows in chapter 3.
Because bigE is our majority arrow function, the first 4 parameters a,b,c,d in E() are equal to the operations on item a with iterator b, where c counts the arrowhead operators ^ typed by a single subscript d.
The fabulous fourth parameter d takes us beyond super-powers and is explained below.

  • E(a,1,c,d) = a
  • E(a,b,1,1) = E(a,b,b) = a^1;b = a^...b [^#b]
  • E(a,b,1,d1) = E(a,b,b,d) = a^d1;b = a^d;...b [^#b]
  • E(a,b1,c1,d) = E(a,E(a,b,c1,d),c,d) = a^d;...b1 [^d;#c1]
               =>> E(a,..a.,c,d) [#b#] = a^d;.. ... [^d;#c a#b1]

The definition of the first row of parameters of bigE follows the same pattern.

  • E(a,b,1,...) [1#k k>1] = E(a,b,...) [b#k]
  • E(a,b,1,...,n1,R) [1#k k>0] = E(a,b,...,n,R) [b#k1]
  • E(a,1,c1,R) = E(a,1,c,R) =>> E(a,1) = a
  • E(a,b1,c1,R) = E(a,E(a,b,c1,R),c,R) = a^R;...b1 [^R;#c1]
               =>> E(a,..a.,c,R) [#b#] = a^R;.. ... [^R;#c a#b1]

Recursive scheme Nº2 for bigE with a single row of parameters of arbitrary length.

  1. 1.1. Root recursion: multiplication [in basic scheme]
  2. 2.1. Upload example: substitution of a reduced row <= 2.2
  3. 2.2. Partial upload: upward substitution of a range of parameters
  4. 2.3. Parameter destruction: row iterator collapse => 1.3
  5. 2.4. Main row iteration: super-chained(?) expansion => 1.4

What's so great about the expansion of bigE is that its reduction is such a lengthy undertaking. Before the final parameter z is counted down a lot of water has flowed under the bridge and the basic iterator b is fat and juicy, spawning its value high up to replace the penultimate parameter y=1.
This makes numbers grow very big indeed, much bigger than those defined by Conway's chained arrow notation.

The rule that a lower order iterator (left parameter) substitutes for an arbitrary iterator in higher position (right parameter), can be taken as the defining rule of the class of operatorial functions of which bigE and bigA are prominent examples.
This so called uploading was deployed in the same way by the ^R; arrow operator subscripts for bigE.
The multiple substitution applied by this specific type of uploading looks approximately a level less important.

§5.2.2. Race against chained arrows

We've explored the widening gap between bigE's subscripted arrows and Conway's chained arrows in an example in chapter 3. Subscripted arrows win the race, that's not the point, but how fast are both functions exactly?
The definition for the first row of chained arrows is repeated here.

  • a→b = a^b
  • a→b→c = E(a,b,c)
  • R→1 = R
  • R→1→z = R
  • R→y1→z1 = R→(R→y→z1)→z

Compare or approximate chained arrows with bigE past 3 parameters, like we expressed bigE in bigI.
Using the following equations we positioned Graham's number between two expressions of bigE.

  • a→b→c→1 = E(a,b,c)
  • a→b→2→2 = a→b→(a→b) = E(a,b,a^b) <~ E(a^b,a^b,1,1)
  • a→b→3→2 = E(a,b,E(a,b,a^b)) <~ E(a^b,3,2,1)
  • a→b→c1→2 = a→b→(..a→b.) [#c#] = E(a,b,..a^b.) [#c#]
     <~ E(a^b,c1,2,1) = E(a^b,v,v) [v:E(a^b,c,2,1)]

Because the final parameter tends to dominate the result, we inferred that the terms left and right of the predecessor sign <~ are close enough (approximate) within this context. But for small extreme values where a^b < 5 these equations do not offer proper (algorithmic) estimates.

  • a→b→2→3 = a→b→(a→b)→2 <~ E(a^b,a^b,2,1)
  • a→b→3→3 <~ E(a^b,E(a^b,a^b,2,1),2,1) = E(a^b,3,3,1)
  • a→b→c1→3 = a→b→(..a→b.)→2 [#c#] <~ E(a^b,c1,3,1)
  • a→b→c1→d1 = a→b→(..a→b.)→d [#c#] <~ E(a^b,c1,d1,1)

The question is how bigE's 4th parameter increases, while chained arrows expand to higher parameters.
For extra examples, click here!

  • a→b→c→2→2 = a→b→c→(a→b→c) <~ E(a^b,c,E(a,b,c),1)
     <~ E(a^b,E(a,b,c),1,2)
    <~ E(E(a,b,c),2,2,2)
  • a→b→c→3→2 <~ E(a^b,c,a→b→c→2→2,1) <~ E(E(a,b,c),3,2,2)
  • a→b→c→d→2 <~ E(E(a,b,c),d,2,2)
  • a→b→c→2→e1 <~ E(E(a,b,c),a→b→c,e,2)
  • a→b→c→d→e <~ E(E(a,b,c),d,e,2)
  • a→b→c→d→2→2 <~ E(E(a,b,c),d,E(a^b,c,d,1),2)
     <~ E(E(a,b,c),E(a^b,c,d,1),1,3) <~
    E(E(a^b,c,d,1),2,2,3)
  • a→b→c→d→e→f <~ E(E(a^b,c,d,1),e,f,3)
  • a→b→c→d→e→f→g <~ E(E(E(a,b,c),d,e,2),f,g,4)
  • a→b→c→d→e→f→g→h <~ E(E(E(a^b,c,d,1),e,f,3),g,h,5)

It has become obvious that bigE covers the first row of chained arrows with its first 4 parameters. Interestingly we've seen this phenomenon with minority stars versus majority arrows in chapter 3.1 – providing testimony that bigI is as fast as a whole row of chained arrows, merely by appending a unit value I(a,b,c,1)

ai→..y→z [ai→#n] <~ E(ai→..,y,z,n-) [ai#n]
                 <~ E(ai^..,y,z,n) or I(ai*..,yz,n,1) [ai#n]

When n=0 in the above formula we have E(0,b,c,-) < b→c and from this we conjecture that E(a,b,c,-) = E(b,c) and by inverse construction that a negative final parameter value of -*z let drop a number z of leftmost parameters starting with item a.

Indian number 2^2*3^3*4^4*5^5*6^6*7^7*8^8*9^9*10^10 engraved in ceramic foot

# 5.3. Front row bigI with waitor

A thousand heads has Purusha,
a thousand eyes, a thousand feet.

On every side pervading earth
he fills a space ten fingers wide.

This Purusha is all that yet has been
and all that is to be...

Rig Veda 10:90

Under 2010 Construction

§5.3.1. Home of subscripted stars

An operatorial bigI which covers mixed minority stars in a single row of parameters is harder to achieve. With one type-subscript d stars pass by a whole row of arrow subscripts or parameters R = d,..,z of bigE. It seems the function concept itself is too slow to contain bigI's operator expansion!
Let's see what actually happens when mixed stars reduce and mimic that behaviour in an augmented form of bigI.

a*1;*1;*1;b [c=3] = a*1;*1;*..b [*#b]
               = a*1;*1;*..(a*1;*1;*..b-) [*#b- *#b]
             =>> a*1;*1;*.. ... [*#b- a#b]
I(a,b,c1,1) = I(w,b,1,1) [w:Í(a,1,c,1)] = I(w,b,b)
          =>> I(w,..a.,b-) [#b-#]

The newly introduced functional construct w is called a waitor – in the form of bigO notated as Ó – inserted with certain restrictions imposed on its evaluation. Normally inner expressions can/must be reduced to natural number first, but not waitors, which have a lower functional precedence depending on their position in the outer expression.

When in an operatorial bigI I(a,b,c1,R) = I(w,b,1,R) a waitor w = Í(a,1,c,R) is substituted for the item parameter a (in 1st outer position), this item waitor is not a function, but it is iterated over and waits until all parameters except the initial iterator (in 2nd outer position) are resolved. With just two parameters left the next reduction step will substitute the inner value b=1 in w for the outer accumulated value b' so that I(w,b') becomes a normal operatorial I(a,b',c,R) and the process can repeat itself from the start.
But in all other outer positions (except the 1st) an iterator value is necessary to drive the reduction train, and the offspring iterator parameters are evaluated first as w = I(a,1,R) = a (as usual).

With the help of a train of item waitors w, the rules for the first row of operatorial bigI can thus be formulated.
This continues the basic definition for bigI up to 3 parameters.

  • I(a,b,1,...,n1,R) [1#k k>0] = I(a,b,...,n,R) [b#k1]
  • I(a,1,c1,R) = I(a,1,c,R) =>> I(a,1,1) = a
  • I(a,b,c1,R) = I(w,b,1,R) [w:Í(a,1,c,R)]
                = a*R;..b [*R;#c1] = (a*R;..)*-R;..b [*R;#c *-R;#b]
  • I(w,b) [w:Í(a,1,R)] := I(a,b,R)

Below we'll show how this construction with waitors covers super-powers too, provided that multiplication is reduced to repeated addition by a separate rule – the repetition step of multiplication – to precede the above definition. Consequently the higher rules for I(a,b,c) [c>1] were justly marked as provisional before.
Because waitor items can't just be multiplied and have to be substituted after a single repetition step, both step and the result of multiple steps – namely multiplication – are individual constructs in the evaluation of expressions of bigI. This means that addition can keep its status as root axiom and that a primary extra axiom must be inserted here.
(Without this rule I(a,b1,1) reduces via I(Í(a,1),b,1) eventually to Í(a,1) – clearly wrong!)

  • I(a,b1,1) = I(a,I(a,b,1))
            =>> I(a,..a.) [#b#] = a... [a#b1 0*] = a*b1
  • I(a,b1,c1) = I(w,b1,1) [w:Í(a,1,c)] = I(w,I(w,b,1))
              := I(a,I(w,b,1),c) =>> I(a,..I(w,1,1).,c) [#b#]
               = I(a,..a.,c) [#b#] = a*..b1 [*#c1]

Recursive scheme Nº2 for bigI with a single row of parameters of arbitrary length.

  1. 1.1. Root axiom: addition [axiom in basic scheme]
  2. 1.3. Primary axiom: repetition step [case in basic scheme]
  3. 2.1. Partial upload: upward substitution of a range of parameters
  4. 2.2. Parameter destruction: row iterator collapse
  5. 2.3. Waitor introduction: row item substitution => 1.4
  6. 2.4. Waitor elimination: row iterator expansion => 1.5

under 2010 construction

Ψ.6. Dimensions

under 2010 construction

# 6.1. Bowers' extended arrays

Images of airplane in front of WTC building, twin tower hit at the top, issuing cloud of black smoke

The ancients have used pillars to prop up the teachings since time immemorial, and Zen practitioners through the years have made them a nesting place. Linji wants to shake the tree and loosen the nest, so he points to a pillar and asks, "Is this ordinary or sacred?"
If you understand it the instant it is uttered you are free and unhindered. But if you hesitate, you have fallen into the pit of brambles... Do you understand?

When affirmation and negation have merged, there is no way to speak of it.
The truth of ordinary and sacred, wherever it is encountered, is, after all, in your hands alone.

– Loori's True Dharma Eye 300.

§6.1.1. Front row BEAF

Thinking of operatorial dimensions Bowers' Exploding Array Function comes to mind. But what does Jonathan Bowers actually do? And how fast does BEAF increase?
In this chapter you'll learn how the array notation from the Hedrondude website works out up to multiple dimensions.

This is followed in chapter 7.2 by a rigorous theorem of the dimensional grafting cycle Bowers well-nigh envisions, when he rewrites a parameter block of n dimensions to its abstract form X^n of exponentiation – the brick he starts building from initially!
Thereupon he suggests we should call his master function BEAF and that its rules, "..can be continued as long as the structures [dimension blocks] can be defined."

In expressions of BEAF we will keep the typical curly braces {} for historic reasons. These have the same function as brackets () in delimiting comma separated sequences of parameters, but we often leave away the outer braces.
On the first row a,b,c,d runs parallel with Bowers' extended operators a.{.c}..b [#d#] so we just skip the dubious single entry is an operator story. Remarkable is that both super-exponential operators and dimension separators in BEAF can be written with brackets instead of subscripted coefficients.

We start with the five axioms that define Bowers' front row of array entries. The simpler rule for the reduction of a,b is listed first, despite that the 2nd rule covers the initial case a,1 = a and is arguably more fundamental. The same priority issue concerns rules 4 and 5, but by convention the dominant main rule is listed last.
Note that in an earlier version of his array notation Bowers evaluated {a,b} as addition, and that he later changed this to exponentiation as a strict application of the 2nd rule.

  • BEAF {}
  • a,b1 = {a,b}.. [#a 0*] =>> {a,1}.. [#a**b 0*]
         = a.. [#a**b 0*] = a^b1
  • R,1 = R
  • a,1,R = a
  • a,b1,1,..,11R [1#k] = a,..,{a,b,1,..,11R},1R [a#k1 1#k]
                      =>> {a,..,.a.,1R}.. [a#k1 #b#]
  • a,b1,c1,R [b>0 c>0] = a,{a,b,c1,R},c,R
                      =>> {a,.a.,c,R}.. [#b#]

BEAF starts off very fast, and speeds away from Conway's chained arrows in the 4th parameter.
Characteristic is BEAF's upload rule (4th axiom above). It transports the accumulated value in b to the high end of the parameter row, where the rightmost consecutive entry with value 1 is replaced by a direct predecessor (minimally counted down copy) of the original expression. Iterator b is still there, contained in the inner expression, whose evaluation will magnify b zillionfold before it takes its position as higher iterator.

Our own upload rule for bigE applies a similarly elevated substitution, but the top substitutable parameter is simply replaced by the value of b sent straight up the row (not as a subexpression).
BEAF's upload gives it a headstart with respect to the value of its dominant rightmost array entries. This makes the countdown of its first row very slow – resulting in Bowers' proverbial infinity scrapers.

And what are infinity scrapers?
They are numbers which are so big, that even though they are finite, they seem to be reaching for infinity, like a sky scraper is a building that reaches for the sky.

J. Bowers (Hedrondude) on Big numbers

Bowers had the bright idea to upload the lowest array entries a,b to the higher entries when those are counted down fully. This supersedes the mechanism of {a,2,c1} = {a,a,c} super-squares.
But in one sweep he replaces the accumulated value of the iterator b by the small item a and that's not optimal. Generally multiple substitution doesn't significantly increase function speed, but when Bowers substitutes each parameter in the left outer row for item a, this seems to jam the motor of the iteration train. A safer approach offers the upload method of bigE, where the accumulated value of b replaces all parameters 1 in series.

To count down a,b1,2,.. by the main rule in bigE creates the same nesting as counting down a,b,2,.. in BEAF with the single nest of its elevated subexpression. Consider that most b are Big numbers, then the effect of adding 1 is negligible. But the rewards from multiple substitution shouldn't be overrated too.
So at this stage it's far from clear how bigE translates to BEAF. In the next section we'll get our hands dirty and make the necessary calculations. This is the sort of thing that got Jabe stuck…

§6.1.2. Company on the Bowery

Now we will approximate Bowers' extended array function BEAF {in the middle} with Conway's chained arrows →before, and our operatorial bigE (after) on the first row. This is tough, but we've expressed Conway's chained arrows in bigE back in chapter 5.2, that helps.
To show extra examples in between stations click here!

  • a→b = a,b = E(a,b,1) = a^b
  • a→b→c = a,b,c = E(a,b,c) = a^..b [^#c]
  • a→a→2→2 = a→a→(a→a) <~
      a,3,1,2 = a,a,{a,2,1,2},1 = a,a,{a,a,a} <~
        E(a,3,2,1) = E(a,E(a,a,a),E(a,a,a))
  • a→a→b→2 = a→a→(a→a→b-→2) =>> a→a→(..1.) [#b#] <~
      a,b1,1,2 = a,a,{a,b,1,2} =>> {a,a,..a.} [#b#] <~
        E(a,b1,2,1) = E(a,v,v) [v:E(a,b,2,1)]
             =>> E(a,vi,..a.) [vi:E(a,b-i,2,1) #b# i≥0]
  • a→a→b→3 =>> a→a→(..1.)→2 [#b#] <~
      a,b1,2,2 =>> {a,..a.,1,2} [#b#] <~
        E(a,b1,3,1) =>> E(a,..a.,2,1) [#b#]
  • a→a→b→c1 =>> a→a→(..1.)→c [#b#] <~
      a,b1,c,2 =>> {a,..a.,c-,2} [#b#] <~
        E(a,b1,c1,1) =>> E(a,..a.,c,1) [#b#]
  • a→a→a→a <~ a,2,1,3 = a,a,a,2
            <~ E(a1,2,2,2) = E(a1,a1,a1,1)

While chained arrows exhaust their 4th parameter in full, BEAF requires just a single value d=2. So the latter already increases much faster, a trend which continues for the rest of Conway's row – each appended chained arrow best approximated by the next value of entry d in BEAF. On Bowers' website the proof that BEAF with its 5th entry far surpasses a whole row of chained arrows is attributed to Chris Bird.
What follows must be similar to Bird's proof – we translate a row of chained arrows to successors in BEAF and bigE. Iterated reductions =>> are notated with an ordinary equals = sign from now on. For more examples click here!

  • a→a→a→2→2 = a→a→a→(a→a→a) <~
      a,3,1,3 = a,a,{a,a,a,2},2 <~
        E(a1,3,2,2) = E(a1,v,v,1) [v:E(a1,2,2,2)]
  • a→a→a→b→2 = a→a→a→(..1.) [#b#] <~
      a,b1,1,3 = {a,a,..a.,2} [#b#] <~
        E(a1,b1,2,2) = E(a1,..a1.,1,2) [#b#]
  • a→a→a→b→c1 = a→a→a→(..1.)→c [#b#] <~
      a,b1,c,3 = {a,a,..a.,c-,3} [#b#] <~
        E(a1,b1,c1,2) = E(a1,..a1.,c,2) [#b#]
  • a→...→b→2 [a#d] = a→...→(..1.) [a#d #b#] <~
      a,b1,1,d = {a,a,..a.,d-} [#b#] <~
        E(a1,b1,2,d-) = E(a1,..a1.,1,d-) [#b#]
  • a→...→b→c1 [a#d] = a→...→(..1.)→c [a#d #b#] <~
      a,b1,c,d = {a,a,..a.,c-,d} [#b#] <~
        E(a1,b1,c1,d-) = E(a1,..a1.,c,d-) [#b#]
  • a→... [a#a2] <~ a,2,1,1,2 = a,a,a,a
                 <~ E(a,2,2,1,1) = E(a,a,a,a)

Because bigE too uses parameter d to cover the full row of chained arrows, we think BEAF will approximately match bigE in velocity over the whole front row. To prove this we need only compare expressions where these two operatorials differ significantly, that is for cases where the upload rule determines the result.
Below are two of those – for examples of earlier cases click here!

  • a,3,1,1,2 = a,a,a,{a,a,a,a} <~
      E(a,3,2,1,1) = E(a,v,v,v) [v:E(a,a,a,a)]
  • a,b1,1,1,2 = {a,a,a,..a.} [#b#] <~
      E(a,b1,2,1,1) = E(a,v,v,v) [v:E(a,b,2,1,1)]
              = E(a,vi,vi,..a.) [vi:E(a,b-i,2,1,1) #b# i≥0]
  • a,b1,c,1,2 [c>1] = {a,..a.,c-,1,2} [#b#] <~
      E(a,b1,c1,1,1) = E(a,..a.,c,1,1) [#b#]
  • a,2,1,2,2 = a,a,a,1,2 <~
      E(a1,2,2,2,1) = E(a1,a1,a1,1,1)
  • a,b1,1,d1,e1 [d>0] = {a,a,..a.,d,e1} [#b#] <~
      E(a1,b1,2,d1,e) = E(a1,v,v,d,e) [v:E(a1,b,2,d1,e)]
         = E(a1,vi,..a1.,d,e) [vi:E(a1,b-i,2,d1,e) #b# i≥0]
  • a,b1,1,..,2 [1#k] = a,..,{a,b,1,..,2} [a#k1 1#k]
                      = {a,..,..a.} [a#k1 #b#]
    <~
      E(a,b1,2,1,..) [1#k] = E(a,v,..) [v#k1 v:E(a,b,2,1,..) 1#k]
         = E(a,vi,..,:.a.) [vi:E(a,b-i,2,1,..) 1#k vi#k #b# i≥0]

The equations to compare BEAF and bigE in the first row have finally reached their general and exact form. Provided that values for a are sufficiently large, both operatorial functions increase at roughly the same speed.
We put a>2 because {2,R} =>> {2,v,1,2} = {2,2,v} = 4 while E(2,R) =>> E(2,v,v) where the accumulated value v is very Big. That's why we find the upload rule in BEAF is less esthetic than our own in bigE. We believe that an expression where a=2 and b>2 should increase by expanding it and not break down to 4.

  • {a,b,c,1,..,2} [1#k] <~ E(a,b,c1,1,..) [1#k1]
  • E(a,b,c1,R) [R≠1,..] <~ {a,b,c,R1} <~ E(a1,b,c1,R)

Instead of working out this endless progression of formulas, we could have concluded directly that BEAF and bigE are about equal by comparing their respective upload rules.
What actually happens after the upload, when in the BEAF expression we'd add 1 to the very Big uploaded value v? This seemingly insignificant 1 spawns a series of parameters xi that dwarf the original v because a very Big x is build up from nested subexpressions, each containing v1 in its high position, and the elevated xk = x- together with v constitutes every xi [0<i<k] similarly.

{a,..,v+1,z} [a#k1] =>> {a,x,1,..,v+1,z} [1#k-]
                      = {a,..,x,v,z} [a#k x>v1]
                    =>> {a,xi,..,v,z} [xi#k xi≥x-]
> E(a,v,..,z-) [v#k1 z≥1]

The conclusion must be that there is no significant difference between any of the here applied rules of BEAF and bigE from the perspective of the length of a row. Neither walks away from the other.
In particular cases an equal final value z gives bigE the edge, secondary is the value of the 3d entry c favoring BEAF and the 1st parameter a, if all else remains the same, as was proven here.

§6.1.3. Building dimension blocks

The way Jonathan Bowers explains his extending array notation past the first row is rather chaotic, supernumerary yet incomplete. We must prop up his list of rules to cover every possible expression in BEAF – see our rule 3 which drops a lonely dimension entry. Later we'll take advantage of the omission as we try to give BEAF a significant boost by re-expanding dimensions before they are counted down completely.

Bowers' principal explosive device is a standard dimension block D[a,b,c] with base items a filling all entries, sizes set equal to the accumulated value of prime iterator b and dimensions symmetrically nested and counted by an inline number c which functions at a deeper level.
Follows a recursive definition with two simple rules to construct dimension blocks. For examples click here!

  • D[a,b,1] := a,.. [a#b] (initial row)
  • D[a,b,c1] = D[a,b,c][c]... [D[a,b,c]#b] (subdimension)
  • example  D[5,3,2] := 5,5,5[1]5,5,5[1]5,5,5
         < D[4,2,3] := 4,4[1]4,4[2]4,4[1]4,4
Proud young man with beard in blue shirt Jabe Bowers
Tyler TX 1969

On Bowers' website bracketed numbers (n) are adopted as separators between nth dimensional subarrays. We will write [n] instead, which is commonly restricted with n>0 to positive integer values (in BEAF), and adopt the convention that [0] or [] stands in for ,0; or , the single comma (uncountable by default).
We use a power tandem a,...., to notate a whole dimension block, with its power ,.. separator appended. To show an alternative definition, click here!

  • D[a,b,0] = a  and [0] : ,
  • I[A,b,c1] := A[c].. [A#b] (subdivision)
  • D[a,b,c1] = I[D[a,b,c],b,c1]
            =>> I[.a.,b,i].. [#c1#] (dimension block)
  • D[a,b,c][c] := a,...., [#b ,..#c] (dimension power block)
    example  D[3,3,2][2] := 3,3,3,,3,3,3,,3,3,3,,,

Written in the format F[X] of a parametrized wildcard or word function, dimension blocks D[a,b,n] are introduced in BEAF by the axioms 6 & 7 shown below. Those subsequences are not pre-evaluated, but substituted as such [by : words, not as = values) for the reduced first row a,b in the outer expression.
Bowers' five axioms for the front row can simply be extended to multiple dimensions. This foundation is supplemented by two rules which are meant to explode the counted down base a,b by substituting it for a dimension block (at first multiple blocks are possible).

Follows the definition list of dimensional BEAF. To select the rules that introduce dimension blocks click twice!

  • BEAF {} (preceding rules take precedence,
                              word Z contains any allowed characters,
    where pZ := p[m]Z [p>0 m≥0])
  • a,b = a^b (initial rule)
  • a,1[m]Z [m≥0] = a (collapse if 2nd entry on 1st row is 1)
  • A1[mi]..1[n]Z [mi≥0 n>0] = A1[n]Z (chop off any trailing entry 1)
        so  A1,..[n]Z [1#k n>0] = A1[n]Z (drop last row entries 1)
           
    A[mi]..1 = A (when Z is empty, given that  A[ni].. = A )
            a[ni]..Z [ni>0] = a,1[ni]..Z = a (reverse rule)
  • a,b1,1,...,2Z [1#k] = a,...,c,1Z [a#k1] (upload on 1st row)
            with  c = {a,b,1,...,2Z} [1#k]
  • a,b1,2Z = a,c,1Z (main rule)
            with  c = {a,b,2Z}
  • a,b1[ni]..1,..,p1Z [[ni]#s 1#k1 p>0] =
        D[a,b1,ni][ni]..a,..,c,pZ [#s a#k] (explosive dimensional upload)
            with  c = {a,b[ni]..1,...,p1Z} [[ni]#s 1#k1]
  • a,b[ni]..p1Z [[ni]#s] = D[a,b,ni][ni]..pZ [#s] (explosion)
            each  D[a,b,ni] as defined above

Note that the rules in a definition list apply in the order given. For example in the last two axioms, if s=1 the condition that n1>0 need not be stated explicitely, because the 4th and 5th axiom evaluate expressions where n=0 first.
Also a character sequence like 1Z or pZ [p>0] should be read as p[m]Z which can simply refer to p,1Z or generally expand to p[mj]....1Z (separator series are discussed below), or reduce to p in case Z is empty.

The inline notation [ni].. opens up a new level, where a maximum number n cannot increase by evaluation, although predecessor subexpressions are nested on the right and dimension blocks [m≤n] inserted left.
Inline separators [n1] repeatedly generate dimension blocks with many [n] in the evaluation of BEAF, so there's no need for a rule to explicitely count down separator coefficients. In rule 3 we assume that Bowers drops them flat when their time is up, that is when the array on the right side of the separator has crashed to 1.

Airplane analogy

We think of p [p>1] as the outer iterator, because it is to be counted down in the outer expression. Bowers calls this entry the pilot, when it's the first iterable value right after prime entry b.
He also invented the concept of a co-pilot, which is the outer receptor directly left of the pilot. The co-pilot c is most important as a substituent in the constructive earlier rules. But in the last rule above there's no parameter fit to be co-pilot, because the pilot entry is seated in first position on the row.
All other entries in this airplane analogy of Bowers are called passengers. But the heavy ones on the right of the pilot have to wait a long time – stranded on the airport sequence Z – before their flight arrives!

§6.1.4. Diacritical remarks

In this section we want to make the transition to the operatorial format lighter for readers who are more familiar with Bowers' system. His extended arrays use a different notation than our Big operatorials and the construction of dimension blocks normally isn't our foremost objective, but overall their habitat is the same.
We translate the inline bracketed separator [n] to a subscripted comma ,n; with depth delimiter, so that the number of separated array dimensions n is equal, and the function of the support characters , for [ to open and ; for ] to close the dimension enumerator is the same. Because subscripts can be understood without ; we'll usually omit the closing semicolon, but under the hood it is still there (at least if we allow single , separators).

In BEAF a series of inline separators is torn apart at the very first reduction step – typically rule 7 – that addresses it, sprinkling individual separators [ni] in between the dimensional arrays each one of them helps define.
The short-lived inline separators [ni].. .:. [ni>ni1] that Bowers mentions are at best a precision notation for expressing various dimensional subsequences. His mixing apparatus is not robust enough to create significantly Bigger numbers, but it does offer a better resolution (is more precise) than our simplified (initially additive) commas.

Bowers' idea to mix numbers of separators feels natural. Our own translation covers all dimensions of BEAF with countable and mixable separator commas. These can either be notated as a sequence ,.. of length c1 or enumerated ,c; with a single coefficient. Here our separator system starts with a type of comma mixing that is similar to counting, simply adding the initial coefficients as defined below…..

,ci;.. .:. [,ci;#ki ,ci;..#m 0*] = ,.. [,#n]
                             = ,n-; := [n-]
where  n = (ci1*ki)... [#m 0*]

example  a,b,2;,2;p1 = a,b,,,,,,p1 = a,b,5p1
                  := a,b[5]p1 = D[a,b,5]p
       a,b[2][2]p1 = D[a,b,2]D[a,b,2]p

Take for example a sequence of [2].. in Bowers' system. When we count a single dimension higher with ,3; or ,,,, this easily surpasses all physically expressible BEAF made up of lower type than [3] separator series.
Compare a few expressions (using various separator styles) as an exercise.

{a,2[2]q1} = a,2,2;q1 = a,a,1;a,a,2;q
           = a,a,,a,a,,,q [1<q{a,2[2]..p} [2]#s] <
{a,2[2]..p1} [[2]#s] = a,a,,a,a,2;...p [#s p>1] <
  {a,2[3]p1} = a,a,,a,a,2;a,a,,a,a,3;p [s{a,2[3]p}]
             = a,2,3;p1 = a,..,..,..,p [#2 #2 #2]
                      
= a,....,p [#2 ,..#3]

The dimension block a,...., [#b ,..#n] substituting for a,b,.. [,#n1] is rock solid. It contains b^n parameter positions that first have to be counted down from a and next from increasingly Big b' refilling those passenger entries each time 1 is reached. Bowers uses that b^n as a name to classify dimension blocks.
If we'd write a,i;..:.,n; [#b ,i;..#n i≥0 0+] to define such blocks by counting dimensions with a coefficient, we fall down to the seemingly absurd context 0+ where subscripted commas do not add but relate by zeration. For to make the repetition tandem work, the rightmost of a series of commas ,p;,q; = ,q; must be left over.

However, we expect a plain repetition as for example a,a,.. .., [,#n #b^b] to increase faster, because almost b^b more pockets a can be refilled, given that b outgrows n quickly. And b^b on such a scale means next to nothing – adding an extra 1 to c in an earlier expression frankly already has Bigger consequences.
So dimension blocks are beautiful and characteristic for BEAF, but to erect the whole structure with all the lower dimensions in place is less convincing than a simple but oversized array of penultimate dimensions. The higher dimensions spread out to the lower anyway…

What matters most is the main engine of the first row. And only when the "main row" is eventually count down to two parameters, the accumulated value of prime iterator b explodes into a new oversized dimension block. One by one every subdimension is then counted down from the left until it is discarded.
Here we meet a shortcoming in BEAF, for apart from the prime block, dimension sizes cannot be expanded directly.

# Boosting BEAF

Instead of just collapsing counted down dimensions, a better deal would give a rule that upgrades the size of existing dimensions. Subarrays can freely be increased when they are positioned left of a higher pilot (outer iterator) as it is counted down in a long recursive loop. This means that (except for the unique final row) BEAF should keep a single entry on rows ending on 1 to be able to refill them and expand their size by Bigger b.

First we limit our old axiom to a simpler version that leaves room for the resurrection of counted down rows.
Then the new axiom follows, which at once performs three actions: On the left it replaces a,b by a prime block in Bowers' grand style. In the middle it reinflates further dimensions consisting of single parameters 1 with our method of repeating penultimate dimensions. On the right its "co-pilot" value b may look small and simplistic, but we've upheld that its strength is comparable to Bowers' inner expression in section 6.1.1 before.
Thy mighty triple formula… (Brahma the creator, Vishnu the preserver and Shiva on the outer side :3)

  • A1,1,,Z = A1,,Z
  • a,b,m;1,nj1;...,p;2Z [1#k1 nj>0 p>0] =
      a,....,a,nj;..,nj1;.:.,nk1;b,p;1Z [#b ,..#m a#b a,nj;..#k]

We don't define series a,b[mi].. here like Bowers tends to do. This obscure and evanescent construct in his notation should reduce to the same s subsequent dimension blocks as by rule 6 & 7 of BEAF.
Note that at the illipsis .:. two new comma series (typed by nj and nj1) are inserted at each step j to k.

Exploding "orphan passengers" 1 to a series of a within predecessor nj dimensions of size b delivers a significant boost to BEAF, we hope. It protects arrays from being eaten away slowly from the left, as long as "crashed pilots" can be brought back to life and restart their carreer.

under 2010 construction

§ The Biggest number

So what's the Biggest number?
That depends on the kind of system you'd like to represent your numbers in and the resources (time, money) converted to that system.

Suppose you'd only allow a number of fingers stuck up in the air, counted off verbally by a person walking by. Already a lot of motivation and organisation is required to move past the number 1000, for which more than a hundred foolish people would have to hold up both hands for up to an hour.
Dependent on the verbal skills of the person counting and the perseverance of the last batch of participants, we estimate the Guinness record of physical finger counting at no more than ~ 10^5.

On the other hand you might approve of decimals – and hexadecimal numbers – printed out on a sheet of paper. Then let me tell you, there have been print outs of the digits of the number Pi running past the million. And if you're prepared to fell some more trees – with 5000 signs on an A4 sheet, double sided, 500 in a package, you'd need 1661 packages to machine-write a hexadecimal number size ~ 10^10^10.
We'd advise against it. Why not allow digital storage instead? On your 1 TB hard disk about 2^48 bits are available to write a number as large as ~ 10^10^14.
For the same reason we expect the blue-ray DVD won't turn out to be a commercial success, we estimate the digital capacity eventually used by the human race not to exceed 2^128 bits – with shared computing this implies a practical maximum binary number of at most ~ 10^10^38.

Broadly speaking, the all time random number record will have to lie below 10^^4, for all the information our universe will ever create is far smaller Yet with mathematical means it's easy to build Bigger numbers. That's what this article is about.
Knuth already made it so much easier for you with his up-arrows. And then comes Graham's Og, Conway's chained arrows, bigE and bigI in the first row, dimensions with countable separator commas, subscriptable commas in bigI style, the Big type of functions, countable Big function types in a cycle, operable cycles, higher cycles, essential characters, meta-characters, enumerable meta-levels, etc.
Mathematical methodology seems endless, but each time a new axiom comes into play we have to be able to cope with that. The human mind does have its limitations…

Attrition "The Voice Of God" record sleeve - inverse flip

Also the number of well-defined axioms for any operatorial number system has its history (as in the book) and therefore its physical limits, and can't be standardized and automated (or can it?o)
A lot more water has to flow under the bridge before we might be able to hint at a practical mathematical limit for the largest number. Logically there can be no limit, every operatorial system is extendible and every format of extension can be enumerated with a counter that is iterable in a larger system.
One thing we do know: working exclusively with integers, or discrete units 1 and -, neither infinity nor the continuum of real numbers is reached. The unit of infinity ω is bigger than all natural numbers.

Within operatorial context the first infinity ω1; becomes countable by the same methods we counted 1. Infinitely many next ωn were expressed by the Operatorial Ω(X). Then we suggested the higher infinities ψ and its subscript functionality Ψ to lie beyond. Greek letter counting was to be our next hobby, etc... Infinities know no end.
The concept of 0=1 would be a candidate for the largest sort of infinity, where it not that the system which produces it is at once in an axiomatic state of demise. Perhaps physically the collapse of a Big or infinite system isn't that straightforward – it may take a while before we can witness all of its constituent parts fallen to the ground. In the mean time 0=1 may sort of exist and even become extended, who knows?
Clever mathematicians may think of new ways to define new concepts. The future is definitely uncertain.

But why should we make the effort to describe an extremely Big number with mathematical rigour, when hardly anybody appreciates it? A grandmaster chess player isn't necessarily best qualified to explain youngsters how to play the game.
Worse than that – when our systems become too large, we tend to lose oversight. One day a mathematical computer may become so proficient at building operatorials, that nobody understands the results any more.
It's here where the metaphysical definitions come into their own right, whose only boundary is set by intelligent imagination. This profoundly fantastic aspect makes them conspicuous, but their lack of scientific basis is compensated by ease of understanding. Man has always appreciated the hugeness of What can be like this.

# St. Peter's Subway

We'll propose a metaphysical definition of St. Peter's Subway as the Biggest number ever conceived by man. It speculates on the potential growth of the axiomatic power (and what have you) of mathematics – this thing that mathematicians do. And it's description is not absolute, but recursive.
St. Peter's Subway starts off as a parable.

Adam, the first man, comes at the gate of heaven and is asked for the Biggest number. He holds up his hand and St. Peter counts the fingers. "Five is not much", he says, but following the rules Adam is now given 5 new lives to come up with a higher number.
"Had he pointed at his missing rib, he'd been walking above the clouds instead of below", St. Peter tells his boss, who shakes her head 5 times.

After his lives are over, Adam returns at the gate and is asked again, "What is your Biggest number?"
Adam's last life had been in India, so now he knows decimal numbers, and he starts writing out his solution on the patch of sand below St. Peter's feet. It is a one followed by a hundred zeros.
"Googol is not too many", St. Peter observes, but still Adam is awarded a googol number of lives. God just shakes her head as St. Peter tells her, "Had he drawn a plain circle he could have stepped through."

After a long time Adam returns and he looks almost a Buddha – his head shaven, prayer beads moving round his fingers. St. Peter stands firmly at the gate of heaven and asks him the same question, concerning the Biggest number. Thereupon Adam Buddha writes down a wonderful mathematical formula in the style of bigI, which expresses a number far beyond human imagination.
"What's that?", St. Peter asks.
"It's an extension of the operatorial bigI", Adam explains, "I found it on the internet".
"The internet?", St. Peter sighs.
"Yes, I was busy reaching enlightenment, you see, I'm fed up with returning time and time again."
"I see…"
And so Adam has to spend an unimaginable aeon of lives down in the worldly realm.
God gets a little itchy as St. Peter tells her the news, "Had he pointed to the lack of his empty head, the man from nothing should have gone free".

Before Adam returns, St. Peter passes away, as there is a limit to each man's years, even if that man is a divine being. In turn St. Peter has to try NOT to enter the Greek hell, known as Hades, which is just one big solid mist without a scream.
Outside of Hades the Hell Hound is waiting, and the animal barks a question at the approaching Saint.
"What is the Biggest number of bones?"
As St. Peter repeats the last answer he has heard from Adam in heaven, he feels lucky the Hound is kept on chains or else he would have been torn apart by the sharp teeth of this ferocious Beast.
"Why?", growls the multi-headed dog named Kerberos, "This time I will answer you!"

"If a host of mathematicians as huge as the number you just told me were to search for the Biggest number and send an envoy to me after their civilisation had perished to hand me their solution, I would instantly raise a new mathematical army to the last given number to search for a way to formulate an even Bigger number. And I would continue sending out mathematical souls and receiving the envoy until one would come back to me whose answer was about the same as last time. Then I would decide to repeat this process of sending and receiving an extra number of times as Big as the final answer, just to make sure the solution remains in essence the same. Only then would I accept that final number to be the Biggest number conceivable in mathematics."
"It is that many of my dog boned lives that you, Peter, must suffer the sulphur fumes in the metro system of Hades", spoke the mythical Cerberus.

"Two questions before I go", said Peter, "How long does your dogship usually live, and what if these mathematicians keep returning with entirely different functions of numbers?"
"If so my former method would become the initial event of a successive process to which the same rules of formation and termination and eventually succession apply", refereed the Dog of dogs.
"And regarding the first question you've asked, I live exactly for as long as you can stay, exactly."
"Wu!"

The Saint, a Dog, who can tell what follows next?
These days nobody stands at a loss of words, nor sits totally perplexed.
Such a painful process 00 the bitter end...endarkenment.
I beg you a smaller question please

Σ Reference

Σ.1. Dictionary of Signs

Index of mathematical symbols – with a name and a short explanation. The name of the symbol links to a passage in the article which declares its use or elaborates on it.

0 Zero the empty natural number   reduced by removing the sign.
1 One the number 1 or the unit 1 that composes the natural numbers 1..
2 Two the natural number 11 as a character, substitute with X2Y [2:11]
3 Three the natural number 111 as a character sign.
4 Four the natural number 1111 as a character.
5 Five number 11111, etc. 6,7,8,9 – but then 10 is an old-style ten.
ω Omega the infinite unit ω > 1.. counts the set of all natural numbers.
- Inverse unit generates negative numbers -*n and inverse functions.
- Minus the old-style operator of subtraction 1-10=-9 is not countable.
+ Binary plus the old-style operator of addition 1+9=10 is never counted.
+ Minority plus unary subscriptable operator a++..;.. of bigA.
* Star operator single * for multiplication, multiple **.. super-powers.
^ Arrow operator single ^ of exponentiation, multiple ^.. super-powers.
× Abstract operator to illustrate locally defined operations in an example.
/ Division operator for division a/b, roots a//b and super-roots ///..
% Remainders super-modulo %.. of the above super-division operation.
£ Logarithmic operator for £.. super-logarithms, e.g. 2££65536 = 4
\ Backslash precision notation with postponed guest operations on a host.
E Decimal power scientific notation, example 6.8E+9 ~ 6793605222
Dagger signifies that the previous calculation is cut short in bigO style.
Infinity the utopia ↑∞ of a higher number or infinity not composed of units.
Limit up approach a number from below, or lim n↑ω towards infinity.
Limit down let a variable approach a limit from above, usually towards zero.
Unchained arrow countable operator to construct the operatorial bigY.
Chained arrow parameter separator in Conway's chained arrow notation.
! Factorial unary operator of the super-factorial and fastorial functions.
? Choice random operator n1? picks an integer from the range 0 to n
$ Sequality function $(R) returns 1 if all its arguments are equal, else 0
x Mean algorithmic mean value, the common average xi;../n [xi;#n]
, Separator sign between two parameters or ,.. array dimensions.
; Delimiter marks the end of a row of type subscripts a,0;b,d,e;c
@ Generic char stand-in for any sign possible in an expression context.
. Dots select a subsequence in an expression. Use a brown . for decimals.
R Row row of parameters or subscripts of arbitrary length, also S,T.
Κ Kappa signal a set of functions of similar signature {Κ.n.m}
= Equality in a=b expression a equals the b that results from its reduction.
~ Approximation estimate two numbers a~b as about equal in some context.
Not equal comparison a≠b where number a does not equal b
< Less than comparison a<b where number a is smaller than b
> Greater than comparison a>b where number a is larger than b
Less or equal comparison a≤b where number a is not larger than b
Greater or equal comparison a≥b where number a is not smaller than b
&