Continuity on closed interval implies uniform continuity WITHOUT Bolzano-Weierstrass The following result is usually proven using the Bolzano-Weierstrass Theorem (BWT). Can we prove the result without the BWT?

Let $a<b$. If $f:[a,b]\rightarrow \mathbb R$ is continuous, then $f$ is also uniformly continuous.

 A: Arguing from first principles, I suppose one could prove it like this (although I'm not saying it's a good idea):
Define the variation of a function $f \colon I \to \mathbb{R}$, where $I$ is any set, to be the least upper bound of the numbers
$$
\{ |f(x) - f(y)| : x, y \in I \}.
$$
Equivalently, one could define it to be $\sup f(I) - \inf f(I)$.
It is either $+\infty$ (in the extended real number system) or a non-negative real number.
We don't yet know that the variation of $f$ on $I$ is finite even when $I$ is a closed interval of $\mathbb{R}$ and $f$ is continuous.
For each positive integer $n$, let $P_n$ be the partition of $[a, b]$ into $2^n$ intervals of equal length. Let $v_n$ be the maximum variation of $f$ on any one of the closed intervals of $P_n$.
Because each interval of $P_{n+1}$ is contained in an interval of $P_n$, the sequence $(v_n)$ is decreasing.
(It is not necessarily strictly decreasing, of course - and for all we know, $v_n$ could even be equal to $+\infty$ for all $n$.)
A decreasing sequence of non-negative extended real numbers tends to $0$, a strictly positive real limit, or $+\infty$.
Suppose the limit of $(v_n)$ is not $0$. Then there exists $\epsilon > 0$ such that $v_n > \epsilon$ for all $n$.
Let $T$ be the binary tree consisting of all the closed intervals from the $P_n$ on which the variation of $f$ is $> \epsilon$.
Now apply König's Lemma. (This follows from the axiom of dependent choice: see Kőnig's lemma - Wikipedia. There is a leisurely discussion of the lemma in Chapter 1 of Richard Kaye, The Mathematics of Logic (2007).)
[I've included an account of the lemma in an addendum below,
intended to make this answer more self-contained.  It's mostly a
matter of definitions, and the proof is very straightforward -
corrections are welcome, of course!]
Because $T$ has a vertex in $P_n$ for each $n$, it has infinitely many vertices.
By König's Lemma, therefore, there is an infinite sequence of closed intervals $(I_n)$, where $I_n$ is in $P_n$, the variation of $f$ on $I_n$ is $> \epsilon$, and $I_{n+1} \subset I_n$ for all $n$.
Because the length of $I_n$ tends to $0$ as $n$ tends to infinity, the increasing sequence of the left endpoints of the $I_n$ and the decreasing sequence of the right endpoints of the $I_n$ have a common limit, $c \in [a, b]$.
By the continuity of $f$ at $c$, there exists $\delta > 0$ such that $|f(x) - f(c)| < \epsilon/2$ if $|x - c| < \delta$ and $a \leqslant x \leqslant b$.
But $c \in I_n$ for all $n$, therefore the variation of $f$ on $I_n$ is $\leqslant \epsilon$ whenever $n$ is so large that the length of $I_n$ is $< \delta$.
This contradiction shows that the limit of $(v_n)$ must be $0$.
Now, given any $\epsilon > 0$, choose $n$ so that $v_n < \epsilon/2$. Let $\delta$ be the common length of the intervals of $I_n$.
If $x, y \in [a, b]$ and $|x - y| < \delta$, then $x$ and $y$ lie either in the same interval of $P_n$ or in adjacent intervals.
In either case, $|f(x) - f(y)| < \epsilon$. This shows that $f$ is uniformly continuous on $[a, b]$.
(I must say, the use of König's Lemma feels like overkill. But the proof does have the virtue of proving at the same time that $f$ is bounded.)
Addendum on König's Lemma
An alphabet is a finite set, whose elements are called characters.
A string is a finite sequence of characters. The string of length
$0$ is called the null string, and often denoted by $\epsilon$.
The concatenation of strings $a_1a_2\ldots a_m$ and $b_1b_2\ldots b_n$
is $a_1a_2\ldots a_mb_1b_2\ldots b_n$, and $a_1a_2\ldots a_m$ is called
a prefix of such a string.
A language is a set of strings.  A language $L$ is called
prefix closed, or a tree, if every prefix of every string in $L$
is also in $L$. (Equivalently, $\alpha a \in L \implies \alpha \in L$,
when $a$ is a character.) If a subset of a tree is also a tree, it is
called a subtree.
(This is a restrictive definition of 'tree' - even for the purpose
of stating König's Lemma - but it is all we need here.)
A binary string is a string over the alphabet $\{0, 1\}$.
The full binary tree, here denoted by $S$, is the set of all
binary strings.  A binary tree is a subtree of $S$, i.e. a
prefix closed set of binary strings.
For $n \geqslant 0$, let $S_n$ be the set of all binary strings of
length $n$. For $\alpha \in S_n$, let $t(\alpha)$ be the natural
number represented by the binary numeral $\alpha$ (or $0$ when
$\alpha$ is null), so that $0 \leqslant t(\alpha) \leqslant 2^n - 1$.
Then the closed intervals of $P_n$ are
$$
K_\alpha =
\left[
a + \frac{t(\alpha)}{2^n}(b - a),
a + \frac{t(\alpha) + 1}{2^n}(b - a)
\right]
\quad (\alpha \in S_n).
$$
Each $\alpha \in S_n$ has two 'child' sequences $\alpha0, \alpha1$,
and these relations hold:
\begin{align*}
t(\alpha0) & = 2t(\alpha), \\
t(\alpha1) & = 2t(\alpha) + 1,
\end{align*}
and
\begin{align*}
K_{\alpha0} \cup K_{\alpha1} & = K_\alpha, \\
K_{\alpha0} \cap K_{\alpha1} & =
\left\{ \frac{2t(\alpha) + 1}{2^{n+1}} \right\}.
\end{align*}
König's Lemma, in the form needed here, states that if $T$ is an
infinite binary tree, then there exists an infinite binary sequence
(i.e. an infinite sequence of $0$s and $1$s), $\beta$, whose
prefixes are all in $T$. That is, if $\beta = b_1b_2b_3\ldots$, then
the $n^\text{th}$ prefix $\beta_n = b_1b_2\ldots b_n$ of $\beta$
belongs to $T$, for all $n \geqslant 0$.
Proof. Let $U$ be the subset of $T$ such that $\alpha \in U$ if
and only if $\alpha$ is a prefix of infinitely many strings in $T$.
Clearly, $U$ is a subtree of $T$ (although we don't need this fact),
and $\epsilon \in U$. Let $R$ be the 'parent-child' relation on $T$:
$$
R = \{ (\alpha, \alpha b) : \alpha \in T, \ b \in \{0, 1\}\}.
$$
For $\alpha \in T$, the strings in $T$ that are prefixed by $\alpha$
are $\alpha$ itself together with the strings in $T$ that are
prefixed by $\alpha0$ or $\alpha1$. Therefore, if $\alpha \in U$,
then either $\alpha0 \in U$, or $\alpha1 \in U$, or both.
That is, the restriction of $R$ to a relation on $U$ is
'[left-]total', 'serial', 'entire'. (These terms are synonymous: see
Serial relation - Wikipedia,
as well as the next reference.)
It follows immediately, using the Axiom of Dependent Choice (see
Axiom of dependent choice - Wikipedia, and
Dependent Choice (Fixed First Element) - ProofWiki)
that there exists an infinite sequence $(\beta_n)$ in $U$ such that
$\beta_0 = \epsilon$ and $\beta_n R \beta_{n+1}$ ($n = 0, 1, 2, \ldots$).
'Choose' any such sequence $(\beta_n)$.
For $n \geqslant 1$, define $b_n$ as the last binary digit of
$\beta_n$, so $\beta_n = \beta_{n-1} b_n$. Then
$$
b_1b_2\ldots b_n = \beta_n \in T \quad (n = 0, 1, 2, \ldots),
$$
as is claimed by the lemma. $\square$
