[guided]We construct the sequences $(a_n)_{n \ge 0}, (b_n)_{n \ge 0} \subset \mathbb{R}$ by recursion, maintaining four invariants at every stage. The invariants encode the geometric picture: the right endpoint $b_n$ is always pinned as an *upper bound* of $S$, while the left endpoint $a_n$ is always *dominated* by some element of $S$. Why both? The first invariant lets us pass to the limit and obtain an upper bound; the second prevents the limit from being too large to be the *least* upper bound. Together they sandwich $\sup S$.
Precisely, suppose $a_n, b_n \in \mathbb{R}$ have been chosen with
(P1) $a_n \le b_n$ — the interval is non-degenerate;
(P2) $b_n$ is an upper bound of $S$ — i.e. $b_n \ge x$ for all $x \in S$;
(P3) there exists $s_n \in S$ with $a_n \le s_n$ — equivalently, $a_n$ is *not* a strict upper bound of $S$;
(P4) $b_n - a_n = (b_0 - a_0)/2^n$ — the interval halves at each stage.
How do we extend to level $n+1$? Form the midpoint
\begin{align*}
m_n := \frac{a_n + b_n}{2} \in \mathbb{R}.
\end{align*}
We ask the natural dichotomy: is $m_n$ an upper bound of $S$, or not? Negating "upper bound" gives: there exists $s \in S$ with $s \ge m_n$ (here we use the strict logical negation of "$m_n \ge x$ for all $x \in S$", which produces some $s \in S$ with $s > m_n$, in particular $s \ge m_n$; we keep the weak form because it is what (P3) requires). These two cases are exhaustive, so we define
\begin{align*}
(a_{n+1}, b_{n+1}) := \begin{cases} (m_n, b_n) & \text{if there exists } s \in S \text{ with } s \ge m_n, \\ (a_n, m_n) & \text{otherwise (}m_n \text{ is an upper bound of } S\text{).} \end{cases}
\end{align*}
We verify each invariant in each case, since the recursion is well-posed only if (P1)-(P4) propagate.
*Case 1: there exists $s \in S$ with $s \ge m_n$.* We move the **left** endpoint forward: $a_{n+1} = m_n$, $b_{n+1} = b_n$.
- (P1): $a_{n+1} = m_n = (a_n + b_n)/2 \le (b_n + b_n)/2 = b_n = b_{n+1}$, using (P1) at level $n$.
- (P2): $b_{n+1} = b_n$ is still an upper bound — nothing about $S$ has changed.
- (P3): the witness $s \in S$ from the case hypothesis satisfies $s \ge m_n = a_{n+1}$, so we may take $s_{n+1} := s$.
- (P4): $b_{n+1} - a_{n+1} = b_n - m_n = b_n - (a_n + b_n)/2 = (b_n - a_n)/2 = (b_0 - a_0)/2^{n+1}$, using (P4) at level $n$.
*Case 2: $m_n$ is an upper bound of $S$.* We move the **right** endpoint inward: $a_{n+1} = a_n$, $b_{n+1} = m_n$.
- (P1): $a_{n+1} = a_n \le (a_n + b_n)/2 = m_n = b_{n+1}$, using (P1) at level $n$.
- (P2): $b_{n+1} = m_n$ is an upper bound by the case hypothesis itself.
- (P3): the previous witness $s_n \in S$ from (P3) at level $n$ still satisfies $s_n \ge a_n = a_{n+1}$, so set $s_{n+1} := s_n$.
- (P4): $b_{n+1} - a_{n+1} = m_n - a_n = (a_n + b_n)/2 - a_n = (b_n - a_n)/2 = (b_0 - a_0)/2^{n+1}$, using (P4) at level $n$.
What about the base case $n = 0$? By Step 1, $a_0 \in S$ and $b_0$ is an upper bound of $S$ with $a_0 \le b_0$. So (P1) holds; (P2) holds by choice of $b_0$; (P3) holds with $s_0 := a_0$ since $a_0 \in S$ and $a_0 \le a_0$; (P4) holds since $2^0 = 1$ gives $b_0 - a_0 = (b_0 - a_0)/2^0$.
By induction on $n \ge 0$, the recursion produces well-defined sequences $(a_n), (b_n) \subset \mathbb{R}$ satisfying (P1)-(P4) for every $n \ge 0$. Note that the design is asymmetric in a useful way: in each case we keep the *better* endpoint of the two — the one whose invariant we already know — and replace the other by $m_n$, whose invariant we have just verified by case assumption.[/guided]