Is this a rigorous proof of Bolzano-Weierstrass Theorem? (bounded sequence has convergent subsequence) Let $\{a_n\}$ be a bounded sequence, i.e. there exists $M>0$ so that $a_n\in[-M,M]$ for all $n\in\mathbb{N}$. 
Fix $\epsilon>0$. Partition $[-M,M]$ into intervals $I_k$ of length $<\epsilon$. Then exists some such interval $I_j$ with infinitely many points, since there are finitely many such intervals in the partition. Take the points in $I_j$ as the points of the subsequence, and the midpoint of $I_j$ as the limit of the subsequence. Then each element of the subsequence is less than $\epsilon$ from the midpoint.
Wondering if I need to be more explicit about defining the subsequence, or if I'm missing any details. Thanks in advance for any pointers!
 A: This is not correct.  There is no reason that the infinitely many points in $I_j$ must converge to the midpoint of $I_j$.  For instance, if your original sequence happens to converge to a point that is not the midpoint of any of your intervals $I_k$, then no subsequence can converge to any of those midpoints.
You seem to be getting a bit confused about your quantifiers: to prove that a sequence converges to a point $x$, you need to show that for any $\epsilon>0$, the terms of the sequence are eventually within $\epsilon$ of $x$.  You proved this for one particular value of $\epsilon$ (the $\epsilon$ you fixed at the beginning), but not for arbitrary $\epsilon$.  Your argument will not work for arbitrary $\epsilon$ since the $I_j$ you choose (and hence the subsequence you take) will be different for different values of $\epsilon$.  So there is no single subsequence that you are proving works for all values of $\epsilon$ at once.
A: This is not quite enough. The first part of your argument shows that for any $\epsilon>0$ you can find a subsequence such that all terms of that subsequence are within $\epsilon$ of each other. Yet that subsequence could be something like $\frac{\epsilon}{4} (-1)^n$, which is not convergent. The second part of your argument (the part about the midpoint) is more seriously flawed, and can't really be repaired.
You fix this problem (and many similar problems) by a diagonal argument. Apply your argument with $\epsilon=1$; apply your argument again (to the new sequence) with $\epsilon=1/2$; repeat with $\epsilon=1/n$ for each $n$. This gives you a sequence of subsequences. Then diagonalize to get a single convergent subsequence.
