Dini's Theorem. Uniform convergence and Bolzano Weierstrass. In Spivak's chapter on uniform convergence he asks to prove the following

THEOREM Let $\{f_n\}$ be  sequence of continuous functions that converge pointwise to $0$ over $[a,b]$. If $0\leq f_{n+1}\leq f_n$ for each $x$ and $n$, then convergence is actually uniform over $[a,b]$.

Now, he asks, as he did in other occasions, to argue by contradiction and use Bolzano Weierstrass to find an "appropriate sequence $\{x_n\}$". I'm guessing he wants me to find a sequence that goes to $0$ but $f_n(x_n)\not \to 0$. I honestly didn't look at that option, but I wrote the following direct proof :

PROOF (This was awfully wrong)

I also don't see why it is essential that the $f_n$ are continuous. Could you provide a proof using Bolzano Weierstrass?
With this, it seems one can prove Dini's theorem, which seems an immediate result:

THEOREM Let $f_n\to f$ pointwise and monotonically over $[a,b]$, with each $f_n$ continuous, and $f$ continuous. Then $f_n\to f$ uniformly.
PROOF Assume $\{f_n\}$ increasing, and set $g_n=f-f_n$. Then the $g_n$ are continuous, $g_n\to 0$ pointwise and  $$0\leq g_{n+1}\leq g_n$$
By the above, $g_n\to 0$ uniformly over $[a,b]$, that is, $f_n\to f $ uniformly over $[a,b]$. If $\{f_n\}$ is decreasing, consider $\{-f_n\}$.

Then Spivak asks
$(1)$ What if $f$ is not continuous?
$(2)$ What if we replace $[a,b]$ with $(a,b)$?
 A: Here is a direct proof:
THEOREM Suppose $\{f_n\}$ is a sequence of continuous functions from $[a,b]$ to $\Bbb R$ that converge pointwise to a continuous function $f$ over $[a,b]$. If $f_{n+1}\leq f_n$, then convergence is uniform.
PROOF We set $g_n=f_n-f$ and note that $g_n\geq g_{n+1}$ and the $g_n$ are continuous, converging pointwise to $0$. For a given $\epsilon>0$. Consdier the (relatively) open sets (because of continuity of the $g_n$) $O_n=\{x\in [a,b] :g(x)<\epsilon\}$. Note that since $g_n\geq g_{n+1}$ we have $O_n\subset O_{n+1}$. Given $x\in[a,b]$ there is an $n$ such that $g_n(x)<\epsilon$; whence $\bigcup_{n\in\Bbb N}O_n=[a,b]$. But since $[a,b]$ is compact there exists a finite set $K=\{1,\dots,m\}$ such that $\bigcup_{k=1}^m O_{n_k}=[a,b]$. But since $O_n\subset O_{n+1}$ the greatest element of $K$, call it $\ell$, is such that $O_\ell =[a,b]$. And we're done: for every $n\geq \ell$ we have $g_n(x)<\epsilon$; as desired. $\blacktriangle$
A: Assume that we can find $\delta>0$, a subsequence $\{f_{n_k}\}$ and a sequence $\{x_{n_k}\}$ such that $f_{n_k}(x_{n_k})\geqslant \delta$ for all $k$. Bolzano-Weierstrass theorem ($[a,b]$ is compact) allows us to   extract of $\{x_{n_k}\}$ a subsequence, denoted $\{t_j\}$, converging to some $t$. We have for all integers $n$ and $m$, denoting $g_k$ the sequence indexed by the integers appearing in $t_k$,
$$\delta\leqslant g_{m+n}(t_{m+n})\leqslant g_n(t_{m+n}).$$
Now we fix $n$, and take the $\limsup_{m\to +\infty}$. This gives for all integer $n$,
$$\delta\leqslant\limsup_{k\to +\infty}g_k(t_k)\leqslant g_n(t),$$
a contradiction. 

In the second theorem, take $a=0, b=1$. 


*

*If we don't assume $f$ continuous, consider $f_n(x):=x^n$. 

*The same counter-example considering $(0,1)$.

