不妨设 是有界集。(为什么只需证有界集的情形?注意到 可以写成可数个有界集的并,所以 必然存在一个有界子集是不可数集。这里用到了可数集的可数并是可数集。)
假设命题不成立,那么每个 都联系一个 ,使得 只含 中可数多个点。我们声明:对每个 ,使得 的 至多可数。这样的话, 是可数集的可数并,也就是可数集,这样就导出矛盾了,于是就证明了原命题。
让我们看看为什么这个声明成立。假设声明不成立,即对于某个 , 是不可数集,那当然也不是空集,所以可以取一个点 。注意, 只含 中可数多个点,所以 包含 中不可数个点,也即不是空集,所以可以取 ,即满足 (其中 表示距离)。类似地, 也是不可数集,即不是空集,所以可以取 满足 且 。这样,就构造了一列 ,使得 距离前 个点的距离都大于等于 。根据这个构造, 不可能存在收敛子列。这是因为任何子列 都满足 ,显见不会收敛。但是由于 是有界集( 是有界集!),所以必然存在收敛子列。这就导出矛盾了。于是那个声明成立。
@蛋卷就靠卷 的证明第一句话“可以把E变成R2”感觉gap有点大。他后面的论证只能证明 使得性质成立,如何过渡到 呢?可能还需要再补充一下。