Is my own proof of the Bolzano-Weierstrass Theorem correct? I wonder my own proof of the Bolzano-Weierstrass theorem is correct or rigorous enough, and I also find a proof of the relevant theorem in Tao's Analysis weird. Here is my proof of the Bolzano-Weierstrass theorem.
Let $\{a_n\}$ be a bounded sequence which is bounded in $[a,b]$. Let $D=\big\{x\in[a,b]~|~[a,x]$ contains infintely many terms of $\{a_n\}\big\}$, in which the predicate "$[a,x]$ contains infintely many terms of $\{a_n\}$" can be transfered into a more rigorous manner, "$\big\{n|a_n\in [a,x]\big\}$ is infinite."
Hence $D=\Big\{x\in[a,b]\Big|\big\{n|a_n\in [a,x]\big\}\text{ is infinite}\Big\}$. Here we first clarify some important observation of $D$. First, is $D$ non-empty? Yes, because $b$ must in $D$. Second, does $D$ have the supremum and infimum? Yes, since $b\in D$ and $a$ is definitely a lower bound of $D$(but not neccessarily in $D$), by the Least Upper Bound property, $D$ has the supremum and infimum. Last, must $D$ have the least element in it? No, for example, if $\{a_n\}$ is defined strictly decreasing and converges to some point $x\in [a,b)$, then $D$ has no least element.
Now we start the proof. Let $x=\inf D$. If $x=a$, the proof is trivial(the subsequence is $a,a,a,a,a,\dotsc$). If $x=b$, the proof is similar to the case $x\in(a,b)$, so I just prove the case $x\in(a,b)$. Because $x$ might not in $D$, so we can't directly conclude that $[a,x]$ contains infinitely many points of $\{a_n\}$. But let $\varepsilon >0$, then $[a,x-\varepsilon]$ must contains finite points of $\{a_n\}$, that is, $\big\{n|a_n\in [a,x-\varepsilon]\big\}$ is finite. By the Approximation Property for Infimum, there also exists a point $y\in D$ such that $x\leq y<x+\varepsilon$, hence $[a,y]$ has infinitely many points of $\{a_n\}$, that is, $\big\{n|a_n\in [a,y]\big\}$ is infinite.
Now we claim that $[a,y]\setminus[a,x-\varepsilon]=(x-\varepsilon,y]$ has infinitely many points of $\{a_n\}$ in a rigorous manner, rather than an intuitive argument. Since $a_n\in [a,x-\varepsilon]\Rightarrow a_n\in [a,y]$, so $\big\{n|a_n\in [a,x-\varepsilon]\big\}\subseteq\big\{n|a_n\in [a,y]\big\}$. So for any $\varepsilon>0$, the difference of an infinite set and finite set, $\big\{a_n|a_n\in(x-\varepsilon,y]\big\}$, is infinite.
We're now going to construct our subsequence. Let $\varepsilon>0$, we can pick an $a_N\in(x-\varepsilon,y]\subsetneq(x-\varepsilon,x+\varepsilon)$. Next, using $\varepsilon/2>0$, there must exists a $N'>N$ such that  $a_{N'}\in(x-\varepsilon/2,y]\subsetneq(x-\varepsilon/2,x+\varepsilon/2)$. Continuing on this way, we can construct a subsequence, and it is easy to check  that this subsequence converges to $x$, and we omit the detail. $\blacksquare$
Here are my questions.


*

*Is my proof correct?

*Is any part of this proof redundant? Can any part of this proof be simplified?

*In Terence Tao's Analysis 1, he stated a theorem(Prop. 6.6.6) that any sequence has a subsequence converges to its limit point. He then gave the hint of the proof in the Exercis 6.6.5. He defined a sequence $n_j=\min\{n|a_n\in[L-\frac{1}{j},L+\frac{1}{j}]\}$. Of course, by the Well-Ordering Principle of natural numbers, we know the $\{n_j\}$ is well-defined. However, I think $\{n_j\}$ is not guaranteed to be strictly increasing simply by letting the value of $n_j$ to be the minimum index of $\{a_n\}$ that falled in the interval. (Because, for example, when $j=10$, $a_{100}$ is the mininum-index term in $[L-\frac{1}{10},L+\frac{1}{10}]$, however, when $j=11$, $a_{100}$ is still in $[L-\frac{1}{11},L+\frac{1}{11}]$, so it will be chosen duplicately again.) And we know that in order to make $\{a_{n_j}\}$ to be a so-called "subsequence", $\{n_j\}$ must be strictly increasing. So we can't pick a subsequence like this. Am I correct?

-------------UPDATED---------------
I made mistakes on discussing the endpoints. Edited like this: if $\inf D=b$, since $b\in D$, then $\inf D\in D$. For any $\varepsilon>0$, $[a,b-\varepsilon]$ has finite points of $\{a_n\}$, hence $[a,b]\setminus[a,b-\varepsilon]=(b-\varepsilon,b]$ has infinitely many point of $\{a_n\}$. So it's easy to construct a subsequence.
If $\inf D=a$, and if $\inf D=a\in D$, then $[a,a]$ has infinitely many points of $\{a_n\}$, so the subsequence is trivially $a,a,a,a,a,\dotsc$. Otherwise if $\inf D=a\not\in D$, then $[a,a]$ has only finite points of $\{a_n\}$. For any $\varepsilon>0$, by the Approximation Property for Infimum, there exists $y\in D$ such that $a\leq y<a+\varepsilon$. So $[a,y]$ has infinitely many point of $\{a_n\}$. Therefore, $[a,y)\setminus[a,a]=(a,y]\subsetneq(a,a+\varepsilon)$ has infinitely many point of $\{a_n\}$, then we can construct the subsequence.
The proof became a bit lengthy. However, I just now came up with a brilliant idea! As my proof stated in the beginning, I suppose the sequence to be in $[a,b]$. Now, we redefine $D$ to be $\mathfrak{D}=\big\{x\in[a-1000,b+1000]~|~[a-1000,x]$ contains infintely many terms of $\{a_n\}\big\}$. Then $\inf\mathfrak{D}$ must not be the endpoint of this new and bigger interval, so we need not to discuss the case when $\inf\mathfrak{D}=a-1000$ or $\inf\mathfrak{D}=b+1000$ anymore!
 A: The idea is ok. But it's a bit shaky. Bypassing that $x$ need not be in $D$ you may change the Terence condition to an inductive: 
$$ n_{j} = \min\{ n> n_{j-1} \  |  \ a_n\in (L-1/j,L+1/j) \}$$
Then $n_j$ is strictly increasing and $a_{n_j}$ converges. Taking $L=\inf D$ as in your idea will do the trick.
A: I’ll answer your last question first. Tao’s hint is just that: a hint. It is not the complete solution, even after you after you explain why $\{n\in\Bbb N:|a_n-L|\le 1/j\}$ is non-empty. The final step of the proof will be to show that the sequence $\langle n_j:j\in\Bbb N\rangle$ has a strictly increasing subsequence.
As others have noted in the comments, your argument is not quite correct. It can, however, be salvaged, if you consider two cases, $x\in D$ and $x\notin D$. The basic idea is this:


*

*If $x\notin D$, then $\{n\in\Bbb N:x_n\in[a,x]\}$ is finite, while $\{n\in\Bbb N:x_n\in[a,x+\epsilon]\}$ is infinite for each $\epsilon>0$, so $\{n\in\Bbb N:x_n\in[x,x+\epsilon]\}$ is infinite for each $\epsilon>0$, and you can recursively construct a subsequence converging to $x$ from above.

*If $x\in D$, then $\{n\in\Bbb N:x_n\in[a,x]\}$ is infinite, but $\{n\in\Bbb N:x_n\in[a,x-\epsilon]\}$ is finite for each $\epsilon>0$, so $\{n\in\Bbb N:x_n\in(x-\epsilon,x]\}$ is infinite for each $\epsilon>0$, and you can recursively construct a subsequence converging to $x$ from below. (You do have to modify this slightly if $x=a$.)
A: Your proof is interesting in that it is easy to see that the resulting limit point is the least limit point of any subsequence in $[a,b]$. You can generalize the idea (outline of proof): Let $c$ be any point in $[a,b]$ (e.g. it could be the midpoint). And define $D$ by:
$$D = \{r > 0 : |c - x_n| < r \rm{\,for \,\, infinitely \,\, many \,\, n} \} $$
Then it is easy to see that $D$ is nonempty (since $b - a \in D$) and it is clearly bounded below. Hence it has an inf. Let $r = \inf(D)$. Then:
Case 1: $r = 0$ (this corresponds to your case where the inf = $a$). It is easy to prove that in this case $c$ is the limit of a convergent subsequence.
Case 2: $r > 0$. This is slightly more complicated than anything in your proof, but by breaking into subcases it is easy enough to see that either $c-r$ or $c+r$ (or both) are limits of convergent subsequences. 
In either case the resulting subsequence converges to a point in $[a,b]$ which is as close as possible to $c$.
A: Your proof breaks down.  Consider the interval [a, b] = [0, 1] and the sequence { 1/2, 2/3, 3/4, ..., n/n+1, ... }.  With respect to this sequence, D as you have defined it is simply { 1 }, and the sub-interval [0, x] is finite for every x < 1.
A: Another style to prove this theorem :Let $I_1=[a,b].$ Let $f(1)=1.$  Define $I_{n+1}$ and $f(n+1)$  inductively for $n\in N$ as follows: The inductive hypothesis is that $$(i).\; I_n \text  { is a closed sub-interval  of } [a,b] \text { of length }\; 2^{1-n}|b-a|,$$ $$(ii).\; n>1\implies  I_n\subset I_{n-1},$$  $$(iii). \;\{m:a_m\in I_n\} \text { is infinite},$$ $$(iv).\;  j\leq n \implies a_j\in I_j,$$   $$(v). \;n>j\geq 1\implies f(n)>f(j).$$   For brevity let $U_n =\max I_n$ and $L_n=\min I_n.$
Now if $\{m:a_m\in [L_n,(L_n+U_n)/2]\}$ is infinite, then let $$I_{n+1}=[L_n,(L_n+U_n)/2].$$ $$ \text {Otherwise let  }\;I_{n+1}=[(L_n+U_n)/2,U_n].$$ In either case let $f(n+1)$ be the least $p\in N$ such that $p>f(n)$ and $a_p\in I_{n+1}.$
Now $f:N\to N$ is strictly increasing so $(a_{f(n)})_n$ is a sub-sequence of $(a_n)_n,$ and it is also a Cauchy sequence because  $n\leq n'<n''\implies$ $ (\;a_{f(n')}\in I_{n'}\subset I_n\; \land \; a_{f(n'')}\in I_{n''}\subset I_n\;)\implies$  $|a_{f(n')}-a_{f(n'')}|\leq U_n-L_n=2^{1-n}|b-a|.$
. 
