4.1.2 - Extended_Operators

Jonathan Bowers' massive array notation begins very simply: It begins with the hyper-operators. Based on clues provided in Bowers' writing I've estimated that Bowers' first learned about the hyper-operators from a book sometime between 1982 and 1987. Having an interest in large numbers already, to the point of naming his own -illions, he became interested in extending the operators even further. The result of this is his Extended Operator Notation. This notation is very powerful. It allows us to easily surpass Graham's Number along the way and is in fact capable of surpassing Conway Chain Arrow Notation in it's most general form. The notation is also extremely easy and intuitive to use.

The system was first published on the Web in 2002 on his original aol hometown website. This website no longer exists since aol hometown closed down sometime between 2005 and 2007. However I have archived all of the information on the site pertaining to array notation here with permission. I'll be quoting from it as I analyze Bowers' work from the ground up.

A Purview of the Original Text

Bowers' original text can be broken into 3 main articles. These are the "illions", "array notation" and "infinity scrapers" articles.

Note: I recommend reading Bowers articles in the following sequence: "illions", "array notation", "Infinity Scrapers". This provides the most logical sequence of reading.

The first text, "illions" starts us off with Bowers' original extended illion series. It's a list from the smallest to largest of Bowers' illions. The list contains exactly 94 named -illions, 36 of which are essentially already canon in the Conway-Guy system. This leaves 58 original -illions invented by Bowers, or 57, depending on whether you think Bowers is entitled to the independent creation of the term "millillion" for the thousandth illion in the short scale (ie. E3003). Of these 58 independently named -illions of Bowers, some are larger than a googolduplex! Bowers' is one of the few people to extend -illions this far, though there are others. The article makes no attempt to explicitly develop a system for the naming of all the -illions that would have to exist to fill out this sequence of 58 names. Bowers and I have used the term "milestone illions" to refer to listed names, but there are literally googolplexes of unlisted names that could theoretically be constructed. This first article has very little to do with the next two articles, but it sets the stage up for even larger numbers that would dwarf anything listed here. If your interested in more details about how Bowers' illions can be developed into a fully functional naming scheme, you can check it out in chapter 2.4, or go directly to the article: Jonathan Bowers' multi-tiered illion series.

In the second article, "array notation", Bowers' Extended Operators were first introduced. As Bowers' explains, there are three main levels to his notations. These are, from least to most powerful: Extended Operator Notation, Array Notation, and Extended Array Notation. These are all introduced and described in the "array notation" article in the space of a mere 3 pages!

There are in fact a few additional levels that Bowers' presents later on in his "infinity scrapers page". These are "Super Extended Array Notation", "Exploding Array Notation", and something which I can only call "Super Extended Exploding Array Notation" because it is so insane! All of this is covered in the coarse of 7 pages!

Actually the portion of the text dealing with the new notations only takes up just 2 pages, while also introducing several numbers as well. This is all we will have to go on when reconstructing these notations.

There were actually two web pages which composed his infinity scrapers text. I've taken the liberty of fusing these two pages together into one complete "Infinity Scrapers" article, though there is still an indication of where the second page begins. The first page deals only with numbers expressible using Extended Operator Notation and array notation. The 2nd page however deals with Extended array notation and everything beyond! It's here that Bowers takes a rapidly descending journey into the far side. After discussing numbers which take Extended array notation to it's limit he introduces something completely new: Super Extended Array Notation. Bowers says that these arrays involve "array spaces beyond dimensional spaces". There is no elaborate explanation of rules here. Instead Bowers vaguely describes "array spaces" such as having a "dimensional array of dimensional arrays". Bowers quickly goes from being baffling to being completely incomprehensible as he moves past Super Extended Array Notation into Exploding arrays, multi-level exploding arrays, and super extended mutli-level exploding arrays!

We will be carefully reconstructing Bowers' notations from the 10 pages comprising the "array notation" article, and the two webpages of "Infinity Scrapers". We will see why it was so difficult to reconstruct his notation from this text. I will try to carefully analyze the text to provide the best interpretation I can.

I first encountered Bowers work sometime in 2004 when I got back into large numbers after my very long "break". For a long time I had no idea what any of this meant. I understood Bowers' up to array notation, and I had a vague idea what was going on with Extended array notation, but beyond that just was completely incomprehensible! Bowers had simply not provided enough information in the course of those infamous 10 pages for anyone to really know what he was talking about. Yet I was convinced that this was not merely some elaborate bit of crank mathematics. Bowers' was talking about something real ... there was a sense of some kind of logical progression, ... it's just no one knew for sure what it was. Until 2007, when Bowers' published his new site and updated and expanded his work considerably, this was all anyone had to go by. And yet Bowers had managed to gain a small fan club. Most people were satisfied to think of Bowers as an eccentric whose ideas were so complicated no one could hope to understand them. But there were some who simply would not accept this, and wanted to understand for themselves. I was among a few people who had become fascinated by what Bowers had come up with and what it meant. I eventually did come to a deeper understanding of array notation, but this took some time. We will be spending a considerable amount of time carefully reconstructing Bowers' ideas, for a few reasons. First and foremost, his work seems to have inspired the modern googology movement. Secondly his work, provides an appealing alternative to the professional mathematicians equivalent: the fast growing hierarchy. Thirdly, Bowers' notation, is easy to understand and gives one a much better sense of the size of these numbers than any other notation system.

To understand Bowers' system we must begin where he began: by extending the Hyper-operators

A Closer look at the Array Notation Article

We will begin our investigation into the early work of Bowers by analyzing the "Array Notation Article". The first paragraph quickly introduces the topic and prepares us for what's to come in the next 3 pages:

As I've been studying large numbers, I developed various notations to represent them. The three main ones I use are: extended operator notation, array notation, and extended array notation. The extended operator notation and the array notation are two ways of writing the same thing, the array notation is cleaner looking, but the extended array notation can give one a feel of how large the numbers get. The extended array notation leads to unspeakably enormous numbers, so huge that the other notations cant even come close. [sic]

--Jonathan Bowers

Note: text by Jonathan Bowers will be highlighted in Cyan because this was the original background color of the article

So we learn that Bowers' has three notations: Extended Operator Notation, Array Notation, and Extended Array Notation. The order seems to indicate both the order of their creation, and the order of their strength from weakest to greatest. Bowers' tells us that Extended Operator Notation and Array Notation are of equal strength, but the Extended Array Notation is way beyond the other two. What he doesn't tell us is that there are more levels to his system beyond Extended Array Notation. These further extensions are not introduced in the "array notation" article, so we will be discussing them much later.

Bowers' begins by jumping right into the definition of his array notation, a definition which no doubt was hard won:

Following are the 5 rules to solve the array notation - first use rule 1 if it applies, if not then use rule 2, etc. If rules 1 through 4 doesn't apply then rule 5 will.

Rule 4: Condition - 3rd entry is 1 - {a,b,1,..,1,d,e,..,k} = {a,a,a,..,{a,b-1,1,..,1,d,e,..,k},d-1,e,..,k} - the ".." between the 1's represent 1's - there can be any number of ones, from 1 "1" (3rd entry alone) to a string of 1s - the last 1 of this string is what becomes {a,b-1,1,..,1,d,e,..,k} all entries prior becomes "a". For an array like this{3,2,1,1,1,5,1,2} the last 1 in the string is the one before the 5 (not the one after - since it is a different string of 1s).

I usually use angle brackets instead of {}, but angle brackets don't like to show up right on the web site.

We will come back to this portion of the text later, as it's actually anachronistic to begin here. An understanding of array notation would have first emerged from an understanding of how extended Operators would work.

The next portion of the text describes Bowers' extended operator notation. No formal definitions are given but lots of examples are given. This is followed by a brief introduction of Extended Array Notation and then a lengthy description of the 7 rules of Extended Array Notation. The last paragraph makes some clarifying statements about how Extended Array Notation is to be resolved.

We will first be looking at the middle portion that deals with Extended Operator Notation.

Bowers' Extended Operator Notation

Part I : Bracket Notation

It seems very likely that Bowers first developed his Extended Operator notation and then developed array notation from this, despite the fact that the definition for array notation comes first in the text. Bowers' admits as much when he explains that he began by extending the hyper-operators, and then later found a more compact way to write his extended operator notation. That is how array notation was first created. We therefore will begin with the Extended Operators.

The definition of the Extended Operators actually requires outside text to decipher. Here is the original explanation for the base of his system:

a {c} b = {a,b,c}, where c=1,2,3,4,5 etc represents adding, multiplying, exponentiation, tetration, pentation, etc. (I first encountered the names tetration, pentation, etc. in a book which I no longer remember the name).

This definition in itself is inadaquate, because you would already have to know what tetration, pentation, and all the rest actually meant. Another clue is given a little earlier:

Here are some results:

{a,b,1} = a+b

{a,b,2} = a*b

{a,b,3} = a^b

{a,b,4} = a {4} b (a tetrated to b) = a^(a^(a^(....a^(a^a)..)) or a to the power of itself b times.

We see here that tetration is defined by repeated exponentiation from right to left, and pentation as repeated tetration from right to left. However, this definition still relies somewhat on the readers familiarity with such concepts and does not elaborate. The explicit definition for " a{c}b " actually can be derived from the rules for array notation, since a{c}b := {a,b,c}. For example:

a{1}b = {a,b,1} = {a,b} [via Rule 2] = a+b [via Rule 1]

a{c}1 : c>1 = {a,1,c} = a [via Rule 3]

a{c}b : b,c>1 = {a,b,c} = {a,{a,b-1,c},c-1} [via Rule 5]

This provides us with the following simplified definition:

Bowers' Hyper-Operator Notation

Let a{c}b be defined when a,b,c are positive integers as follows:

1. c=1 ; a{1}b = a+b

2. b=1 ; a{c}1 = a

3. a{c}b = a{c-1}(a{c}(b-1))

Note: See article "Intruction Tables and General Recursion" for explanation of this formal recursive definition (article under construction for 2013)

This definition is also equivalent to the following:

a{1}b = a+b

a{c}b = a{c-1}a{c-1}a{c-1}a ... a{c-1}a{c-1}a w/b a's : c>1, and expressions are resolved right to left

In otherwords:

a{1}b = a+b

a{2}b = a{1}a{1}a{1} ... {1}a{1}a w/b a's

a{3}b = a{2}a{2}a{2} ... {2}a{2}a w/b a's

a{4}b = a{3}a{3}a{3} ... {3}a{3}a w/b a's

a{5}b = a{4}a{4}a{4} ... {4}a{4}a w/b a's

a{6}b = a{5}a{5}a{5} ... {5}a{5}a w/b a's

etc.

This is the idea that Bowers' is addressing very briefly in his definitions. This is equivalent to the hierarchy of hyper-operators as defined with Knuth Up-arrow notation:

a{1}b = a+b

a{2}b = a*b

a{3}b = a^b

a{4}b = a^^b

a{5}b = a^^^b

a{6}b = a^^^^b

...

a{c}b = a^^^...^^^b w/c-2 ^s

The notation first appeared with curly-braces on his website, although he mentioned that when written on paper he usually used angled brackets instead.

I usually use angle brackets instead of {}, but angle brackets don't like to show up right on the web site.

The reason he didn't use them on his site originally was because he couldn't use them without causing problems with the html (I've encountered the same problem with google blogger before, though thankfully I have no such difficulties when it comes to google sites). I have decided to use the curly-braces "{ }" for Bowers original array notation, and angled-brackets " < >" for his new array notation.

We've already seen how fast numbers expressed using Up-arrow notation grow in the previous section (See article on Up-arrows). Bowers' uses this notation to name a few large numbers. He extends both the googol tradition to new heights and also creates a few number names specifically relevant to his system. For example:

googol = 10{3}100

googolplex = 10{3}10{3}100

googolduplex = 10{3}10{3}10{3}100

giggol = 10{4}100

giggolplex = 10{4}10{4}100

giggolduplex = 10{4}10{4}10{4}100

tripent = 5{5}5

trisept = 7{7}7

tridecal = 10{10}10

boogol = 10{100}10

The giggol (an original number coined by Bowers) is equal to 10^10^10^10^...^10^10 w/100 10s. A giggolplex is 10^10^10^10^...^10^10^10 w/giggol 10s. Bowers' goes on to name more numbers in this range and beyond. We'll be looking more into his named numbers later.

Having established a convenient and logical way to notate the hyper-operators Bowers' proceeded to define an interesting way of extending further, hence the beginnings of "Extended" Operator Notation.

He first creates a new operator: "{{1}}". The use of the double-curly-braces distinguishes it from any of the hyper-operators. Just like all the previous operators: {1},{2},{3},{4},{5}, ... It is intended to be placed between arguments, in-fix style.

Next he establishes the following definition:

a {{1}} b = a { a { a....a { a { a } a } a.... a } a } a (b a's from center out) - I call this a expanded to b

This is usually where a yikes is in order! Bowers' calls "a{{1}}b", "a expanded to b". This choice is fairly intuitive. Observe the following pattern and it should be clear:

b{{1}}1 = b

b{{1}}2 = b{b}b

b{{1}}3 = b{b{b}b}b

b{{1}}4 = b{b{b{b}b}b}b

etc.

Note that when c>1 that a{c}1 = a. Bowers' is continuing this property by extending it to all new operators. ex. a{{1}}1 = a.

a expanded to b produces some staggering numbers very rapidly, but it's worth noting that this is only true is if a>2. For example:

1{{1}}b = 1{1{1{1{1{...{1{1}1}...}1}1}1}1}1 w/b 1s from center out

Since 1{1}1 = 2, and 1{c}1 = 1 if c>1 it follows that 1{1{1}1}1 = 1{2}1 = 1. This implies that 1 expanded to b will be 1 if b is odd, and 2 is b is even. ie:

1{{1}}1 = 1

1{{1}}2 = 1{1}1 = 2

1{{1}}3 = 1{1{1}1}1 = 1{2}1 = 1

1{{1}}4 = 1{1{1{1}1}1}1 = 1{1{{1}}3}1 = 1{1}1 = 2

1{{1}}5 = 1{1{{1}}4}1 = 1{2}1 = 1

1{{1}}6 = 1{1}1 = 2

1{{1}}7 = 1{2}1 = 1

1{{1}}8 = 1{1}1 = 2

1{{1}}9 = 1{2}1 = 1

1{{1}}10 = 1{1}1 = 2

etc.

Somewhat erratic behavior, but certainly well behaved enough for it to be well defined (This anomaly is eradicated in Bowers' new array notation, as well see later).

Note that this is the same pattern of growth used to define Graham's Number. So even though we've only just gotten started, it's already a cinch to surpass Graham's Number using Bowers' notations.

Simply observe that:

3{{1}}2 = 3{3}3 < 3{6}3 = 3^^^^3 = G1

Yet it also follows that:

6< 27 = 3{3}3

implies...

G1 = 3{6}3 < 3{27}3 = 3{3{3}3}3 = 3{{1}}3

We can express more of the Graham's Sequence using Bowers' Extended Operator Notation:

G2 = 3{2+3{6}3}3

G3 = 3{2+3{2+3{6}3}3}3

etc.

Although the +2 confers a slight benefit to the Graham Sequence it never really gains any ground on 3 expanded to b. To see this, just understand that adding 3 or less to 3{c}3 is always less 3{c+1}3, if c>1:

Bowers' refers to a{{2}}b as "a multi-expanded to b". The way the definition is written might be confusing to beginners. What does he mean by "(b times)". Bowers' uses parentheses to emphasis the fact that resolution is carried from right to left. However, if we simply say that all Extended-Operator expressions are to be resolved from right to left, we save ourselves a lot of trouble. It should be noted that ordinary order of operations, tells us nothing about what should be done with tetration, pentation, and beyond. It is perfectly legal to define your own custom order of operations in such instances, as long as you make this "custom order" clear in advance. With this in mind we can defined "a multi-expanded to b" as:

a{{2}}b = a{{1}}a{{1}}a{{1}} ... {{1}}a{{1}}a w/b a's

Here is a simple example to show you just how powerful this already is:

3{{2}}3

Just like the ordinary operators these must always be evaluated from right to left so:

This doesn't quite show the full power of the multi-expansion operator however. Consider:

3{{2}}4 = 3{{1}}3{{1}}3{{1}}3 = 3{{1}}(3{{2}}3) =

3{3{3{3{ ... {3{3{3}3}3} ... }3}3}3}3 w/3{{2}}3 3's center out

> G(G(G1))

3{{2}}5 = 3{{1}}(3{{2}}4) =

3{3{3{3{ ... {3{3{3}3}3} ... }3}3}3}3 w/3{{2}}4 3's center out

> G(G(G(G1)))

...

3{{2}}b = 3{{1}}(3{{2}}(b-1)) > Gb-1(1)

As you can gather by considering these examples, multi-expansion is a recursive function equivalent to functional exponentiation of Graham's function! In otherwords, as we increase b, multi-expansion is equivalent to plugging Graham's function into itself repeatedly. This already beats most naive attempts to extend beyond Graham's Number. For example:

And this is still only the beginning. Next Bowers' defines a whole new set of hyper-operators above and beyond the original set. He calls b{{3}}p "b power-expanded to p", b{{4}}p "b expando-tetrated to p", b{{5}}p "b expando-pentated to p", b{{6}}p "b expando-hexated to p", etc.

a {{1}} b = a { a { a....a { a { a } a } a.... a } a } a (b a's from center out) - I call this a expanded to b

a {{3}} b = a multiexpanded to itself b times (or a powerexpanded to b)

a {{4}} b = a powerexpanded to itself b times (or a expandotetrated to b)

As you can see, Bowers' doesn't define these operations explicitly, but implicitly through following a pattern. He does however tell us that:

a {{c}} b = {a,b,c,2}

Again, Bowers' relies on his explicit definition of array notation to define the hyper-operators implicitly. Despite this brevity and informality, it can be gathered that the new series of operators follows the same definitions as the original series of hyper-operators. That is:

Consider the implication of the above and I think a SUPER YIKES, is in order!! Not only does this new operator sequence grow extremely rapidly, but it implies a way to continue even further. Just consider the strength of power-expansion:

Now try to imagine expanding out the string of 3{{1}}3{{1}}3{{1}} ... {{1}}3 which itself has an unfathomable number of 3's. Now try to imagine a string of 3{{2}}3{{2}}3{{2}} ... {{2}}3 , a string of 3{{3}}3{{3}}3{{3}} ... {{3}}3, a string of 3{{4}}3{{4}}3{{4}} ... {{4}}3, etc.

It boggles the mind, and there is nothing I can really say to explain how big these numbers are. Even Graham's Number is lost in the sight of it. And Bowers' isn't even close to being done...

What next? Now he defines a new operator above all these: {{{1}}}, with the definition:

a {{{1}}} b = a {{ a {{ a ... a {{ a {{ a }} a }} a ... a }} a }} a ( b a's from center out) - I call this a exploded to b.

Already we can't really relate this back to hyper-operators in a natural way, because we have to resolve the long expression 3{{1}}3{{1}}3{{1}} ... {{1}}3{{1}}3. The next step however is totally mind boggling:

3{{{1}}}3 = 3{{3{{3}}3}}3 = 3{{3{{{1}}}2}}3 = 3{{N}}3

What this means is that 3{{{1}}}3 is equivalent to 3{{N}}3 where N is the previously insane number. The result would be that we would have to expand this to {{N-1}} operators, then {{N-2}} operators, ... all the way to {{1}}s before we could then expand this and relate it back to hyper-operators. Let's call operators of the form {c} the ordinary hyper-operators, and operators of the form {{c}} the expansion-operators. {{{1}}} is an operator that repeatedly plugs back into the expansion-operators, just like {{1}} repeatedly plugs back into the hyper-operators!!!

A word of caution as we move on ahead: Any attempt to comprehend this in relation to familiar operations should be abandoned immediately, because we can't really fully grasp it. There is nothing to compare these kinds of numbers to, and thus we can only understand them on their own terms, and no others! This is why it is so difficult to explain numbers like this to a laymen. It can't be explained in the familiar terms of decimal expressions and exponentiation. It really does take a few minutes of explanation, and a willingness on the part of the listener to "expand" their imagination in order to understand this. This is also why the most common rookie mistake is to take numbers in this range and -plex them. If you've read Section III, you should already know why that comes across as naive to the googologist. Plexing is far too slow at this point, and is no longer competitive!

At this point in the conversation it's usually a good idea to abandon lengthy expansions to familiar concepts and to just warp on ahead to the full pattern! You can probably already see what Bowers' is going for here. First, we can extend beyond the explosive-operator, and create a series of explosive-operators, that are defined as repetitions of the previous explosive-operators:

a{{{2}}}b = a{{{1}}}a{{{1}}}a{{{1}}} ... {{{1}}}a w/b a's

a{{{3}}}b = a{{{2}}}a{{{2}}}a{{{2}}} ... {{{2}}}a w/b a's

a{{{4}}}b = a{{{3}}}a{{{3}}}a{{{3}}} ... {{{3}}}a w/b a's

etc.

We follow this with a new operator, beyond all explosive-operators, that uses 1 additional layer of brackets: {{{{1}}}}. Bowers' calls this "a detonated to b" (continuing with his dynamite analogy):

a {{{{1}}}} b = a detonated to b = {a,b,1,4}

At this point he doesn't even bother to tell us what this operator does. However, the astute reader will have already intuited the pattern established by the previous examples. Logically speaking a{{{{1}}}}b must be:

Next we can create a series of detonative-operators, defined as repetitions of the previous detonative-operator:

a{{{{2}}}}b = a{{{{1}}}}a{{{{1}}}}a{{{{1}}}} ... {{{{1}}}}a w/b a's

a{{{{3}}}}b = a{{{{2}}}}a{{{{2}}}}a{{{{2}}}} ... {{{{2}}}}a w/b a's

a{{{{4}}}}b = a{{{{3}}}}a{{{{3}}}}a{{{{3}}}} ... {{{{3}}}}a w/b a's

etc.

Next up is something Bowers' calls "a petonated to b" (pent for 5 plus detonated):

a {{{{{1}}}}} b = a pentonated to b = {a,b,1,5}

Next logically would come a series of pentonative-operators. Again we create a new operator above all these, which would be {{{{{{1}}}}}}. That's 1 within 6 pairs of curly braces. Bowers' does not give this an official name, but again we can follow the pattern he establishes to continue. Since "pent" is a greek prefix, we can go further by using the greek prefixes:

a{{{{{{1}}}}}}b = a hexonated to b = {a,b,1,6}

a{{{{{{{1}}}}}}}b = a heptonated to b = {a,b,1,7}

a{{{{{{{{1}}}}}}}}b = a octonated to b = {a,b,1,8}

a{{{{{{{{{1}}}}}}}}}b = a ennonated to b = {a,b,1,9}

a{{{{{{{{{{1}}}}}}}}}}b = a deconated to b = {a,b,1,10}

etc.

Bowers' does not explicitly name any operators above pentonation, so the above isn't cannon, but it's an obvious enough continuation. It should be clear, that regardless of what we call these operators, we would be able to continue to an arbitrary number number of curly brackets. This is what I refer to as Bowers' "Bracket Notation". Bracket notation is as powerful as Conway's Chain arrow notation. In fact, it can be shown that the addition of each pair of curly brackets is equivalent to adding an extra argument to a Conway Chain. Bracket Notation however isn't the end of Bowers' Extended Operator Notation, ... far from it. Bracket notation does however represent the limit of "established" notation for the Extended Operators. Bowers' presents no official continuation, but he does give a description of notation that he uses on paper. We will be looking into this in the next heading. First however lets try to get stock of what we have just learned about Bracket Notation.

Bowers' does not provide a formal definition of the Extended Operators, even limited to the bracket notation. Instead he uses a litany of examples to give an informal "definition". I believe examples are very important. People learn best by doing, and in fact, I don't think there really is any other way to learn mathematics other than by doing it. The reason is, that its only by working out the consequences of definitions that their meaning becomes readily apparent. So I think worked out examples are an important when presenting googological functions. However, examples in and of themselves are not always enough. One should seek to simplify and uncover the general principle. The benefits of this are often that one gains far greater insight, and the keys to progressing further with far less confusion. In the case of Bracket Notation, it isn't too difficult to formalize the system and capture the general principle.

First, here is some terminology, directly from Bowers' writing:

I also have names for the various entries.

Consider {a,b,c,d,e,f}

a is the base

b is the extender

c is the operator

d is the level of operators

e is the level of level of operators

f is the level of level of level of operators.

Using this terminology, we can identify 4 rules to Bracket Notation:

1. When both the "level of operator" and "operator" are 1, add (base case)

2. If the extender = 1, and rule 1 does not apply, return the base.

3. When the operator=1 and "level of operator">1, repeatedly plug into the level of operator -1.

4. When the operator is greater than 1, repeat the lower operator

Next let's establish this convenient notation:

a{c}db = a{{{...{{{c}}}...}}}b w/d bracket pairs

Formally we can now define bracket notation as follows:

Bower's Bracket Notation

Let a{c}db be defined if a,b,c,d are positive integers as follows:

1. c,d=1 ;a{1}1b = a+b

2. b=1 ;a{c}d1 = a

3. c=1 ; a{1}db = a{a{1}d(b-1)}d-1a

4. a{c}db = a{c-1}d(a{c}d(b-1))

With this we now have a reliable definition to refer back to whenever we are in doubt about something. Note that this formal definition completely avoids the use of the ellipsis ( ... ). This is done to ensure that the definition is completely explicit and leaves nothing to interpretation.

Bowers' defines several numbers with his Bracket notation on his "Infinity Scrapers" page. The largest of these is the General, and Generalplex. The General is 10{{{{{{{{{{10}}}}}}}}}}10, that is 10{10}1010. The Generalplex is 10{{{{ ... {{{{10}}}} ... }}}}10 where there are a General pairs of brackets, that is 10{10}General10.

Bracket Notation is roughly equivalent to Ea###b in my Hyper-E Notation. That is to say:

10{10}d10 < E10###(d+1)

ex.

10{10}10 < E10###2 = E10##10

10{{10}}10 < E10###3 = E10##10##10

10{{{10}}}10 < E10###4 = E10##10##10##10

etc.

With bracket notation understood, we have taken the first step towards understanding Bowers' system. But we are not yet even done with Extended Operator Notation...

Bowers' Extended Operator Notation

Part II : Beyond Bracket Notation

There are only 9 lines which describe the rest of Extended Operator Notation on Bowers' old site. Amazingly, even this is enough to reconstruct it, given it's close relation to array notation, which Bowers' does explicitly definite.

Bowers' first mentions an operator which goes beyond all the operators of bracket notation in these lines:

{a,b,1,1,2} = {a,a,a,{a,b-1,1,1,2}} = a {{{{{{{....{{{a}}}....}}}}}}} a (where there are a {{{{{...{{a}}...}}}}} a angle brackets(where there are a {{{{..{{a}}..}}}} a angle brackets ( where there are .......b times ..... (where there are a angle brackets)))))) - YIKES!!

What exactly does all of this mean?! {a,b,1,1,2} refers to a new operator beyond all operators {c}d. For now we will use "@" to represent this operator. What this line states is basically that:

Each a{{{...{{{a}}}...}}}a in the stack has as many pairs of brackets as the number computed just below it. Bowers' is right to call a "YIKES" here. This represents an explosion of the bracket notation, and a transcendence of Conway Chain arrow notation. You may notice that this looks similar to Graham's function, where the succeeding term has as many up-arrows as the proceeding term. Although it is easy to overlook, the growth rate exhibited here is vastly greater than this. Although Bowers' will use this basic template again and again, each time he does it is vastly more powerful than before. Remember that the addition of just one additional bracket pair is a huge leap. Having a Graham's Number of brackets doesn't even count for squat anymore!!!

Hopefully you are now beginning to understand the above definitions. This is extremely powerful stuff, and yet this is small fries recursively speaking. We've already gone over numbers in this range using my Extended Hyper-E Notation. If this is heaven, its no place for mortals, and yet man's soul is drawn to contemplate these divine heights.

Note that Bowers' has no official names for operators at or above this range. I will call these the transcendent operators, and this is only the smallest among them! Bowers' also presents no actual notation for operators at or above this level. However he does include about 6 lines of text describing a notation that he uses on paper. Bowers' says that he has "operator notations" up to "8 entries":

I have operator notations for up to 8 entry arrays ( i.e. {a,b,c,d,e,f,g,h}), however they will be quite cumbersome to type out - a,b,and c are shown in numeric form, d is represented by angle brackets (as seen above), e is shown by [ ] like brackets, but rotated 90 degrees, where the brackets are above and below (uses e-1 bracket sets), f is shown by drawing f-1 vertical Saturn like rings around it, g is shown by drawing g-1 X-wing brackets around it, while h is shown by sandwiching all this in between h-1 3-D versions of [ ] brackets (above and below) which look like square plates with short side walls facing inwards.

What Bowers' is describing is a strange notation that would be difficult to type out. On Bowers' new site this paragraph is repeated again, but this time he promises to provide a pdf version. The description seems clear enough to venture a guess at what these notations would look like. Here is what 5-entry Extended Operator Notation (EON) probably would look like based on his description:

The square brackets, " [ ] ", are turned sideways so that they lie above and below the rest of the expression. The number of square brackets is actually 1 less than the 5th entry, "e", in the corresponding array. The reason for this is that every entry in the array has a default value of 1. This is stated explicitly on Bowers' new site, but its implied by the fact that the number of square brackets is e-1. It follows that when there are zero square brackets, then e-1=0, and e=1.

6-entry EON is described in the following brief line:

f is shown by drawing f-1 vertical Saturn like rings around it

This phrase does not seem immediately obvious to me like the last one. However, my best guess is that Bowers' wants ellipses (rings) drawn around the operator. This would look something like this:

The next line for 7-entry EON is even more difficult to parse:

g is shown by drawing g-1 X-wing brackets around it

What precisely are "X-wing brackets"? Since they are described as brackets, I'll assume they come in pairs. Here is my best idea of what these X-wing brackets might look like:

Lastly we have this snipet describing 8-entry EON:

while h is shown by sandwiching all this in between h-1 3-D versions of [ ] brackets (above and below) which look like square plates with short side walls facing inwards.

I assume by "all this" he means the above image sandwiched between the 8th-entry brackets. It would probably look something like this:

We see here that Bowers' Extended Operator Notation is now bursting at the seams, as if the ideas just could not be properly captured by any notation! Worst yet, Bowers' has no Extended Operator Notations beyond 8 entries. It should be obvious at this point however that we could continue to kth-entry EON, where k is any positive integer. All that would need to be done is for more types of brackets to be added. The addition of each new bracket type would be the addition of a new entry.

We will see again and again that Bowers' has incredible visions that seem to transcend proper notation. On the one hand, this is natural. As recursive functions become more and more complex, inevitably the notation does as well. However there can be dramatic reductions in complexity when an adequate notation is devised. The benefits of choosing a good notation is often more than cosmetic. Often it simplifies the existing system, allowing for further developments. In fact, Bowers' does devise a better notation ... array notation; and it does lead to further developments ... Extended Array Notation and beyond. It is quite likely that array notation was a response to the cumbersomeness of Bowers' Extended Operator Notation. However, for the purposes of explaining the rest of Extended Operator Notation I'll provide an alternative notation of my own devising.

The central problem of Bowers' extended Operator Notation is that it requires a new kind of "bracket" every time we want to add an entry. This is a bad choice in general because it means the system will always "cut off" at one point or another. It's the same problem the Egyptians had with their hieroglyphic numeration system. Just as decimal notation allows us to use the same symbols over and over again for new denominations, a simple notation can be devised that doesn't require a new type of bracket every time we want to add an entry.

The second problem with Bowers' Extended Operator Notation is that each bracket type, above the 4th entry brackets, has 1 less than the entry. This makes definitions utilizing extended bracket notations cumbersome because we need to factor in a minus 1. Admittedly it's a rather minor problem that can easily be accommodated for, but it is not ascetically pleasing. For the most part we want to keep things as symmetrical as possible because it avoids problems later on down the road, and keeps things simple and easy to remember.

I have devised an alternative notation which solves both of these problems that I think Bowers himself would approve of: I call it Dimensional Bracket Notation. The basic idea is that ordinary bracket notation represents a row of brackets. We can also create a plane of brackets. The dimensions of the plane of brackets defines the 4th and 5th entry. Specifically the length defines the 4th, while the height defines the 5th. If additional entries are desired, more dimensions can be added to the bracket space. Of coarse, since we can only use 2-dimensions in written notations, I will have to correct for that. This can be accomplished by representing 3-dimensional space as a rowof bracket planes, 4-dimensional space as a row of 3-dimensional spaces, and in general (n+1)-dimensional space as a row of n-dimensional spaces. I'll show how this can be done later, but first lets look at how planar bracket notation would work. First we establish the new operator notation and definition as follows:

Note that every operator above addition " {1} " , returns the base when the extender=1. For the sake of brevity I'll therefore omit this from the rest of the examples, but understand that it's implied. In this case the above definition is sufficient to explain how this operator works. Also note that the "b-1" is meant to be the extender, it is not meant to be one less than the previous expression (this results in a non-terminating loop, which is always verboten in googology).

Since the rest of the operators do not have names, I'll use the arguments from the third to the last to give them "designations". For example addition will be operator-1, multiplication operator-2, exponentiation operator-3, etc. The Expansion operator will be "operator-1,2", multi-expansion will be "operator-2,2", etc. The explosive operator is "operator-1,3", the detonative operator is "operator-1,4", the pentonative operator is "operator-1,5", etc. So the above operator would be operator-1,1,2.

We can continue to define a series of operators, the c,1,2 operators:

For convenience we can also establish the following inline notation:

Let a{(1){1}(1)}b be "a 1,1,2-ated to the b"

&

a{(1){c}(1)}b be "a c,1,2-ated to the b"

Here " (1) " represents separation between rows (separations between 1-dimensional spaces). Here we have two rows, each of only a single bracket.

We can also have more brackets in a row, just as we did before, to further extend:

As you can see, all the rules are the same as in bracket notation, except that we now have two rows instead of one. Inline we can write these notations as:

{a,b,1,2,2} = a{{(1){{1}}(1)}}b

{a,b,1,3,2} = a{{{(1){{{1}}}(1)}}}b

Beyond all the double row operators would of coarse be the triple row operators. Here are some examples:

Here is how they would look in my inline notation:

{a,b,1,1,3} = a{(1){(1){1}(1)}(1)}b

{a,b,c,1,3} = a{(1){(1){c}(1)}(1)}b

{a,b,1,2,3} = a{{(1){{(1){{1}}(1)}}(1)}}b

{a,b,1,3,3} = a{{{(1){{{(1){{{1}}}(1)}}}(1)}}}b

We can of coarse continue onto 4-row operators, 5-row operators, and so on, filling out a plane. To go beyond this we have to enter the "3rd dimension" of brackets. Because we are working with a two dimensional display however, I'll use the symbol " (2) " to separate bracket planes. The number of such planes is the value of the 6th entry. Here is the definition for the smallest 3-dimensional operator:

The result of this operator is that the first 4 entries remain fixed at "a", while the 5th entry gets larger an larger. In other words the bracket plane becomes taller and taller, while it's width remains fixed at a.

With this now established we can go further still with bracket spaces. Here are some examples of 3-dimensional bracket operators:

Inline these are even more difficult to write out. Here are some examples:

Although it's already pretty complicated, we can continue on to the 4th dimension. We simply create a new separator, " (3) ", to separate 3d bracket spaces. We then define the smallest 4-dimensional operator:

To go even further we can simply add new separators, (4), (5), (6), etc. With the addition of each new separator we add one more entry to the Extended Operator Notation. Note that we could continue this indefinitely although the notation does become quite cumbersome. The number of bracket pairs in the dimensional bracket notation is equal to the product of the 4th to the last entry. For example {a,b,1,3,3,3} would have 3x3x3 or 27 bracket pairs in the dimensional bracket notation.

Now that we have a workable notation for Extending Operator notation arbitrarily, how does it actually work? How do we resolve these expressions and what is the general principle behind them? In the next article I'll explain how these notations work and how they lead naturally to array notation. Array notation forms the basis of all of Bowers' later work, so the next article will be key to our further development of the notation.