In mathematics, the hyperoperation sequence is an infinite sequence of arithmetic operations (called hyperoperations in this context) that starts with a unary operation (the successor function with n = 0). The sequence continues with the binary operations of addition (n = 1), multiplication (n = 2), and exponentiation (n = 3).
After that, the sequence proceeds with further binary operations extending beyond exponentiation, using right-associativity. For the operations beyond exponentiation, the nth member of this sequence is named by Reuben Goodstein after the Greek prefix of n suffixed with -ation (such as tetration (n = 4), pentation (n = 5), hexation (n = 6), etc.) and can be written as using n − 2 arrows in Knuth's up-arrow notation.Each hyperoperation may be understood recursively in terms of the previous one by:
a[n]b=\underbrace{a[n-1](a[n-1](a[n-1]( … [n-1](a[n-1](a[n-1]a)) … )))}\displaystyle, n\ge2
It may also be defined according to the recursion rule part of the definition, as in Knuth's up-arrow version of the Ackermann function:
a[n]b=a[n-1]\left(a[n]\left(b-1\right)\right), n\ge1
This can be used to easily show numbers much larger than those which scientific notation can, such as Skewes's number and googolplexplex (e.g.
50[50]50
This recursion rule is common to many variants of hyperoperations.
The hyperoperation sequence
Hn(a,b)\colon
3 | |
(N | |
0) |
→ N0
Hn\colon
2 | |
(N | |
0) |
→ N0
Hn(a,b)=a[n]b=\begin{cases} b+1&ifn=0\\ a&ifn=1andb=0\\ 0&ifn=2andb=0\\ 1&ifn\ge3andb=0\\ Hn-1(a,Hn(a,b-1))&otherwise \end{cases}
(Note that for n = 0, the binary operation essentially reduces to a unary operation (successor function) by ignoring the first argument.)
For n = 0, 1, 2, 3, this definition reproduces the basic arithmetic operations of successor (which is a unary operation), addition, multiplication, and exponentiation, respectively, as
\begin{align} H0(a,b)&=1+b,\\ H1(a,b)&=a+b,\\ H2(a,b)&=a x b,\\ H3(a,b)&=a\uparrow{b}=ab. \end{align}
The
Hn
So what will be the next operation after exponentiation? We defined multiplication so that
H2(a,3)=a[2]3=a x 3=a+a+a,
H3(a,3)=a[3]3=a\uparrow3=a3=a x a x a,
H4(a,3)=a[4]3=a\uparrow\uparrow3=\operatorname{tetration}(a,3)=
aa | |
a |
,
\begin{align} H4(a,b)&=a\uparrow\uparrow{b},\\ H5(a,b)&=a\uparrow\uparrow\uparrow{b},\\ \ldots&\\ Hn(a,b)&=a\uparrown-2bforn\ge3,\\ \ldots&\\ \end{align}
Knuth's notation could be extended to negative indices ≥ −2 in such a way as to agree with the entire hyperoperation sequence, except for the lag in the indexing:
Hn(a,b)=a\uparrown-2bforn\ge0.
The hyperoperations can thus be seen as an answer to the question "what's next" in the sequence: successor, addition, multiplication, exponentiation, and so on. Noting that
\begin{align} a+b&=1+(a+(b-1))\\ a ⋅ b&=a+(a ⋅ (b-1))\\ ab&=a ⋅ \left(a(b\right)\\ a[4]b&=aa\end{align}
the relationship between basic arithmetic operations is illustrated, allowing the higher operations to be defined naturally as above. The parameters of the hyperoperation hierarchy are sometimes referred to by their analogous exponentiation term; so a is the base, b is the exponent (or hyperexponent), and n is the rank (or grade), and moreover,
Hn(a,b)
H4(7,9)
H123(456,789)
In common terms, the hyperoperations are ways of compounding numbers that increase in growth based on the iteration of the previous hyperoperation. The concepts of successor, addition, multiplication and exponentiation are all hyperoperations; the successor operation (producing x + 1 from x) is the most primitive, the addition operator specifies the number of times 1 is to be added to itself to produce a final value, multiplication specifies the number of times a number is to be added to itself, and exponentiation refers to the number of times a number is to be multiplied by itself.
Define iteration of a function of two variables as
fx(a,b)=\begin{cases} f(a,b)&ifx=1\\ f(a,fx-1(a,b))&ifx>1 \end{cases}
x,n,a,b\geq0,
\begin{array}{lcl} H0(a,b)&=&b+1\\ H1(a,0)&=&a\\ H2(a,0)&=&0\\ Hn+3(a,0)&=&1\\ Hn+1(a,b+1)&=&
b+1 | |
H | |
n |
(a,Hn+1(a,0))
x+2 | |
\\ H | |
n |
(a,b)&=&Hn
x+1 | |
(a,H | |
n |
(a,b)) \end{array}
As iteration is associative, the last line can be replaced by
x+2 | |
\begin{array}{lcl} H | |
n |
(a,b)&=&
x+1 | |
H | |
n |
(a,Hn(a,b)) \end{array}
The definitions of the hyperoperation sequence can naturally be transposed to term rewriting systems (TRS).
The basic definition of the hyperoperation sequence corresponds with the reduction rules
\begin{array}{lll} (r1)&H(0,a,b)& → &S(b)\\ (r2)&H(S(0),a,0)& → &a\\ (r3)&H(S(S(0)),a,0)& → &0\\ (r4)&H(S(S(S(n))),a,0)& → &S(0)\\ (r5)&H(S(n),a,S(b))& → &H(n,a,H(S(n),a,b)) \end{array}
To compute
Hn(a,b)
\langlen,a,b\rangle
Then, repeatedly until no longer possible, three elements are popped and replaced according to the rules[1]
\begin{array}{lllllllll} (r1)&0&,&a&,&b& → &(b+1)\\ (r2)&1&,&a&,&0& → &a\\ (r3)&2&,&a&,&0& → &0\\ (r4)&(n+3)&,&a&,&0& → &1\\ (r5)&(n+1)&,&a&,&(b+1)& → &n&,&a&,&(n+1)&,&a&,&b \end{array}
Schematically, starting from
\langlen,a,b\rangle
WHILE stackLength <> 1
Example
Compute
H2(2,2) → *4
The reduction sequence is[1] [2]
\underline{H(S(S(0)),S(S(0)),S(S(0)))} | |
→ r5H(S(0),S(S(0)),\underline{H(S(S(0)),S(S(0)),S(0))}) | |
→ r5H(S(0),S(S(0)),H(S(0),S(S(0)),\underline{H(S(S(0)),S(S(0)),0)})) | |
→ r3H(S(0),S(S(0)),\underline{H(S(0),S(S(0)),0)}) | |
→ r2\underline{H(S(0),S(S(0)),S(S(0)))} | |
→ r5H(0,S(S(0)),\underline{H(S(0),S(S(0)),S(0))}) | |
→ r5H(0,S(S(0)),H(0,S(S(0)),\underline{H(S(0),S(S(0)),0)})) | |
→ r2H(0,S(S(0)),\underline{H(0,S(S(0)),S(S(0)))}) | |
→ r1\underline{H(0,S(S(0)),S(S(S(0))))} | |
→ r1S(S(S(S(0)))) |
When implemented using a stack, on input
\langle2,2,2\rangle
the stack configurations | represent the equations | |
\underline{2,2,2} | H2(2,2) | |
→ r51,2,\underline{2,2,1} | =H1(2,H2(2,1)) | |
→ r51,2,1,2,\underline{2,2,0} | =H1(2,H1(2,H2(2,0))) | |
→ r31,2,\underline{1,2,0} | =H1(2,H1(2,0)) | |
→ r2\underline{1,2,2} | =H1(2,2) | |
→ r50,2,\underline{1,2,1} | =H0(2,H1(2,1)) | |
→ r50,2,0,2,\underline{1,2,0} | =H0(2,H0(2,H1(2,0))) | |
→ r20,2,\underline{0,2,2} | =H0(2,H0(2,2)) | |
→ r1\underline{0,2,3} | =H0(2,3) | |
→ r14 | =4 |
The definition using iteration leads to a different set of reduction rules
\begin{array}{lll} (r6)&H(S(0),0,a,b)& → &S(b)\\ (r7)&H(S(0),S(0),a,0)& → &a\\ (r8)&H(S(0),S(S(0)),a,0)& → &0\\ (r9)&H(S(0),S(S(S(n))),a,0)& → &S(0)\\ (r10)&H(S(0),S(n),a,S(b))& → &H(S(b),n,a,H(S(0),S(n),a,0))\\ (r11)&H(S(S(x)),n,a,b)& → &H(S(0),n,a,H(S(x),n,a,b)) \end{array}
As iteration is associative, instead of rule r11 one can define
\begin{array}{lll} (r12)&H(S(S(x)),n,a,b)& → &H(S(x),n,a,H(S(0),n,a,b)) \end{array}
Like in the previous section the computation of
Hn(a,b)=
1 | |
H | |
n(a,b) |
Initially the stack contains the four elements
\langle1,n,a,b\rangle
Then, until termination, four elements are popped and replaced according to the rules[1]
\begin{array}{lllllllll} (r6)&1&,0&,a&,b& → &(b+1)\\ (r7)&1&,1&,a&,0& → &a\\ (r8)&1&,2&,a&,0& → &0\\ (r9)&1&,(n+3)&,a&,0& → &1\\ (r10)&1&,(n+1)&,a&,(b+1)& → &(b+1)&,n&,a&,1&,(n+1)&,a&,0\\ (r11)&(x+2)&,n&,a&,b& → &1&,n&,a&,(x+1)&,n&,a&,b \end{array}
Schematically, starting from
\langle1,n,a,b\rangle
Example
Compute
H3(0,3) → *0
On input
\langle1,3,0,3\rangle
\begin{align} &\underline{1,3,0,3} → r103,2,0,\underline{1,3,0,0} → r9\underline{3,2,0,1} → r111,2,0,\underline{2,2,0,1} → r111,2,0,1,2,0,\underline{1,2,0,1}\\ & → r101,2,0,1,2,0,1,1,0,\underline{1,2,0,0} → r81,2,0,1,2,0,\underline{1,1,0,0} → r71,2,0,\underline{1,2,0,0} → r8\underline{1,2,0,0} → r80. \end{align}
The corresponding equalities are
\begin{align} &H3(0,3) =
3 | |
H | |
2(0,H |
3(0,0)) =
3 | |
H | |
2(0,1) |
=
2 | |
H | |
2(0,1)) |
=H2(0,H2(0,H2(0,1))\\ &=H2(0,H2(0,H1(0,H2(0,0)))) =H2(0,H2(0,H1(0,0))) =H2(0,H2(0,0)) =H2(0,0) =0. \end{align}
When reduction rule r11 is replaced by rule r12, the stack is transformed acoording to
\begin{array}{lllllllll} (r12)&(x+2)&,n&,a&,b& → &(x+1)&,n&,a&,1&,n&,a&,b \end{array}
The successive stack configurations will then be
\begin{align} &\underline{1,3,0,3} → r103,2,0,\underline{1,3,0,0} → r9\underline{3,2,0,1} → r122,2,0,\underline{1,2,0,1} → r102,2,0,1,1,0,\underline{1,2,0,0}\\ & → r82,2,0,\underline{1,1,0,0} → r7\underline{2,2,0,0} → r121,2,0,\underline{1,2,0,0} → r8\underline{1,2,0,0} → r80 \end{align}
The corresponding equalities are
\begin{align} &H3(0,3) =
3 | |
H | |
2(0,H |
3(0,0)) =
3 | |
H | |
2(0,1) |
=
2 | |
H | |
2(0,H |
2(0,1)) =
2 | |
H | |
2(0,H |
1(0,H2(0,0)))\\ &=
2 | |
H | |
2(0,H |
1(0,0)) =
2 | |
H | |
2(0,0) |
=H2(0,H2(0,0)) =H2(0,0) =0 \end{align}
Remarks
H3(0,3)=0
Hn(a,b)
Hn(a,b)=H(a,Hn-1(a,b))
H
H4(2,4)
Hn(a,b)
Hn-1(a,H(a,b))
H4(2,4)
H3(0,3)
Below is a list of the first seven (0th to 6th) hyperoperations (0⁰ is defined as 1).
n | Operation, Hn(a, b) | Definition | Names | Domain |
---|---|---|---|---|
0 | 1+b a[0]b | 1+\underbrace{1+1+1+ … +1+1+1}\displaystyle | Increment, successor, zeration, hyper0 | Arbitrary |
1 | a+b a[1]b | a+\underbrace{1+1+1+ … +1+1+1}\displaystyle | Addition, hyper1 | |
2 | a x {b} a[2]b | \underbrace{a+a+a+ … +a+a+a}\displaystyle | Multiplication, hyper2 | |
3 | ab a[3]b | \underbrace{a x a x a x … x a x a x a}\displaystyle | Exponentiation, hyper3 | b real, with some multivalued extensions to complex numbers |
4 | ba a[4]b | \underbrace{a[3](a[3](a[3]( … [3](a[3](a[3]a)) … )))}\displaystyle | Tetration, hyper4 | a ≥ 0 or an integer, b an integer ≥ −1 [5] (with some proposed extensions) |
5 | ba a[5]b | \underbrace{a[4](a[4](a[4]( … [4](a[4](a[4]a)) … )))}\displaystyle | Pentation, hyper5 | a, b integers ≥ −1 |
6 | a[6]b | \underbrace{a[5](a[5](a[5]( … [5](a[5](a[5]a)) … )))}\displaystyle | Hexation, hyper6 |
Hn(0, b) =
b + 1, when n = 0
b, when n = 1
0, when n = 2
1, when n = 3 and b = 0 [6] [7]
0, when n = 3 and b > 0 [6] [7]
1, when n > 3 and b is even (including 0)
0, when n > 3 and b is odd
Hn(1, b) =
b, when n = 2
1, when n ≥ 3
Hn(a, 0) =
0, when n = 2
1, when n = 0, or n ≥ 3
a, when n = 1
Hn(a, 1) =
a, when n ≥ 2
Hn(a, a) =
Hn+1(a, 2), when n ≥ 1
Hn(a, −1) =[5]
0, when n = 0, or n ≥ 4
a − 1, when n = 1
−a, when n = 2
, when n = 3
Hn(2, 2) =
3, when n = 0
4, when n ≥ 1, easily demonstrable recursively.
One of the earliest discussions of hyperoperations was that of Albert Bennett in 1914, who developed some of the theory of commutative hyperoperations (see below). About 12 years later, Wilhelm Ackermann defined the function
\phi(a,b,n)
In his 1947 paper, Reuben Goodstein introduced the specific sequence of operations that are now called hyperoperations, and also suggested the Greek names tetration, pentation, etc., for the extended operations beyond exponentiation (because they correspond to the indices 4, 5, etc.). As a three-argument function, e.g.,
G(n,a,b)=Hn(a,b)
\phi(a,b,n)
\phi
\phi(a,b,n)
\phi
\phi(a,b,3)=G(4,a,b+1)=a[4](b+1)
\phi(a,b,3)
| |||||||||||||
a |
a[4]b
This is a list of notations that have been used for hyperoperations.
Name | Notation equivalent to Hn(a,b) | Comment | |
---|---|---|---|
Knuth's up-arrow notation | a\uparrown-2b | Used by Knuth (for n ≥ 3), and found in several reference books. | |
Hilbert's notation | \phin(a,b) | Used by David Hilbert. | |
Goodstein's notation | G(n,a,b) | Used by Reuben Goodstein. | |
Original Ackermann function | \begin{matrix} \phi(a,b,n-1) for1\len\le3\\ \phi(a,b-1,n-1) forn\ge4 \end{matrix} | Used by Wilhelm Ackermann (for n ≥ 1) | |
Ackermann–Péter function | A(n,b-3)+3 fora=2 | This corresponds to hyperoperations for base 2 (a = 2) | |
Nambiar's notation | a ⊗ n-1b | Used by Nambiar (for n ≥ 1) | |
Superscript notation | a{}(n)b | Used by Robert Munafo. | |
Subscript notation (for lower hyperoperations) | a{}(n)b | Used for lower hyperoperations by Robert Munafo. | |
Operator notation (for "extended operations") | aOn-1b | Used for lower hyperoperations by John Doner and Alfred Tarski (for n ≥ 1). | |
Square bracket notation | a[n]b | Used in many online forums; convenient for ASCII. | |
Conway chained arrow notation | a\tob\to(n-2) | Used by John Horton Conway (for n ≥ 3) |
See main article: Ackermann function.
In 1928, Wilhelm Ackermann defined a 3-argument function
\phi(a,b,n)
\phi
\phi(a,0,n)=a
n | Operation | Comment | |
---|---|---|---|
0 | F0(a,b)=a+b | ||
1 | F1(a,b)=a ⋅ b | ||
2 | F2(a,b)=ab | ||
3 | F3(a,b)=a[4](b+1) | An offset form of tetration. The iteration of this operation is different than the iteration of tetration. | |
4 | F4(a,b)=(x\mapstoa[4](x+1))b(a) | Not to be confused with pentation. |
Another initial condition that has been used is
A(0,b)=2b+1
a=2
In 1984, C. W. Clenshaw and F. W. J. Olver began the discussion of using hyperoperations to prevent computer floating-point overflows.Since then, many other authors have renewed interest in the application of hyperoperations to floating-point representation. (Since Hn(a, b) are all defined for b = -1.) While discussing tetration, Clenshaw et al. assumed the initial condition
Fn(a,0)=0
n | Operation | Comment | |
---|---|---|---|
0 | F0(a,b)=b+1 | ||
1 | F1(a,b)=a+b | ||
2 | F2(a,b)=a ⋅ b=eln(a) | ||
3 | F3(a,b)=ab | ||
4 | F4(a,b)=a[4](b-1) | An offset form of tetration. The iteration of this operation is much different than the iteration of tetration. | |
5 | F5(a,b)=\left(x\mapstoa[4](x-1)\right)b(0)=0ifa>0 | Not to be confused with pentation. |
An alternative for these hyperoperations is obtained by evaluation from left to right. Since
\begin{align} a+b&=(a+(b-1))+1\\ a ⋅ b&=(a ⋅ (b-1))+a\\ ab&=\left(a(b-1)\right) ⋅ a \end{align}
a(n+1)b=\left(a(n(b-1)\right)(n)a
\begin{align} a(1)b&=a+b\\ a(2)0&=0\\ a(n)1&=a&forn>2\\ \end{align}
This was extended to ordinal numbers by Doner and Tarski, by :
\begin{align} \alphaO0\beta&=\alpha+\beta\\ \alphaO\gamma\beta&=\sup\limitsη<\beta,(\alphaO\gammaη)O\xi\alpha \end{align}
It follows from Definition 1(i), Corollary 2(ii), and Theorem 9, that, for a ≥ 2 and b ≥ 1, that
aOnb=a(nb
But this suffers a kind of collapse, failing to form the "power tower" traditionally expected of hyperoperators:[8]
\alpha(4)(1+\beta)=
\left(\alpha\beta\right) | |
\alpha |
.
If α ≥ 2 and γ ≥ 2,[Corollary 33(i)][8]
\alpha(1\beta\leq\alpha(1(1+3\alpha\beta).
n | Operation | Comment | |||||
---|---|---|---|---|---|---|---|
0 | F0(a,b)=a+1 | Increment, successor, zeration | |||||
1 | F1(a,b)=a+b | ||||||
2 | F2(a,b)=a ⋅ b | ||||||
3 | F3(a,b)=ab | ||||||
4 | F4(a,b)=
| Not to be confused with tetration. | |||||
5 | F5(a,b)=\left(x\mapsto
\right)b-1(a) | Not to be confused with pentation. Similar to tetration. |
Commutative hyperoperations were considered by Albert Bennett as early as 1914, which is possibly the earliest remark about any hyperoperation sequence. Commutative hyperoperations are defined by the recursion rule
Fn+1(a,b)=\exp(Fn(ln(a),ln(b)))
n | Operation | Comment | |||||
---|---|---|---|---|---|---|---|
0 | F0(a,b)=ln\left(ea+eb\right) | Smooth maximum | |||||
1 | F1(a,b)=a+b | ||||||
2 | F2(a,b)=a ⋅ b=eln(a) | This is due to the properties of the logarithm. | |||||
3 | F3(a,b)=aln(b)=eln(a)ln(b) | ||||||
4 | F4(a,b)=
| Not to be confused with tetration. |
R. L. Goodstein used the sequence of hyperoperators to create systems of numeration for the nonnegative integers. The so-called complete hereditary representation of integer n, at level k and base b, can be expressed as follows using only the first k hyperoperators and using as digits only 0, 1, ..., b − 1, together with the base b itself:
b [''k''] xk [''k'' − 1] xk - 1 [''k'' - 2] ... [2] x2 [1] x1
where xk, ..., x1 are the largest integers satisfying (in turn)
b [''k''] xk ≤ n
b [''k''] xk [''k'' − 1] xk - 1 ≤ n
...
b [''k''] xk [''k'' − 1] xk - 1 [''k'' - 2] ... [2] x2 [1] x1 ≤ n
Any xi exceeding b - 1 is then re-expressed in the same manner, and so on, repeating this procedure until the resulting form contains only the digits 0, 1, ..., b - 1, together with the base b. Unnecessary parentheses can be avoided by giving higher-level operators higher precedence in the order of evaluation; thus,
level-1 representations have the form b [1] X, with X also of this form;
level-2 representations have the form b [2] X [1] Y, with X,Y also of this form;
level-3 representations have the form b [3] X [2] Y [1] Z, with X,Y,Z also of this form;
level-4 representations have the form b [4] X [3] Y [2] Z [1] W, with X,Y,Z,W also of this form;
and so on.
In this type of base-b hereditary representation, the base itself appears in the expressions, as well as "digits" from the set . This compares to ordinary base-2 representation when the latter is written out in terms of the base b; e.g., in ordinary base-2 notation, 6 = (110)2 = 2 [3] 2 [2] 1 [1] 2 [3] 1 [2] 1 [1] 2 [3] 0 [2] 0, whereas the level-3 base-2 hereditary representation is 6 = 2 [3] (2 [3] 1 [2] 1 [1] 0) [2] 1 [1] (2 [3] 1 [2] 1 [1] 0). The hereditary representations can be abbreviated by omitting any instances of [1] 0, [2] 1, [3] 1, [4] 1, etc.; for example, the above level-3 base-2 representation of 6 abbreviates to 2 [3] 2 [1] 2.
Examples:The unique base-2 representations of the number 266, at levels 1, 2, 3, 4, and 5 are as follows:
Level 1: 266 = 2 [1] 2 [1] 2 [1] ... [1] 2 (with 133 2s)
Level 2: 266 = 2 [2] (2 [2] (2 [2] (2 [2] 2 [2] 2 [2] 2 [2] 2 [1] 1)) [1] 1)
Level 3: 266 = 2 [3] 2 [3] (2 [1] 1) [1] 2 [3] (2 [1] 1) [1] 2
Level 4: 266 = 2 [4] (2 [1] 1) [3] 2 [1] 2 [4] 2 [2] 2 [1] 2
Level 5: 266 = 2 [5] 2 [4] 2 [1] 2 [5] 2 [2] 2 [1] 2