It’s a standard result that you learn almost as soon as you learn about metric spaces that every metric space has a completion.

The normal way to prove this is to construct a pseudometric on the space of Cauchy sequences on the metric space and then quotient out pairs with zero distance to get a metric space. I think this is a bit of a waste of time – the details are fiddly and annoying and it’s not terribly enlightening. Here’s a nicer way.

Let \(X\) be a set. It’s a standard result that \(l^\infty(X)\), the set of bounded functions \(X \to \mathbb{R}\) together with the uniform metric, is a complete metric space.

Now let \(X\) be a metric space and fix arbitrary \(c \in X\).

Claim: The function \(\iota : x \to f_x\) where \(f_x(y) = d(x, y) – d(c, y)\) is an isometric embedding of \(X\) into \(l^\infty(X)\).

If this claim is true we’re done. We’ve got an isometric embedding of \(X\) into a complete metric space, so the closure of the image is its completion.

In order to prove this we’ll need the following elementary result:

Lemma: Let \(x, y, z \in X\). Then \(|d(x, z) – d(y, z)| \leq d(x, y)\).

Proof:

Simple application of the triangle inequality. \(d(x, z) \leq d(x, y) + d(y, z)\) so \(d(x, z) – d(y, z) \leq d(x, y) \). Similarly \(d(x, z) – d(y, z) \geq -d(x, y) \). QED

Now to prove that \(\iota\) is an isometric embedding.

First we must show that \(f_x \in l^\infty(X)\). This is a simple consequence of the above lemma: $$|f_x(y)| = |d(x, c) – d(y, c)| \leq d(x, c)$$

Hence \(f_x\) is bounded

Now for isometry:

Consider \(x, w \in X\). Then $$|f_x(y) – f_w(y)| = |d(x, y) – d(y, c) + d(y, c) – d(w, w)| = |d(x, y) – d(w, y)| \leq d(x, y)|$$

So, taking the supremum over \(y\), we have \(||f_x – f_w|| \leq d(x, w)\). We now need only show equality.

For this, consider \(|f_x(w) – f_w(w)| = |d(x, w) – d(x, x)| = d(x, w)\). Hence we must have \(||f_x – f_w|| \geq d(x, w)\) and the result is proved.

### Notes

- I’m afraid I don’t remember where I first saw this so I can’t provide a reference, but it’s definitely not original to me. I probably encountered it in some textbook long ago
- The thing I like about this is that it’s quite explicit, and at each step along the way you do the only thing that could possibly work once you’ve had the initial idea of trying to embed it into \(l^\infty(X)\): The only function you know about on it is the metric, so you have to use that. It’s not bounded, so what’s a non-artificial way to make it so, etc. The details are also much less fiddly than the normal proof because we did all the hard work of showing completeness when we proved that \(l^\infty(X)\) was complete.

VekyAh, that wonderful world of applications. :-P

Of course, the main problem with that approach is that you postulate |R out of thin air. You _need_ Cauchy sequences (or something equivalent) to construct |R from |Q in the first place. And once you have that technique, it’s easier to apply it again than to invent something new, even if it is simpler.

But yeah, non-pure mathematicians, for whom |R is a given, don’t have to think about equivalence classes of Cauchy sequences. For them, it’s a nice trick.

davidPost authorYeah, no. I actually trained as a pure mathematician.

I never did finish writing it, but I have a half-completed post about a nicer way to construct R too.

But basically you use Dedekind cuts (it’s actually a little more pleasant if you use Dedekind cuts of positive numbers and then construct the reals from the result in the same way you construct the integers from the naturals) or similar. So you construct R as the set of all non-empty subsets of Q which:

1. Are bounded above

2. Have no largest element

3. Are closed under taking smaller elements (i.e. if u in U and u’ < u then u' in U) You order by set inclusion. The closed under smaller elements means that it's totally ordered. It's complete because it's closed under unions of bounded sets (and the union of a set is its LUB). So it's a complete order extending Q. You can then define arithmetic on these sets in semi-obvious ways (it's a little fiddly to account for the negative numbers, which is why I prefer to do the construction on positive numbers and then sort out negatives later). No cauchy sequences required.

VekyWell, of course I know about Dedekind cuts. :-) (But thanks for the succint review.:) The problem is, I don’t think they really are in any way simpler than Cauchy sequences.

For example, in the definition of +, you have to add Dedekind cuts “each with each”, because there is no natural correspondence: x in A+B means x=a+b for some a in A and b in B. For Cauchy sequences, you just add them “pointwise”: (a+b)(i)=a(i)+b(i). And you don’t have to do anything special with negative numbers when defining multiplication.

Of course, on the other hand, you have that “passing to equivalence class”, but you already have it in making |Z from |N, and |Q from |Z. Same thing as with the completion itself: once you have the technique, it’s easier to apply it again than invent something new, although simpler.

davidPost author“Simpler” isn’t necessarily the same as “nicer”. The dedekind cut approach to constructing the real numbers is about the same degree of complexity as the Cauchy sequence one, but I think it’s clearer and more elegant. It also takes you more directly to the characterisation of R as the unique complete ordered field.

I think you’re overstating the complexity of doing it with Dedekind cuts. A + B being setwise addition isn’t any more complicated than (a_n) + (b_n) being pointwise addition, and A * B is the same if you’re only dealing with positive numbers.

Sure you then have to handle the construction of the negative reals from the positive ones, but we’ve already done this for Z and I think someone once mentioned that once you have the technique it’s easier to apply it again than to invent something new. ;-)

Anyway, the detail checking of arithmetic operations is really just book keeping in either case – neither is hard. What’s annoying and fiddly in the Cauchy sequence case is proving the completeness result.

This is all part of a general thesis / opinion that the basics of analysis look a lot nicer if you avoid sequences altogether, so I don’t really accept “But we’ve already done sequences!” as a good reason not to do it.

(“But David”, I hear you say, “How can you define completeness of a metric space if you haven’t done sequences?”. I’m glad you asked! The answer is that you can view it as an extension to the closed set interpretation of compactness. A family of non-empty closed finite sets with the finite intersection property is said to be Cauchy iff it contains arbitrarily small diameter elements. A metric space is complete if every Cauchy family has a non-empty intersection)

Ed

davidPost authorAs a side note, this embedding is also just an interesting thing to note exists, even if you don’t want to use it as your basic proof of the existence of metric space completions.