For an arbitrary $\varepsilon > 0$, there are numbers $N_1, N_2, N_3$ so that

  • For all $n \ge N_1$ we have $|f_n(a) - c| < \varepsilon$.
  • For all $n \ge N_2$ we have $|f_n(b) - d| < \varepsilon$.
  • For all $n \ge N_3$ and $x \in (a, b)$ we have $|f_n(x) - f(x)| < \varepsilon$.

Now extend $f(x)$ via $f(a) = c$ and $f(b) = d$ to a function on $[a, b]$. Choosing $N = \max\{N_1, N_2, N_3\}$ now yields $|f_n(x) - f(x)| < \varepsilon$ for all $x \in [a, b]$ and $n \ge N$, i.e. $f_n$ converges uniformly to $f$.