I'd like to tell you about the paradox of the largest tweetable number. The platform is called X now, but I'll use the old terminology of tweeting and Twitter. There is a limitation when you make a tweet of 280 characters, and you could use that space to tweet numbers. For example, you could simply fill the tweet with digits, something like 28765 and so on, and you would thereby be tweeting a certain number.
What is the largest possible number you could tweet in that way? One natural approach is to fill the tweet entirely with nines, which would give you an enormous number: one less than 10 to the 280. But we can tweet much larger numbers than that. For example, we could write a description of a number rather than the number itself. I could write "one centillion," and a centillion is 10 to the 303, a number far larger than what you get by filling the tweet with the digit nine.
So what is the biggest possible number you can tweet? This is really what the paradox of the largest tweetable number is about: an exploration of how it is that we can describe enormous numbers using a very small description.
We can describe much bigger numbers than this. For example, consider a googol, the traditional term for 10 to the 100. But we have already tweeted bigger numbers than a googol simply by filling a tweet with digits: with 280 digits, the resulting number is already larger than a googol.
If we want to tweet even bigger numbers, we might turn to mathematical operations, for example, the factorial. We could write "a googol factorial," or better still, fill the entire tweet with exclamation points after a googol, producing the factorial of this already enormous number. In this way, we can begin to tweet truly astronomical quantities.
This brings me to the central argument I want to make about the paradox of the largest tweetable number. First, we observe that there are, in principle, only finitely many tweets one can compose. Any Unicode character you can type is permitted, and the standard limit allows 280 characters. If N is the number of distinct characters available, then the total number of possible tweets is at most N to the 280th power.
The reality is slightly more complicated: some Unicode characters are control characters that place accents on preceding characters, and Twitter's algorithm counts such a pair as only a single symbol. So the limit is not exactly N to the 280. But this is a minor technical detail; the essential point stands: there are only finitely many possible tweets.
Some of those tweets describe numbers. A tweet might say "the number of grains of sand in the Sahara Desert," or "the number of stars in the Milky Way galaxy as of this moment," or it might contain a mathematical expression such as "a googol factorial factorial factorial." Some tweets, of course, describe your breakfast or your vacation in Athens, but some describe numbers. Because there are only finitely many possible tweets, there are only finitely many numbers that could ever be tweeted, and therefore there must be a largest tweetable number.
That is the argument I want to examine. The natural questions to ask are: is it a good argument? Is there really a largest tweetable number? And if so, could we ever hope to discover what it is?
A few years ago, I ran this contest. I posted a tweet saying, "Who is going to tweet the largest possible number?" Submissions came in immediately. I had even offered a prize in the tweet, a million dollars. There was, however, a small asterisk, because the footnote condition stated that the prize amount would be a million dollars divided by the value of the winning submission.
Since I cannot easily afford a million dollars on a weekend, I immediately followed up my announcement by tweeting my own entry in reply: "One million." I simply wrote out the words "one million." This was a matter of prudent urgency, because with that submission in place, the prize amount would be divided by a million, leaving me on the hook for about a dollar or less, much easier on the wallet.
Nevertheless, I was alarmed when someone submitted the following entry to the contest.
One person tweeted an image of a gigantic number one. The question arose whether this constituted a larger number than any of the numbers I had tweeted, since this numeral was enormous in size. If it were counted as the winning entry, the largest number, then I would have to divide a million by one, which would be quite worrisome for the prize. But does it really count as a large number? It is just the number one, which is not very large on the numerical scale, however large it may appear when written at that size.
This is a conflation between number and numeral. A large numeral is not the same thing as a large number. The numeral is the symbol we use to represent the number, whereas the number is the thing itself, the abstract quantity. It reminds me of a wonderful children's novel I read in my childhood, The Phantom Tollbooth by Norton Juster. In that novel there is the City of Digitopolis, beneath which lies the number mine where numbers are excavated from stone. The miners had found the largest number: it was an enormous number three, over four meters tall. That is precisely the same kind of mistake as the one made in that tweet.
This distinction between number and numeral is an instance of what is sometimes called the syntax-semantics dichotomy.
There is another way to illustrate this point. Once, at high table at Oxford, a formal college dinner where scholars discuss various topics, my colleague Alex Moran was citing customary practice in the North of England. What he said was, "I generally use pants as trousers." The question is: was he talking about the words, or about the things themselves? It is worth noting for any Americans in the audience that in British English, the word pants is sometimes used to refer to what in the United States we would call underwear or underpants. So when he said, "I generally use pants as trousers," the sentence may carry a rather different meaning than one might first suppose. I took a discreet glance under the table, and he did not appear to be wearing pants as trousers at the time, so I concluded he was talking about the words, saying that he uses pants and trousers to mean the same thing, as we generally do in the United States.
This distinction between using a word and mentioning a word is also known as the use–mention distinction, and it connects to the broader syntax–semantics dichotomy. My daughter Hypatia once asked me, "Does everything rhyme with itself?" And I replied, "No, those two words don't rhyme," which was, of course, not what she was really asking. She was using the words everything and itself, asking a general question about rhyme, whereas I answered as though she were mentioning those two words and asking whether the word everything rhymes with the word itself. Those two words do not rhyme, so in that reading my answer was correct, but it was not the question she intended.
There are actually four combinations to consider here, arising from whether each of the two terms is used or mentioned. First: does the word "everything" rhyme with itself? Here we are mentioning everything and using itself. One might reasonably say yes. Every word rhymes with itself. It is a poor poet who rhymes a word with itself, but mathematically speaking, rhyming is a reflexive relation, and so the word everything does rhyme with itself in that sense. Second: does everything rhyme with "itself"? Here we use everything and mention itself. The answer is no, because the word hippopotamus, for instance, does not rhyme with the word itself, so not everything rhymes with that word.
Third: does "everything" rhyme with "itself"? Here we mention both words. The answer is no, since those two words simply do not rhyme with each other. Fourth and finally: does everything rhyme with itself? Here we use both words, and the answer is yes. If we interpret everything as ranging over every word, then yes, every word rhymes with itself. That is, I think, quite a reasonable answer.
I had another entry to the largest tweetable number contest. The person had simply tweeted the number zero. You might say, "Well, obviously that's not the largest tweetable number," except it depends on what order you're using. In ordinary numerical order, zero is not a very big number; in fact, it's the smallest natural number.
But what if you were thinking of the numbers in a different order, for example, in alphabetical order? Then zero would perhaps be the last number, the largest in alphabetical order. It would come at the very end of the book of numbers if that book were arranged alphabetically, and in that sense zero is a very large number indeed.
Of course, this would mean dividing the million-dollar prize by zero, which might be considered infinite, and then I would really be in trouble. Fortunately, my lawyers would argue that a million divided by zero is undefined rather than infinite, so I'm safe.
Let us get down to the details of describing very large numbers in tweets. That is really what the paradox of the largest tweetable number is about: it is a reason to think carefully about how we can describe enormous numbers in a very small space. One natural approach is to use exponentials: 2 to the 100 is a pretty big number, and 2 to the 1,000 is bigger still. But we can go further by using what are called iterated exponentials, expressions of the form a to the b to the c, and so on.
An iterated exponential is, on the one hand, potentially ambiguous, because it admits two different interpretations. We could interpret a to the b to the c as a raised to the quantity (b to the c), associating upward from the right, or we could interpret it as (a to the b) raised to the c, associating from the left. Both readings are legitimate parsings of the same expression, yet they do not always yield the same result. This is simply another way of saying that exponentiation is not associative: the order in which you perform the exponentiations matters.
The difference between the two interpretations becomes clear when you apply the exponentiation rule. The left-associating version, (a to the b) to the c, equals a to the (b times c), whereas the right-associating version gives a to the (b to the c). Since b to the c is generally much larger than b times c, the right-associating interpretation produces a far larger number. This observation also resolves the ambiguity: when someone writes a to the b to the c, we almost always mean the right-associating version, precisely because we already have a compact way to express the left-associating version using the multiplication rule for exponents.
With this convention in hand, one can fill an entire tweet with a right-associating tower of iterated exponentials, say, 10 to the 10 to the 10 to the 10, continuing all the way to the character limit, and thereby describe an extraordinarily large number.
We already mentioned a googol, which is 10 to the 100. Written out in decimal, it is a one followed by 100 zeros. Incidentally, the company Google, as in searching online, is named after this number, though spelled differently: the number ends in "-ol," while the company ends in "-le." There is another number called a googolplex, which is 10 to the googol, or in other words, 10 to the 10 to the 100. This is an instance of iterated exponentials. (The headquarters of Google is also called the Googleplex, which is rather fitting.) In decimal, a googolplex is a one followed by a googol number of zeros.
There is a striking feature of the googolplex worth dwelling on. It is very easy to describe: I just did it in a single expression, 10 to the 10 to the 100, which would fit comfortably in a tweet. But now consider a typical number less than a googolplex. Such a number, written in decimal, would consist of approximately a googol many essentially random digits. The only way to specify the particular value of such a number would be to recite those digits one by one.
Could you actually do that? Suppose you were extraordinarily fast at reciting digits, say, a million digits per second. Physicists tell us the age of the universe is about 13.8 billion years, which is less than 10 to the 18 seconds. Reciting a million, that is 10 to the 6, digits per second for 10 to the 18 seconds yields at most 10 to the 24 digits total. But a typical number less than a googolplex requires you to recite 10 to the 100 digits, so you would barely scratch the surface. Even reciting at that extraordinary rate from the moment of the Big Bang, you could not come close.
The conclusion is that we can easily describe a googolplex, taking just a handful of symbols, but a typical number smaller than a googolplex is, in a precise sense, indescribable. Its shortest description would be vastly longer than anything we could write down or recite. This phenomenon is closely related to the paradox of the largest tweetable number, which concerns describing enormous numbers with very short descriptions. The key point is that just because you can describe one enormous number concisely does not mean you can describe all the smaller numbers concisely. There simply are not enough short descriptions to go around.
Let me describe another number: the googol bang. A googol bang means you take a googol and compute its factorial, that is, you multiply 1 × 2 × 3 × 4 and so on, all the way up to a googol. Starting from the top, it is googol × (googol − 1) × (googol − 2) × (googol − 3), and so on down to 1. In general, x bang simply means x factorial, a whimsical way of referring to the factorial function.
Now consider a fun puzzle: which is bigger, a googol bang or a googolplex? A googolplex is 10 to the power of a googol, so written out it is 10 × 10 × 10 × 10 ···, with a googol number of factors. A googol bang, by contrast, is googol × (googol − 1) × (googol − 2) × ··· × 3 × 2 × 1. The number of terms is the same, a googol, but most of the terms in the factorial product are far larger than 10. A few terms near the bottom are smaller than 10, but all the rest exceed 10, and many of them are vastly larger. The contribution of those large terms completely outweighs the handful of small ones, so a googol bang is much bigger than a googolplex.
A more challenging version of the puzzle allows iterated applications of these suffixes. One could write, for example, googol bang plex bang bang plex plex bang, and so on. Here, x plex means 10 to the power of x, and x bang means x factorial, and these operations can be composed freely. If two such expressions are submitted as entries in a contest, one needs to determine which represents the larger number, and comparing them is not always obvious, though there is in fact an algorithm for doing so.
There is one further operation to add: the stack. A googol stack means an iterated exponential tower of 10s whose height is a googol, that is, 10 to the 10 to the 10 to the 10, with a googol many 10s. This number is far, far larger than both a googol bang and a googolplex, because iterated exponential towers grow with extraordinary rapidity. One can then speak of the full googol bang-plex-stack hierarchy, forming expressions such as googol bang plex stack or googol stack stack stack bang plex stack, and the challenge of comparing any two such expressions is precisely what one must solve in order to judge which is the largest tweetable number.
Knuth introduced a notation that is extremely helpful and partakes of these ideas: his up-arrow notation. The basic single up-arrow, as in 2 ↑ 4, refers to exponentiation, so this simply means two to the fourth, or two times two times two times two. In general, A ↑ B is the base case of his recursion, meaning A multiplied by itself B times, that is, A to the power B.
The next level is the double up-arrow, A ↑↑ B. This means A ↑ A ↑ A ↑ … ↑ A, with B copies of A, associating to the right. This operation is also called tetration, or iterated exponentiation: it produces a tower of exponentials, A to the A to the A to the A, where the height of that tower is B. So the double up-arrow is precisely the stack operation referred to earlier.
Going one level further, the triple up-arrow A ↑↑↑ B repeats the double up-arrow B times: A ↑↑ A ↑↑ … ↑↑ A. Each term in that expression is itself a tower, so the result is a tower of As whose height is a tower of As whose height is a tower, and so on, iterated B times. It is clear that these numbers grow with extraordinary rapidity.
These ideas are related to the Ackermann function, introduced in the early twentieth century. We can unify the definitions with a single recursion: A ↑⁰ B denotes multiplication, and A ↑ⁿ⁺¹ B denotes A ↑ⁿ A ↑ⁿ … ↑ⁿ A with B copies of A, so each new level of up-arrows is obtained by iterating the previous level B times. Numbers such as three quadruple-up-arrow three are so mind-bogglingly large that they are difficult to describe by any means other than this Knuth notation. But the aim here is to go even beyond Knuth.
One can define the strong double arrow, which is distinct from the ordinary Knuth double arrow. The strong double arrow is defined so that A strong-double-arrow B means applying the B-fold up-arrow of A with itself, a construction that transcends what Knuth's original notation achieves. From there, one can define the double strong double up-arrow, which performs a similar iteration in which the number of terms is B, and then continue to define the n-fold iteration, extending the recursion past all previous levels. In this way we arrive at some truly enormous numbers.
After establishing the strong double up-arrow, one naturally goes on to define the triple strong up-arrow, the quadruple strong up-arrow, and so on, continuing the recursion at each stage. A concrete entry in the largest-number contest, then, is the quadruple strong up-arrow of three with itself, a truly vast number. Many people will have heard of Graham's number, which can be described in terms of ordinary double up-arrows; the number just defined is far, far larger than Graham's number.
We can think more abstractly about the nature of tweetable numbers by introducing the concept of Kolmogorov complexity. When you tweet a number, what you are really doing is tweeting a description of how to compute it. These descriptions function, in effect, as computer programs. The recursive definitions used to specify large numbers are precisely instructions for calculating them, and the Kolmogorov complexity of a number, or of any finite string of symbols, is the size of the smallest program that produces that string or number.
To take a concrete example, the Kolmogorov complexity of a googolplex is very small, because one can describe it so easily: a short program that computes 1010100 fits comfortably within a tweet, even though the number itself is enormous. The same holds for a googolplexplex or any tower of such exponentials; the program that computes it is tiny, while the number it produces is unimaginably large.
This brings out a striking contrast. A googolplex is vast, yet it has very small Kolmogorov complexity. The typical numbers smaller than a googolplex, by contrast, cannot even be held as objects of thought: there would not be enough time since the Big Bang to recite their digits. Another way to describe this situation is that those numbers have very high Kolmogorov complexity. If their digits are essentially random, no substantial compression is possible, and the shortest program that produces such a number would simply hard-code the digits directly. The resulting program would be roughly as large as the number of digits itself, on the order of a googol, giving it an enormous Kolmogorov complexity.
The deep observation about Kolmogorov complexity is that there is no computable procedure that accepts a given string or number as input and returns its Kolmogorov complexity. It is in principle impossible to compute the Kolmogorov complexity of a number. Let me give an argument for this.
Suppose, toward a contradiction, that we could compute Kolmogorov complexity in general, that we had a computable procedure which, for any given number, would return its Kolmogorov complexity. For any fixed complexity bound, there are only finitely many numbers whose complexity is at or below that bound, since there are only finitely many programs of that size or less. Therefore, the complexity of numbers must grow without bound, which means that if we could compute complexity, we could search through the natural numbers one by one until we found a number with a very large complexity.
Specifically, we could design a program that iterates through the numbers in order, computing the Kolmogorov complexity of each, and halts as soon as it finds a number whose complexity exceeds the size of the program itself, outputting that number. This is a perfectly well-defined search procedure, a simple loop, and if Kolmogorov complexity were computable, it would terminate and produce such a number as output.
But this is a contradiction. By definition, the Kolmogorov complexity of a number is the size of the smallest program capable of producing it. A program cannot output a number whose Kolmogorov complexity exceeds the size of that very program, since the program itself witnesses a description of that number. The assumption that Kolmogorov complexity is computable therefore leads directly to a contradiction, and we conclude that there is no computable procedure for calculating it exactly.
Let us return to the paradox of the largest tweetable number. I claim that there is an absolutely winning entry to this contest, and it is the following. We established that there are only finitely many possible tweets, and some of those tweets may describe numbers, so there are only finitely many tweetable numbers, and therefore there is a largest tweetable number. My submission into the contest, then, is simply to tweet the phrase "the largest tweetable number." That phrase fits in a tweet, and by definition it denotes the largest number one could possibly tweet. No one can ever tweet a number bigger than this one, because if they could, then the largest tweetable number would be at least that big. This entry would definitively win the contest.
But now someone might object: what prevents a competitor from submitting the tweet "the largest tweetable number plus one"? This number is strictly greater than the largest tweetable number, and yet it fits in a tweet. That is the paradox. The phrase "the largest tweetable number" cannot really be meaningful, because if it were, then "the largest tweetable number plus one" would also be meaningful and tweetable, and yet it would be larger than any number that could possibly be tweeted.
What makes this so troubling is that the original argument seemed rock solid. There are only finitely many tweets; some of those tweets describe numbers; therefore there are only finitely many tweetable numbers; therefore there is a largest tweetable number; therefore the phrase the largest tweetable number is a coherent concept; and therefore one can tweet the largest tweetable number plus one. We arrive at a genuine paradox: this last number must be larger than any tweetable number, and yet we have just tweeted it. What, exactly, is going on?
This brings us to another paradox called Berry's paradox. Berry was a librarian in Oxford at the beginning of the twentieth century, and Bertrand Russell described him as the only person in Oxford who could understand logic. The paradox Berry introduced concerns numbers that can be described in a limited number of words. He defined a certain number as follows: Berry's number B is the smallest number not definable in fewer than a dozen words.
The reasoning behind this is straightforward. There are only finitely many English words, and therefore only finitely many phrases consisting of fewer than a dozen words. Some of those phrases describe numbers, which means there must exist numbers that are not definable in fewer than a dozen words. So far, so good. But now consider: we have just described B as "the smallest number not definable in fewer than a dozen words," and counting carefully, that phrase contains exactly eleven words, which is fewer than a dozen. We have apparently defined B in fewer than a dozen words, even though B is, by definition, the smallest number that cannot be defined in fewer than a dozen words. That is a contradiction.
If we accept that there is a valid notion of what it means to define a number in a certain number of words, then this phrase ought to constitute a legitimate definition of a specific number, and yet it cannot, because the number it defines would have to be smaller than itself. This is closely related to the paradox of the largest tweetable number, though not identical to it. Rather than tweeting the largest tweetable number plus one, Berry's paradox is more analogous to tweeting the smallest untweetable number.
One might ask whether these two formulations, the largest tweetable number plus one and the smallest untweetable number, are actually the same. Taking a naive view in which it makes sense to speak of numbers being tweetable, one might expect them to coincide. But that is in fact wrong. The smallest untweetable number is much less than a googolplex, because there simply are not enough possible tweets. The number of possible tweets is at most N280, where N is the size of the Unicode alphabet, and this quantity is far less than a googolplex. Therefore, not all numbers up to a googolplex can be tweetable, which means the smallest untweetable number is less than a googolplex. That number would never win a largest-number contest, since a googolplex itself is easily tweetable and would beat it outright.
Berry's paradox is thus more analogous to the smallest untweetable number than to the largest tweetable number plus one. That said, one can construct an analog of the other direction: consider "the largest number definable in fewer than twenty words, plus one," a phrase that itself contains fewer than twenty words, and the same paradoxical structure immediately reappears.
What is going on with the tweetable number paradox, Berry's paradox, and related puzzles? Let us try to adopt a more sophisticated perspective. Suppose that when you submit a number to such a contest, what you are really submitting is a computer program that will compute the number. Imagine that you are the judge of this contest, receiving a collection of submissions in the form of computer programs. Of course, some programs might not actually produce a number: they might output gibberish, or they might never halt at all, running forever without giving any answer.
In order to serve as judge, you must compare the numerical answers produced by these programs. Even in cases where the programs do halt and yield numbers, you need to be able to compare the sizes of those numbers. This is related, for instance, to the problem of deciding whether a googolplex factorial is larger than a googol factorial-plex, or similar expressions involving longer iterates. If you require that programs output the digits of their number in decimal, the comparison process becomes somewhat easier, but you still need to know whether any given program will halt at all.
It therefore seems that serving as judge of the tweetable number contest would require you to solve particular instances of the halting problem. This is a famously undecidable problem. Alan Turing, in 1936, introduced the concept of Turing machines and raised the possibility of certain problems being undecidable. We now know that the halting problem, the question of whether a given computer program ever halts and produces output, is computably undecidable.
The halting problem is closely related to the undecidability of Kolmogorov complexity, and in fact we can derive the former from the latter. If you could solve the halting problem, you could compute the Kolmogorov complexity of any number: given a number, you would examine all programs up to a certain size, use the halting oracle to determine which ones halt, run those programs, and check whether they produce the number in question. In this way, you would be able to compute Kolmogorov complexity. But we have already argued that Kolmogorov complexity is not computable, and therefore the halting problem cannot be solved either.
In the most general case, there is no standard by which one should expect to be able to serve as a judge in a largest number contest. One objection you might raise to this kind of argument is that, in the largest tweetable number contest, we are only ever dealing with finitely many programs, since there are only finitely many possible tweets. Therefore, the halting problem in that finite instance is computably decidable, because one could simply hard-code the answer for every possible tweet as to whether it halts or not.
This observation, however, opens the door to a far more profound difficulty with contests of this form: the question of whether there is a fact of the matter about whether the programs halt. It can be shown that the halting problem is computably undecidable, and a striking consequence of this is that, for any foundational theory one might adopt, whether Peano arithmetic, Zermelo–Fraenkel set theory, or any other standard axiomatization of mathematics, there must exist programs, in fact relatively small ones, that do not halt and yet whose non-halting the theory cannot prove.
This calls into question whether there is a determinate fact of the matter about whether those programs halt. When judging a largest number contest, one might suppose that the task is simply to find proofs, within some formal system, that one program halts with a larger output than another. The point is that questions of this kind can be independent of our foundational axioms. Whether a number is tweetable, whether a given description in a tweet genuinely specifies a halting computation, can itself be a fact independent of the axioms of mathematics.
This forces us to recognize that, in order to meaningfully evaluate a description of a number contained in a tweet, one must specify the axiomatic framework within which one can prove that the description actually produces a halting computation with a definite output. Those supplementary specifications do not fit inside the tweet, and they cannot simply be taken for granted, precisely because the axiomatic systems we work in admit independence and do not settle all instances of the halting question. It therefore only makes sense to ask which programs halt with a given definite output relative to an axiomatic framework that is itself not part of the tweet.
From this perspective, the phrase the largest tweetable number is inherently dependent on an underlying axiomatic framework that lies outside the tweet and cannot be made to fit within it. Any attempt to specify that framework more fully will always exceed what is tweetable. This is one way of arriving at a genuine understanding of the paradox of the largest tweetable number.
This point about logical undecidability bears on our most fundamental axioms of mathematics. Those axioms may not determine the answer to the question of whether a given description defines a number, or whether one description defines a number larger than the number defined by another. This connects directly to Berry's paradox, which speaks of the smallest number not definable in fewer than a dozen words.
One way of resolving that paradox is to ask what this notion of definability actually is, and, crucially, whether it is itself definable. Tarski thought carefully about precisely this question and proved an absolutely wonderful result: Tarski's theorem on the non-definability of truth. The theorem establishes that, given a formal language of arithmetic, the question of whether a given formula defines a number is not expressible within that language.
In a quite formal sense, then, definability is not definable. It may be tempting to read Berry's paradox naively, as though the word "definable" carries straightforward meaning, but when one applies the tools of mathematical logic and Tarski's theorem, one sees that the paradox is pulling a fast one. Definability cannot be captured by the very language in which it appears, and, by the same token, tweetability is not itself definable in a tweet. This is one way of resolving the paradox of the largest tweetable number.