Bowers Exploding Array Function

BEAF (Bowers Exploding Array Function) is a notation invented by Jonathan Bowers, similar to Chained Arrow Notation, but much stronger. It is a superset of Array Notation and Extended Array Notation, both invented by Bowers. It has become quite famous in googology due to its simplicity and growth speed, not to mention the vast array of whimsically named numbers defined with the function (such as golapulus and the legendary meameamealokkapoowa oompa).

Although Chris Bird and John Spencer assisted in the construction of BEAF, Bowers is usually given sole credit for the function.

Definitions

 * The "base" (b) is the first entry in the array.
 * The "prime" (p) is the second entry in the array.
 * The "pilot" is the first non-1 entry after the prime. It can be as early as the third entry.
 * The "copilot" is the entry immediately before the pilot. The copilot does not exist if the pilot is the first entry in its row.
 * A "structure" is a part of the array that consists of a lower-dimensional group. This could be an entry (written \(X^0\),) a row (written \(X^1\),) a plane (\(X^2\)), a realm (\(X^3\)), or a flune (\(X^4\)), not to mention higher-dimensional structures (\(X^5\), \(X^6\), etc.) and tetrational structures, e.g. \(X\uparrow\uparrow 3\). We can also continue with pentational, hexational, ..., expandal, ... structures.
 * A "previous entry" is an entry that occurs before the pilot, but is on the same row as all other previous entries. A "previous row" is a row that occurs before the pilot's row, but is on the same plane as all other previous rows. A "previous plane" is a plane that occurs before the pilot's plane, but is on the same realm as all other previous planes, etc. These are called "previous structures."
 * A "prime block" of a structure \(S\) is computed by replacing all instances of \(X\) with \(p\). For example, if \(S = X^3\), the prime block is \(p^3\), or a cube of side length \(p\). The prime block of an \(X^X\) structure is \(p^p\), a \(p\)-hypercube with sidelength \(p\).
 * The "airplane" includes the pilot, all previous entries, and the prime block of all previous structures.
 * The "passengers" are the entries in the airplane that are not the pilot or copilot.
 * The value of the array is notated \(v(A)\), where A is the array.

Rules

 * 1) Prime rule: If \(p = 1\), \(v(A) = b\).
 * 2) Initial rule: If there is no pilot, \(v(A) = b^p\).
 * 3) Catastrophic rule: If neither 1 nor 2 apply, then:
 * 4) pilot decreases by 1,
 * 5) copilot takes on the value of the original array with the prime decreased by 1,
 * 6) each passenger becomes b,
 * 7) and the rest of the array remains unchanged.

Linear Arrays
Linear arrays are the smallest and simplest type of array. A linear array consists of a one-dimensional row of numbers, e.g. \(\lbrace 5,8,7,2,4 \rbrace\). Although they are the smallest of BEAF arrays, linear arrays with more than five entries grow much, much faster than Chained Arrow Notation (a theorem known as Bird's Proof). Positions in linear arrays can be described with a single number, e.g. the fourth entry.

Dimensional Arrays
Dimensional arrays are arrays that need 2 or more dimensions to represent. To write these arrays in a single line, one must use numbers in parentheses in place of commas to indicate breaks in multiple dimensions. (1) means that the following numbers are in the next row, (2) means the next plane, (3) means the next realm (3-space), (4) means the next flune (4-space), and so forth. For example, \(\lbrace3,3,3 (1) 3,3,3 (1) 3,3,3\rbrace\) means a 3-by-3 square of threes. Positions in dimensional arrays require linear arrays to represent. For example, \((5,6,8,2)\) means the fifth entry on the sixth row on the eighth plane in the second realm.

Tetrational Arrays
Tetrational arrays are arrays that require tetrational spaces to represent. Tetrational spaces consist of superdimensional space, trimensional space, quadramensional space, etc.

Superdimensional arrays consists not only dimensional spaces, but also dimensional groups, dimensional spaces of groups, groups of groups, gangs (the next level of structure after the group), etc.

Positions in superdimensional arrays require dimensional arrays to represent, positions in trimensional arrays require superdimensional arrays to represent, etc.

Pentational Arrays
On pentational arrays, the powers will sort into groups, like \(X\uparrow\lbrace X\uparrow X\uparrow X\rbrace\uparrow\lbrace X\uparrow X\uparrow X\rbrace\uparrow\lbrace\lbrace X\uparrow X\uparrow X\rbrace\uparrow\lbrace X\uparrow X\uparrow X\rbrace\uparrow\lbrace X\uparrow X\uparrow X\rbrace\rbrace\) or \((X \uparrow 2+2X+1)\uparrow\uparrow X\) where X is evaluated at 3. The {} are not to be solved like ordinary parentheses, but are used to group up the exponents into tetrational blocks (so if the prime entry changes, then the number of X's or {X^...^X} on each block will also be changed to the prime entry).

The other way to group power towers is indicate number of \(X\)'s in the tower by \(\rightarrow\). For example, \(3 \uparrow\uparrow\uparrow 3 \& 3 = 3 \rightarrow 3^{3^3} \rightarrow 3^{3^{3^{...^{...^{3^3}}}}}\)

Larger non-legion arrays
There are larger arrays like hexational, heptational, octational, nonational, decational, expandal, multiexpandal, powerexpandal, explodal, multiexplodal, detonational, pentonational, hexonational, megotional, etc.

Jonathan Bowers comments on these arrays, "How to work with these? - Only God knows - but they should form some massive arrays - and utterly unspeakable numbers when solved."

Legions
Before discussing legions, we must first define the array of operator. a array of b, written a & b, is defined as {a, a, a, ...}, in which there are b a 's. If a is an exponent or array, it indicates the dimensions of the resulting array. For example, \(3^2 \& 3 = \lbrace 3, 3, 3 (1) 3, 3, 3 (1) 3, 3, 3 \rbrace\) is a 3 by 3 \( = 3^2\) array of 3's.

Bowers further extends BEAF using legion arrays (in his old notation, he used the term "exploded arrays"). In the array \(\lbrace a, b, c, \cdots / 2\rbrace\), we say that the number 2 is in the second legion. In such a case, we solve the array in the first legion normally, but in the initial rule, we say that \(v(A) = b \& b \& b \& b \& \cdots b \& b \& b \& b \) p times, solving from left to right. For example, \(\lbrace 3, 3 / 2\rbrace = 3\&3\&3 = \lbrace3, 3, 3\rbrace \& 3\) (a pentational array with tritri entries).

In the general case \(\{b, p / x\}\), \(x\) is the pilot. The prime block of a legion is \(b \& b \& ... \& b \& b\) \(p\) times, giving us the general case:

\[\lbrace b, p / x + 1\rbrace = \lbrace b \& b \& b \cdots b \& b \& b / x\rbrace\]

For example:

\[\lbrace 3,3 / 3\rbrace = \lbrace 3 \& 3 \& 3 / 2\rbrace\]

Now the first legion contains a \(3 \uparrow\uparrow\uparrow 3\) array of threes, which must then be solved in the second level of legion arrays.

We can also have multiple arrays in the second legion, such as \(\{3, 3 / 3, 3\}\). Each legion can be dimensional, tetrational, pentational, expansional, etc. An array can also have more than two legions, e.g. \(\lbrace 3, 4 / 5, 6 / 7, 8\rbrace\). The structure of the legions can be multidimensional, using (/n) to indicate an n-dimensional legion break, e.g. \(\lbrace 3, 4 (/6, 2) 9, 4\rbrace\) is a tetrational legion array.

Ones are still default in legion arrays: \(\lbrace A / 1 = A \rbrace\).

Multiple legions, legiattic arrays
To continue this further, need to explain "legion array of" symbol: &&. It works as standard "array of" symbol, but on legion arrays, e.g. 3 && 3 = {3,3 (/1) 2} = {3 & 3 & 3 / 3 & 3 & 3 / 3 & 3 & 3} (here / works as commas in standard arrays), and Bowers defines the double legion mark (e.g. {3,3 // 2}) as repeated legion "array of" symbol: \(\lbrace a,b // 2\rbrace = a\&\&a\&\&a\cdots a\&\&a\&\&a\) (b times)

Double legion arrays, of course, might be multidimensional, tetrational and beyond, up to double legions itself. It makes sense to define triple legion arrays as repeated double legion marks, quadruple as repeated triple legion marks, and so on.

Beyond this, need to define the new structure: \(\lbrace a,b (1)/ 2\rbrace = \lbrace a,b ///.../// 2\rbrace\) (b \(/\)'s) (legion mark in the next row of legion marks takes under prime block a previous row of legion marks). Legion marks might be array itself, constructs structures like \(\lbrace a,b ///(2)/(3)//(4)/(1,2)/ 2\rbrace\).

To extend this even further, Bowers defines new notation: \(\lbrace L,1\rbrace_{a,b} = \lbrace a,b / 2\rbrace, \lbrace L,2\rbrace_{a,b} = \lbrace a,b // 2\rbrace, \lbrace L,X\rbrace_{a,b} = \lbrace a,b (1)/ 2\rbrace\). This is only small examples of legiattic arrays, or "legion marks" arrays, there exists \(\lbrace L,X \uparrow\uparrow\uparrow X \rbrace_{a,b}\), pentational legiattic array. There are might be \(\lbrace L,L \rbrace_{a,b}\), legion legiattic array, legion marks on legion marks.

There are things like {L,3,2}a,b, {L,L,L}a,b, {L,L (1) 2}a,b. It is appropriate to define legiattic "array of" mark: a @ b = {L,L,L,...,L,L,L}a,b (b L's) a2 @ b = {L,L,L,...,L,L,L(1)L,L,L,...,L,L,L(1)...(1)L,L,L,...,L,L,L(1)L,L,L,...,L,L,L}a,b For example, 33 @ 3 = {L,L,L(1)L,L,L(1)L,L,L(2)L,L,L(1)L,L,L(1)L,L,L(2)L,L,L(1)L,L,L(1)L,L,L}3,3

Lugions, lagions, ligions and beyond
Firstly, Bowers defines {a,b \ 2} = a @ a @ a ... a @ a @ a (b a's), where \ is a lugion mark. No problem to extend it further, we can create {3,4,5 (\1,2) 7,8 (\3) 2} (a dimensional lugion array), {5,5,5 \\\\\\ 3} (a sextuple lugion array). Lugion space is L2 space, and so {L2,X}a,b = {a,b (1)\ 2}. From this it is easy to go to lugiattic arrays, or "lugion marks" arrays. Lugiattic "array of" mark is %, and repeated lugiattic "array of" marks called lagions: {a,b | 2} = a % a % a ... a % a % a (b a's)

Repeated lagiattic "array of" marks called ligions: {a,b - 2} = a # a # a ... a # a # a (b a's)

Then notice how legion space is L1, lugion space is L2, lagion space is L3, and ligion space is L4, no problem to define L5, L6,... spaces, and structures like LX, L(X+1), L(X+2), L(2X), L(X^^^X), LL, LLL.

L's can form an array itself, e.g. {LLL(1)LLL(2)LLL(1)LLL,1}3,3}, and {(1)L,1}3,3 = {LLL,1}3,3

L arrays (not to be confused with legiattic arrays) can be dimensional, superdimensional, trimensional, tetrational, ..., legiattic, lugiattic, lagiattic, ligiattic, L100-attic, and so on.