Knuth's up-arrow notation
| Table of contents |
|
2 Notation 3 Generalizations 4 Definition 5 Tables of values 6 External links |
Introduction
Multiplication can be defined as iterated addition:
According to this definition,
- etc.


Notation
In expressions such as ab, the notation for exponentiation is usually to write the exponent b as a superscript to the base number a. But many environments—such as programming languages and plain-text e-mail— do not support such two-dimensional layout. People have adopted the linear notation a↑b for such environments; the up-arrow suggests 'raising to the power of'. If the character set doesn't contain an up arrow, the caret ^ is used instead.
The superscript notation ab doesn't lend itself well for generalization, which explains why Knuth chose to work from the inline notation a↑b instead.
Generalizations
Some numbers are so large that multiple arrows of Knuth's up-arrow notation become too cumbersome; then an n-arrow operator ↑n is useful (and also for descriptions with a variable number of arrows), or equivalently, hyper operators.Some numbers are so large that even that notation is not sufficient. Graham's number is an example. The Conway chained arrow can then be used: a chain of three elements is equivalent with the other notations, but a chain of four or more is even more powerful.
Definition
The up-arrow notation is formally defined by
All up-arrow operators (including normal exponentiation, a↑b) are right associative, i.e. evaluation is to take place from right to left in an expression that contains two or more such operators. For example, a↑b↑c = a↑(b↑c), not (a↑b)↑c; for example

There is good reason for the choice of this right-to-left order of evaluation. If we used left-to-right evaluation, then a↑↑b would equal
a↑(a↑(b-1)), so that ↑↑ would not be an essentially new operation.
Right associativity is also natural because we can rewrite the iterated arrow expression
that appears
in the expansion of a↑n+1b as
, so that all the as appear
as left operands of arrow operators. This is significant
since the arrow operators are not commutative.
Tables of values
Computing
can be restated in terms of an infinite table. We place the numbers 2 n in the top row, and fill the left column with values 2. To determine a number in the table, take the number immediately to the left, then look up the required number in the previous row, at the position given by the number just taken.
| m\\n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | formula |
|---|---|---|---|---|---|---|---|---|
| 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 2n |




