# 0.999... = 1

*This is the (edited) body of an e-mail I sent to The Reality Check. Probably my favourite podcast at present. I got a reply from Elan (my favourite host—everything's coming up Milhouse!) asking if I could post it somewhere so they might link to it in the show notes. That's what this is. Any questions or corrections feel free to point them out, unfortunately I'm not infallible. :( Regarding typesetting I've done the best I can given the limitations of HTML. If you know a better method to display maths please let me know. I'll also be making edits for clarity/corrections when I notice problems.*

Hey guys, my name is Josh Voorkamp, I’m a recent maths PhD graduate from the University of Otago in New Zealand. I’ve heard the 0.999... = 1 idea come up a few times on podcasts and each time I’ve thought ‘I should really respond to that’ but then never do, but now I am! Given that I started by appealing to authority I’ll admit that I’m actually published in phylogenetics but since the material of this e-mail is typical of a second year undergraduate course in mathematical analysis I hope you’ll let me away with it.

I’ll give away the ending now: it is true. A common demonstration is that since

⅓=0.333…

it follows that

3×⅓=1=0.999…=3×0.333…

but this is really hiding a massive horde of maths and it’s not clear that something tricky isn’t going on. So what follows will be a more rigorous demonstration that I hope is still clear to the layman.

Before embarking on this mission I’ll make side trip into what it means for something to be true in maths. There is a collection of sciences called the *formal sciences* that include mathematics, statistics, computer science, economics, theoretical physics, and computational linguistics. The method of proof in the formal sciences has quite a different flavour to that in the natural sciences. Recall the (natural) scientific method caricature is:

- Come up with a hypothesis,
- Gather some data,
- Test hypothesis against data,
- (after some time) hypothesis becomes theory.

In the formal science however the equivalent procedure is

- Provisionally assume some statements, called
*axioms* - Make a
*conjecture*, that is guess a result you think is true. - Deductively prove
*theorems*, usually using ‘little theorems’ called*lemmas*. Special cases of theorems are called*corollaries*

There is a big difference between theories and theorems (which is why I get irritated at Dawkins trying to coopt the latter in one of his books). The truth of theories rests upon comparing it to the real world. A theory can be overturned, even if an experiment was completely fine, if later research contradicts it. Theorems on the other hand necessarily follow from the axioms (excluding an error in proof). However(!) theorems are only true *given* the truth of the axioms assumed. This means that when I say 1=0.999... what I’m really saying is *1=0.999... given the axioms mathematicians typically hold as true*. If you think ‘a-ha! So 1=0.999... isn’t true, because it’s only provisional’ just keep in mind that the same provision applies for the result 1+1=2 (and in fact I’m happy to go on record that I don’t believe it’s possible to know that it's an objective fact. An email for another day perhaps).

So back to the problem at hand. The idea that really needs to be addressed first is *how are real numbers defined?*. In order to not make this too long I’ll assume that we have rational numbers at hand. Recall that rational numbers are all the numbers that can be written as *n*/*m* where *n* is an integer (whole number) and *m* is a natural number (positive whole number). I’m now going to state the definition of real numbers then follow up with an explanation of what it means.

The set of real numbers is the set of limit points of all convergent

sequences of rational numbers.

What does that even mean, right?

A sequence is a countably infinite sequence of numbers. A value *L* is said to be a limit point of a sequence if for *any* positive number ε (pronounced *epsilon*) I can “cut off” a finite length from the beginning of the sequence and the distance between all the remaining values in the sequence and the limit *L* is less than ε.

An example. The limit of the sequence (0.1, 0.01, 0.001, 0.0001, ...) is 0. Informally this can be shown as follows, it’s not a perfect proof but hopefully it’s a bit more accesible.

Suppose the limit *L* is actually some value strictly less than zero. Let’s pick ε to be the absolute value of *L*/2. The sequence defined *never* becomes less than zero which means that no matter where I am in the sequence the remaining values are always a distance of greater than *L*/2. Thus by picking ε=*L*/2 there is no amount of the beginning of the sequence I can cut off such that what remains is closer than ε to *L*, so it follows that *L* can’t be a negative number.

On the other hand assume *L* is strictly greater than 0. Let *n* be the first non-zero number in the digital representation of *L*. That is *L* can be written as 0.0...0*abc*... where *a* is non 0 preceeded by *n* many 0s. In the sequence the *n*+1th term *a*_{n+1} is 0.0...01 and has *n* + 1 many 0s before the 1 so is strictly smaller than *L*. Moreover as the following values of the sequence are getting smaller the distance from the remaining values in the sequence to *L* don’t reduce so if ε is picked as (*a*_{n+1}+*L*)/2 then again I have found ε such that there is no initial piece of the sequence I can cut off such that what remains is closer to *L* than ε.

It then follows that the limit can’t be a positive number. Since the limit can be neither a positive nor a negative number it follows that (if it exists) it must be zero. And in indeed a more direct proof can show that the limit of (0.1, 0.01, 0.001, 0001, ...) is 0.

Note in particular that the limit of a sequence need not be a value actually in the sequence.

On the other hand the sequence (0, 1, 0, 1, 0, 1, ...) doesn’t have a limit since it never converges.

So how do I use this to get from rational number to real numbers? Let's pick an irrational number to demonstrate: π. What I claimed before is that π is the limit of a sequence of rational numbers. A standard way to do this is by taking successively longer truncations of the digits of π. That is I construct the sequence (3, 3.1, 3.14, 3.141, 3.1415, ...). Each value in this sequence is a rational number but it can be shown that the limit of the sequence is the irrational number π.

Back to 0.999... and 1. For 1 finding a sequence with 1 as the limit is easy: (1, 1, 1, 1, ...). As per our π example a sequence whose limit represents 0.999... is the limit point of the sequence (0.9, 0.99, 0.999, 0.9999, ...) (in fact this construction is how decimal representations are defined, so we’re sort of doing things a little backward here).

The next question to answer is: what does it mean for two real numbers to be equal? In regular arithmetic if *a*=*b* it follows that *a*-*b*=0. A similar idea also works for sequences. Two sequences *a* and *b* are equal if the limit of the difference of the two sequences is zero. So for 1 and 0.999... we require the limit of (1 − 0.9, 1 − 0.99, 1 − 0.999, 1 − 0.9999, ...) to be zero. But this is equal to (0.1, 0.01, 0.001, 0.0001, ...) which we earlier demonstrated had limit 0, thus 1 and 0.999... refer to the same number.

I’ve found the reason people generally don’t seem to like this result is the discovery that real numbers don’t have unique decimal representations. It turns out you actually *can* give the real numbers unique decimal representations by requiring that in the representation no infinitely long string of 9s occur, which immediately rules out 0.999... as an option for 1. Often they’ll try to save themselves by claiming that there’s an infinitely small difference between the two numbers. However I hope you now see they’re considered equal *because* they’re infinitely close, not in spite of it!.