Rudin provides the following Theorem (modified to isolate my question):
$f$ is Riemann Integrable on $[a,b]$ if and only if for all $\epsilon>0$ there exists a partition $P$ such that $$U(P,f)-L(P,f) < \epsilon$$
Proof (<= direction):
For each partition $P$ we have: $$L(P,f) < \sup_{P} L(P,f) < \inf_{P} U(P,f) < U(P,f)$$ Implies that: $$ 0 \leq \sup_{P} L(P,f) - \inf_{P} U(P,f) < \epsilon$$ Hence for all $\epsilon > 0$, we have $$ \sup_{P} L(P,f) = \inf_{P} U(P,f)$$ Which, by definition, means $f$ is Riemann integrable.
I'm confused by the part in the bold. It's certainly true that $$ 0 \leq \sup_{P} L(P,f) - \inf_{P} U(P,f) < \epsilon$$ for any $\epsilon$. But for any $\epsilon$, no matter how small, $\epsilon$ is still greater than 0. How do we get from $ \sup_{P} L(P,f)$ and $\inf_{P} U(P,f)$ being arbitrarily close to actually equal? I think there's a skipped step, but I can't say it precisely.