# Tetration

Multiplication is repeated addition: *2 * 5* is defined as *2 + 2 + 2 + 2 + 2*.

Exponentiation is repeated multiplication: *2 ^{5}* is defined as

*2 * 2 * 2 * 2 * 2*.

Repeated exponentiation is known as ** tetration**:

*2 ↑↑ 5*is defined as

*2*.

^{(2(2(22)))}Exponential growth is difficult for people to reason about (population growth, the spread of disease, etc). The numbers are surprising and overwhelming. Well, tetration grows **a lot faster than that**. Here are the first few values of *2 ↑↑ n*:

n |
2 ↑↑ n |
---|---|

0 | 1 |

1 | 2 |

2 | 4 |

3 | 16 |

4 | 65,536 |

5 | > 10^{19,729} |

That is to say, *T = 2 ↑↑ 5* is a number with almost twenty thousand digits.

*T* represents a **sweet spot for big numbers**. It is perhaps the smallest number that is easy to define, dramatically larger than any real-world number, and also ** physically obtainable**. By “physically obtainable” I mean that it can actually be displayed on a computer and witnessed in full, although this might take a little work.

First of all, some programming langauges represent numbers using **bit sequences of fixed length**. There are infinitely many numbers and only finitely many bit sequences of a given length, so it is only possible to deal with numbers within a certain bound. For example, the largest 64-bit number is *2 ^{64} - 1 = 18,446,744,073,709,551,615*, a number with only twenty digits. Even on a platform with 65,536-bit numbers,

*T*would be just a little too big to represent.

So bearing witness to *T* will require a language with unbounded numbers, like **Python**. But still there will be problems:

By default Python won’t display such a large number. To see *T*, the default must be overridden:

Will that work? That depends on the local conditions. Up until just recently, trying to display *T* inside **Emacs** would cause it to freeze hard due to a long-standing and unbelievably annoying bug with long lines. So don’t try this on Emacs version 28 or earlier. I haven’t tried it on other platforms, but my guess is that it would cause problems elsewhere as well.

The first and last digits of *T* in base-10 are: *2003…6736*. As expected, it is an even number.

The base-10 representation of *T* contains ** every single three-digit number sequence**. That is, it contains

*000*,

*001*, …, and

*999*as subsequences.