I am self-studying a book on real analysis and one of the questions is as follows:
Deduce the Bolzano-Weierstrass theorem from the Heine-Borel theorem.
We are working in $\mathbb{R}$ rather than a more general space. I see that there are other proofs of this same question on stack exchange, but they use different enough notation and ideas that I am not sure if my own proof is correct. Here goes:
Proof:
Let $\{a_n\}$ be a bounded sequence in $\mathbb{R}$. Then ${a_n} \subset [c,d]$ for some $c,d \in \mathbb{R}$. Suppose to the contrary that $\{a_n\}$ contains no convergent subsequences in $[c,d]$. Then for all $x \in [c,d]$, there exists $\epsilon >0$ such that $B_{\epsilon(x)}(x):=(x-\epsilon,x+\epsilon)$ contains only finitely many $a_n$. Otherwise, if there existed an $x$ such that $|x-a_n|<\epsilon$ for all $\epsilon >0$ and infinitely many $a_n$, then clearly $a_n$ would have a convergent subsequence. Continuing, we have $\bigcup_{x\in [c,d]} B_{\epsilon(x)}(x) \supset [c,d],$ and by the Heine-Borel theorem, there exists a finite subcover such that $\bigcup_{i=1}^{n} B_{\epsilon(x_i)}(x_i) \supset [c,d]$. But, since $\{a_n\}$ is completely contained in this subcover, we conclude that $\{a_n\}$ has only finitely many members, a contradiction.
I would appreciate any thoughts on how this proof might be improved.