# Proof that perfect sets in R^k are uncountable

In Rudin's Principles of Mathematical Analysis, Theorem 2.43 is that all nonempty perfect sets in R^k are uncountable. The proof Rudin gives goes like this:

Let P be a nonempty perfect set in R^k. Since P has limit points, P is infinite. Suppose P is countable and denote the points of P by x_1, x_2, x_3, .... We shall construct a sequence of neighborhoods {V_n} as follows.

Let V_1 be any neighborhood of x_1. If V_1 consists of all y in R^k such that |y-x_1| < r, the closure closure(V_1) is the set of all y in R^k such that |y-x_1| </= r.

Suppose V_n has been constructed, so that V_n intersect P is not empty. Since every point of P is a limit point of P, there is a neighborhood V_(n+1) such that (i) closure[v(n+1)] is a subset of V_n, (ii) x_n is not an element of closure[V(n+1)], (iii) V_(n+1) intersect P is not empty. By (iii) v_(n+1) satisfies our induction hypothesis, and the construction can proceed.

Put K_n = closure(V_n) intersect P. Since closure(V_n) is closed and bounded, closure(V_n) is compact. Since x_n is not an element of K_(n+1), no point of P lies in the intersection from 1 to infinity of K_n. Since K_n is a subset of P this implies that the intersection from 1 to infinity of K_n is empty. But each K_n is not empty and by (iii), and K_n contains K_(n+1), by (i); this contradicts the Corollary to theorem 2.36.

For reference the corollary to theorem 2.36 is:
If {K_n} is a sequence of nonempty compact sets such that K_n contains K_(n+1) (n = 1, 2, 3, ...), then the intersection from 1 to infinity of K_n is not empty.

My question is this: Rudin first assumes P is countable and that the elements of P are x_1, x_2, x_3, .... But it seems to me that when he specifies conditions for each x_n greater than x_1, these elements are no longer arbitrary, and no longer illustrate the general case of assuming P is countable. Where am I going wrong?

micromass
Staff Emeritus
Homework Helper
Where exactly does he put conditions on the x_n?? I can only see him putting conditions on the V_n. He doesn't change anything about the x_n.

Can you clarify?? Or bold the part that you think is where he goes wrong??

Well when he puts conditions on where V_n, the neighborhood of x_n is, he is also putting conditions on x_n because x_n must lie in V_n. So each x_n is no longer just any element of P; it is an element of P that lies in a specific location with respect to the sequence of neighborhoods which is constructed.

micromass
Staff Emeritus
Homework Helper
Yes, but that's a condition on V_n. You choose V_n such that x_n is in there.

For example, if x_n is 0, then you may choose V_n to be ]-1,1[, but not ]1,2[.

This is not a condition on x_n. The x_n is still arbitrary. It's a condition you put on the V_n.

After V_n is already defined, how is it possible to guarantee that x_(n+1) lies in V(n)? If x_(n+1) is not in V_n then how can we say that V_(n+1) is a subset of V_n?

micromass
Staff Emeritus
Homework Helper
After V_n is already defined, how is it possible to guarantee that x_(n+1) lies in V(n)? If x_(n+1) is not in V_n then how can we say that V_(n+1) is a subset of V_n?

You define the V_n that way. You choose the V_n exactly that way such that (ii) holds.

You don't choose the V_n and then modify the x_n such that (ii) holds, but you choose the V_n such that (i)-(iii) holds. The only question is whether such a V_n exists.

But it says let V_1 be ANY neighborhood of x_1. So v_1 is just any neighborhood of x_1 and a neighborhood of x_2 must be in V_1 hence x_2 must be in V_1. But V_1 is just any neighborhood of x_1. How does it follow that x_2, x_3, ... are all contained in V_1?

micromass
Staff Emeritus
Homework Helper
How does it follow that x_2, x_3, ... are all contained in V_1?

It doesn't. We don't demand that.

Obviously there is a flaw in my reasoning but I can't figure out what it is.

If for all n closure(V_(n+1)) is a subset of V_n then V_(n+1) is a subset of V_n, thus x_(n+1) is an element of V_n. Since this is true for all n doesn't that prove that every x_n is contained in V_1?

micromass
Staff Emeritus
Homework Helper
If for all n closure(V_(n+1)) is a subset of V_n then V_(n+1) is a subset of V_n, thus x_(n+1) is an element of V_n. Since this is true for all n doesn't that prove that every x_n is contained in V_1?

Why would x_(n+1) be an element of V_n??? You demand that nowhere. It's not true.

because V_(n+1) is a subset of V_n and V_(n+1) is a neighborhood of x_(n+1).

micromass
Staff Emeritus
Homework Helper
V_(n+1) is NOT a neighborhood of x_(n+1). This doesn't need to hold.
Where do you keep getting this stuff???

wow im lost

okay i'll have to look over this in a minute and see why i was wrong to assume that. thanks for your help.

Obviously there is a flaw in my reasoning but I can't figure out what it is.

Actually I don't think so. Rudin isn't very clear it seems in this proof. The set $V_1$ is a neighbourhood around $x_1$ and this neighbourhood contains infinitely many points $x_{n_1}, x_{n_2}, \ldots$ of $P$. It might be the case that $x_2$ isn't one of these and therefore what we do is take any one of these and rename it and call it $x_2$ and create a neighbourhood around it with the three conditions given by Rudin. This renaming process isn't mentioned by Rudin and so it does appear as if we are imposing conditions on the elements of $P$.

I hope what I'm saying here is correct as I just read this proof and I've been confused myself. I'd appreciate if someone could verify what I've written. Thank you.

Last edited:
V_(n+1) is NOT a neighborhood of x_(n+1). This doesn't need to hold.
Where do you keep getting this stuff???

The problem with Jecharia logic is that s/he is trying to define V_n and V_{n+1} as the neighborhoods of x_n and x_{n+1}. In the base case, we defined V_1 to be a neighborhood of x_1, so one might extrapolate that each consecutive V_n is defined as a neighborhood of x_n. However, this is a misunderstanding, and if we proceed by this logic, we get nothign but nonsense. Plus, we do not need this condition to complete the proof.
Thanks micromass for clarifying this point!

Actually I don't think so. Rudin isn't very clear it seems in this proof. The set $V_1$ is a neighbourhood around $x_1$ and this neighbourhood contains infinitely many points $x_{n_1}, x_{n_2}, \ldots$ of $P$. It might be the case that $x_2$ isn't one of these and therefore what we do is take any one of these and rename it and call it $x_2$ and create a neighbourhood around it with the three conditions given by Rudin. This renaming process isn't mentioned by Rudin and so it does appear as if we are imposing conditions on the elements of $P$.

I hope what I'm saying here is correct as I just read this proof and I've been confused myself. I'd appreciate if someone could verify what I've written. Thank you.

Actually this logic is faulty. If we were to keep rearranging x_n's, then we would run into trouble at the second sentence of last paragraph where Rudin states that "Since x_n is not an element of K_(n+1), no point of P lies in the infinite intersection of K_n." If we were to keep rearranging x1's as seen fit, we could leave out some point of P, and not keep track of it. Then Rudin's argument would not work, for what if that lost point snuck into every K_n.

Last edited: