Baire's Category Theorem and Banach–Steinhaus
what you get from a space that cannot be built out of thin pieces
This is the oldest piece of writing on this site, and the first essay I ever wrote. The argument is the one I put down in November 2023; for the web version I have tightened a few statements, filled in the steps I had waved at, and redrawn the figures. I prove Baire's category theorem for complete normed spaces and then spend it on two things: the existence of continuous functions that are differentiable nowhere, and the Banach–Steinhaus theorem.
The theorem is worth stating in one sentence before any of the machinery arrives. A complete normed space is thick: you cannot assemble it out of countably many thin pieces. So whenever you manage to cover such a space with a countable family of sets, at least one of them has to be fat somewhere, and that forced fatness is enough to conjure objects you would have no idea how to write down by hand. Both results below are of exactly that shape.
Dense and nowhere dense
Definition 1.0. A subset $M$ of a normed vector space $X$ is dense if for every $x \in X$ there is a sequence $(x_i)_{i \geq 1} \subseteq M$ with $\lim_{i \to \infty} x_i = x$.
Definition 1.1. A subset $N$ of a normed vector space $X$ is nowhere dense if there is no nonempty open $U \subseteq X$ in which $N$ is dense.
The whole proof of Baire's theorem runs on one consequence of that definition, so it is worth isolating. For closed sets it is an equivalence, and both directions get used later.
Lemma 1.2. (a) A nowhere dense set contains no open ball. (b) Conversely, a closed set containing no open ball is nowhere dense.
Proof. (a) Let $N \subseteq X$ be nowhere dense and suppose, for contradiction, that $B(x, \varepsilon) \subseteq N$ for some $x \in X$ and $\varepsilon > 0$. Every point of $B(x,\varepsilon)$ then lies in $N$, so $N$ is dense in the nonempty open set $B(x,\varepsilon)$ — trivially, since each point is its own constant sequence. That contradicts $N$ being nowhere dense.
(b) Let $N$ be closed and suppose it is dense in some nonempty open $U$. Then $U \subseteq \operatorname{cl}(N) = N$, and $U$, being open and nonempty, contains an open ball. So $N$ contains an open ball. Contrapositively, a closed set with no open ball inside it is nowhere dense. □
Baire's category theorem
Definition 2.0. A normed space $X$ is a Baire space if no countable union of closed nowhere dense subsets of $X$ contains an open ball.
Theorem 2.1 (Baire). Every complete normed space is a Baire space.
Proof. Let $(X, \lVert \cdot \rVert)$ be a complete normed space. Suppose, for contradiction, that there is a sequence of closed nowhere dense sets $(C_i)_{i \geq 1} \subseteq X$ whose union $Y = \bigcup_{i \geq 1} C_i$ contains an open ball, say $B(x_1, \varepsilon_1) \subseteq Y$.
The plan is to burrow: to build a nested sequence of balls, the $(n+1)$st of which avoids $C_n$ entirely, and then to catch the point they close down on. Concretely, I claim there are points $x_n$ and radii $\varepsilon_n > 0$ such that for every $n \geq 1$,
$$B(x_{n+1}, \varepsilon_{n+1}) \;\subseteq\; B\!\left(x_n, \tfrac{\varepsilon_n}{2}\right) \setminus C_n, \qquad \varepsilon_{n+1} \leq \tfrac{\varepsilon_n}{2}.$$Base case. $B(x_1, \varepsilon_1/2)$ is an open ball, so by Lemma 1.2(a) it is not contained in the nowhere dense set $C_1$. Choose $x_2 \in B(x_1, \varepsilon_1/2) \setminus C_1$. Since $C_1$ is closed, $X \setminus C_1$ is open, and its intersection with the open ball $B(x_1, \varepsilon_1/2)$ is open and nonempty — nonempty because it contains $x_2$. Every point of an open set is the centre of some ball contained in that set, so there is $\varepsilon_2 > 0$ with $B(x_2, \varepsilon_2) \subseteq B(x_1, \varepsilon_1/2) \setminus C_1$, and we may shrink $\varepsilon_2$ so that $\varepsilon_2 \leq \varepsilon_1/2$.
Inductive step. Given $x_n$ and $\varepsilon_n > 0$, the same three moves apply verbatim with $n$ in place of $1$: the open ball $B(x_n, \varepsilon_n/2)$ is not contained in the nowhere dense $C_n$, so pick $x_{n+1}$ in $B(x_n, \varepsilon_n/2) \setminus C_n$; that set is open because $C_n$ is closed; so some $B(x_{n+1}, \varepsilon_{n+1})$ with $\varepsilon_{n+1} \leq \varepsilon_n/2$ sits inside it. This proves the claim.
Two things follow. First, the radii collapse: $\varepsilon_{n+1} \leq \varepsilon_n / 2$ gives $\varepsilon_n \leq \varepsilon_1 2^{-(n-1)} \to 0$. Second, the balls nest, since $B(x_{n+1}, \varepsilon_{n+1}) \subseteq B(x_n, \varepsilon_n/2) \subseteq B(x_n, \varepsilon_n)$.
So $(x_n)_{n \geq 1}$ is Cauchy. Given $\varepsilon > 0$, pick $k$ with $\varepsilon_k < \varepsilon$, which is possible since $\varepsilon_n \to 0$. For every $n \geq k$ nesting puts $x_n$ inside $B(x_k, \varepsilon_k)$, so $\lVert x_n - x_k \rVert < \varepsilon_k < \varepsilon$. Since $X$ is complete, $x_n \to x$ for some $x \in X$.
Now locate the limit. Fix $n \geq 1$. For every $m > n$ we have $x_m \in B(x_{n+1}, \varepsilon_{n+1}) \subseteq B(x_n, \varepsilon_n / 2)$, so $\lVert x_m - x_n \rVert < \varepsilon_n/2$, and letting $m \to \infty$ gives $\lVert x - x_n \rVert \leq \varepsilon_n / 2 < \varepsilon_n$. This is exactly what the halved radius bought us: passing to the limit costs a non-strict inequality, and the factor of two absorbs it, so $x$ lands strictly inside $B(x_n, \varepsilon_n)$ rather than merely on its closure.
The same estimate at $n+1$ gives $x \in B(x_{n+1}, \varepsilon_{n+1}) \subseteq X \setminus C_n$ for every $n \geq 1$, so $x$ belongs to no $C_n$ and therefore $x \notin Y$. But $n = 1$ gives $x \in B(x_1, \varepsilon_1) \subseteq Y$. Contradiction. □
Corollary 2.2. A complete normed vector space is not a countable union of closed nowhere dense subsets.
Proof. A normed vector space contains at least the zero vector, so $B(0, 1)$ is an open ball, and it is contained in $X$. If $X$ were a countable union of closed nowhere dense subsets, that union would contain an open ball, contradicting Theorem 2.1. □
Completeness is doing real work in that corollary, and it is easy to state it carelessly without it. A general normed space really can be a countable union of closed nowhere dense pieces: take an infinite-dimensional space with a countable Hamel basis and write it as the union of the finite-dimensional subspaces spanned by the first $n$ basis vectors, each of which is closed with empty interior.
Lemma 2.3. A subset $M$ of a normed vector space $X$ is dense if and only if $X \setminus M$ contains no open ball.
Proof. ($\Rightarrow$) Let $M$ be dense and suppose $B(m, \varepsilon) \subseteq X \setminus M$ for some $m \in X$ and $\varepsilon > 0$. By density there is a sequence $(m_i)_{i \geq 1} \subseteq M$ with $m_i \to m$, so there is $N \geq 1$ with $\lVert m - m_N \rVert < \varepsilon$. Then $m_N \in B(m, \varepsilon) \subseteq X \setminus M$, while $m_N \in M$. These sets are disjoint, so this is a contradiction.
($\Leftarrow$) Suppose $X \setminus M$ contains no open ball, and let $x \in X$. For each $n \geq 1$ the set $B(x, 1/n)$ is an open ball, hence not contained in $X \setminus M$, so we may choose $m_n \in B(x, 1/n) \cap M$. Then $\lVert x - m_n \rVert < 1/n \to 0$, so $(m_n)_{n \geq 1} \subseteq M$ converges to $x$. As $x$ was arbitrary, $M$ is dense. □
Lemma 2.3 is the translation dictionary between the two standard ways of saying Baire's theorem. Reading Theorem 2.1 through it gives the formulation most often quoted.
Lemma 2.4. In a complete normed space $X$, the intersection $\bigcap_{n \geq 1} O_n$ of any countable collection of open dense subsets $(O_n)_{n \geq 1}$ is dense in $X$.
Proof. Write $U = \bigcap_{n \geq 1} O_n$. By De Morgan,
$$X \setminus U \;=\; \bigcup_{n \geq 1}\, (X \setminus O_n).$$Each $O_n$ is open, so each $X \setminus O_n$ is closed; each $O_n$ is dense, so by Lemma 2.3 each $X \setminus O_n$ contains no open ball; and a closed set containing no open ball is nowhere dense by Lemma 1.2(b). So $X \setminus U$ is a countable union of closed nowhere dense sets, and Theorem 2.1 says it contains no open ball. Applying Lemma 2.3 once more, this time to $U$, gives that $U$ is dense. □
A continuous function differentiable nowhere
Here is the first payoff, and the one that made me care about the theorem in the first place. Continuous functions that fail to be differentiable at even a single point are notoriously fiddly to construct by hand — Weierstrass's example is an infinite series whose non-differentiability takes real work to verify. Baire's theorem produces them for free, and says more: they are not exotic at all, but the overwhelming majority.
Theorem 2.5. There exists a continuous $f : [0,1] \to \mathbb{R}$ differentiable at no point of $[0,1]$. In fact the set of such functions is dense in $C([0,1])$.
Proof. Work in $C([0,1])$ with the supremum norm $\lVert f \rVert_\infty = \sup_{x \in [0,1]} \lvert f(x) \rvert$, under which it is complete. For $f$ to be differentiable somewhere there must be an $x \in [0,1]$ at which $\lim_{h \to 0} \frac{f(x+h) - f(x)}{h}$ exists. Inspired by that, define for each $n, m \geq 1$
$$\begin{aligned} A_{n,m} \;=\; \Bigl\{\, f \in C([0,1]) \;:\;\ &\exists\, x \in [0,1] \ \text{ with } \ \Bigl\lvert \tfrac{f(x+h) - f(x)}{h} \Bigr\rvert \leq n \\[2pt] &\text{for all } h \text{ with } 0 < \lvert h \rvert < \tfrac{1}{m} \ \text{ and } \ x + h \in [0,1] \,\Bigr\}. \end{aligned}$$Every somewhere-differentiable function lands in one of these. Suppose $f$ has derivative $y$ at $x$. Choose $n > \lvert y \rvert$. By the definition of the limit there is $\varepsilon > 0$ such that $\lvert (f(x+h) - f(x))/h \rvert \leq n$ whenever $0 < \lvert h \rvert < \varepsilon$, and then choose $m$ with $1/m < \varepsilon$, which is possible since $1/m \to 0$. So $f \in A_{n,m}$. Writing $ND([0,1])$ for the set of nowhere differentiable functions, this says
$$C([0,1]) \setminus ND([0,1]) \;\subseteq\; \bigcup_{n \geq 1,\, m \geq 1} A_{n,m}.$$Each $A_{n,m}$ is closed. Let $(f_i)_{i \geq 1} \subseteq A_{n,m}$ converge uniformly to $f$, and let $x_i$ be a witness for $f_i$, so that $\lvert (f_i(x_i + h) - f_i(x_i))/h \rvert \leq n$ for all admissible $h$ with $\lvert h \rvert < 1/m$. The witnesses all live in $[0,1]$, which is closed and bounded, so by Bolzano–Weierstrass some subsequence converges, say $x_{i_k} \to x \in [0,1]$. Fix $h$ with $0 < \lvert h \rvert < 1/m$ and $x + h \in [0,1]$; for large $k$ the point $x_{i_k} + h$ lies in $[0,1]$ too, after shrinking $\lvert h \rvert$ by an arbitrarily small amount if $x+h$ is an endpoint. Then
$$\left\lvert \frac{f(x+h) - f(x)}{h} \right\rvert \;=\; \lim_{k \to \infty} \left\lvert \frac{f_{i_k}(x_{i_k} + h) - f_{i_k}(x_{i_k})}{h} \right\rvert \;\leq\; n,$$where the equality uses that $f_{i_k} \to f$ uniformly and $x_{i_k} \to x$ with $f$ continuous. So $x$ is a witness for $f$, giving $f \in A_{n,m}$.
Each $A_{n,m}$ contains no open ball. Take any $f \in A_{n,m}$ and any $\varepsilon > 0$; we produce a member of $B(f, \varepsilon)$ that is not in $A_{n,m}$. My first thought here was to reach for Fourier series, on the grounds that a truncated series wiggles around the function it approximates.
That does not quite do the job: a partial sum is smooth with bounded derivative, so nothing stops it from lying in $A_{n,m}$ as well. Sawtooth functions do the job, because their slopes are ours to choose. The piecewise-linear functions are dense in $C([0,1])$ — $f$ is uniformly continuous on a compact interval, so a fine enough polygonal interpolation stays within $\varepsilon$ of it — and a polygonal path can be replaced by a zigzag with the same endpoints, arbitrarily fine teeth, and slopes as steep as we please.
So choose a sawtooth $g$ with $\lVert f - g \rVert_\infty < \varepsilon$, every linear piece of slope greater than $n$ in absolute value, and every piece of width less than $1/m$. Given any $x \in [0,1]$, take $h$ small enough that $x$ and $x + h$ lie on one linear piece. The difference quotient is then exactly that piece's slope, so it exceeds $n$ while $0 < \lvert h \rvert < 1/m$. No $x$ can witness $g \in A_{n,m}$, so $g \notin A_{n,m}$ although $g \in B(f, \varepsilon)$. Hence $A_{n,m}$ contains no open ball, and being closed it is nowhere dense by Lemma 1.2(b). Detailed proofs of the density claims are in Green's notes [1].
Conclusion. The family $\{A_{n,m}\}$ is indexed by $\mathbb{N}_{\geq 1} \times \mathbb{N}_{\geq 1}$, which is countable, and each member is closed and nowhere dense. By Theorem 2.1 their union contains no open ball. Since $C([0,1]) \setminus ND([0,1])$ is a subset of that union, it contains no open ball either, and Lemma 2.3 turns this into the statement that $ND([0,1])$ is dense in $C([0,1])$. In particular it is not empty. □
So the nowhere differentiable functions are not merely present, they are the generic case: the differentiable-somewhere functions form a meagre set, and a function picked without care will be one of the pathological ones. As is usually the case with this theorem, we have proved that an object exists in a space without gaining the slightest intuition for how to write one down.
Banach–Steinhaus
The second payoff is a staple of functional analysis, and it has the same character: a hypothesis that is checked one point at a time gets upgraded, for free, into a statement that is uniform over the whole space.
Definition 3.0. A subset $S$ of a normed vector space is uniformly bounded if there is a constant $C > 0$ with $\lVert x \rVert < C$ for every $x \in S$.
Definition 3.1. Given a collection of bounded linear operators $(f_\alpha)_{\alpha \in A} \subseteq \mathcal{B}(X, Y)$ between normed vector spaces $X$ and $Y$, indexed by a set $A$, the collection is pointwise bounded at $x \in X$ if there is $C_x > 0$ with $\lVert f_\alpha(x) \rVert < C_x$ for every $\alpha \in A$.
Theorem 3.2 (Banach–Steinhaus). Let $X$ be a Banach space and $Y$ a normed vector space. If a collection of bounded linear operators in $\mathcal{B}(X,Y)$ is pointwise bounded at every $x \in X$, then it is uniformly bounded in the operator space $(\mathcal{B}(X,Y), \lVert \cdot \rVert_{\mathcal{B}})$.
Proof. Let $(X, \lVert \cdot \rVert_X)$ be a Banach space, $(Y, \lVert \cdot \rVert_Y)$ a normed space, $A$ an index set, and assume $T = (f_\alpha)_{\alpha \in A} \subseteq \mathcal{B}(X,Y)$ is pointwise bounded at every $x \in X$. Partition the domain by how large the operators get:
$$E_k := \Bigl\{ x \in X : \sup_{f \in T} \lVert f(x) \rVert_Y \leq k \Bigr\} \;=\; \bigcap_{f \in T} \bigl\{ x : \lVert f(x) \rVert_Y \leq k \bigr\}, \qquad k \in \mathbb{N}.$$By pointwise boundedness (Definition 3.1) every $x \in X$ has a bound $C_x$, so $x \in E_k$ for any $k \geq C_x$, and therefore
$$\bigcup_{k \geq 1} E_k = X.$$Each set $\{x : \lVert f(x) \rVert_Y \leq k\}$ is the preimage of a closed set under a continuous map, hence closed, and an intersection of closed sets is closed, so every $E_k$ is closed. By Corollary 2.2 the $E_k$ cannot all be nowhere dense, since a complete space is not a countable union of closed nowhere dense sets. So there is some $N \in \mathbb{N}$ for which $E_N$ is not nowhere dense, and since $E_N$ is closed, Lemma 1.2(b) says it contains an open ball. That ball's closure stays inside the closed set $E_N$, so we also get a closed ball: there are $b \in E_N$ and $\varepsilon > 0$ with $\overline{B}(b, \varepsilon) \subseteq E_N$.
Now take any $z \in X$ with $z \neq 0$ and rescale it to length exactly $\varepsilon$:
$$z_\varepsilon = \frac{\varepsilon}{\lVert z \rVert_X}\, z, \qquad \lVert (b + z_\varepsilon) - b \rVert_X = \lVert z_\varepsilon \rVert_X = \varepsilon.$$This is the point of the rescaling: it makes $b + z_\varepsilon$ land in the closed ball, hence in $E_N$, which bounds $\sup_{f \in T} \lVert f(b + z_\varepsilon) \rVert_Y \leq N$. Since $b \in E_N$ as well, linearity and the triangle inequality give
$$\sup_{f \in T} \lVert f(z_\varepsilon) \rVert_Y = \sup_{f \in T} \lVert f(b + z_\varepsilon) - f(b) \rVert_Y \leq \sup_{f \in T} \lVert f(b + z_\varepsilon) \rVert_Y + \sup_{f \in T} \lVert f(b) \rVert_Y \leq 2N.$$The scaled-down $z_\varepsilon$ now has a concrete bound, so scale back up using $z = \frac{\lVert z \rVert_X}{\varepsilon} z_\varepsilon$:
$$\sup_{f \in T} \lVert f(z) \rVert_Y \;=\; \frac{\lVert z \rVert_X}{\varepsilon} \sup_{f \in T} \lVert f(z_\varepsilon) \rVert_Y \;\leq\; \frac{2N \lVert z \rVert_X}{\varepsilon}.$$Dividing by $\lVert z \rVert_X$ and taking the supremum over $z \neq 0$, the definition of the operator norm gives
$$\lVert f \rVert_{\mathcal{B}} \;=\; \sup_{z \neq 0} \frac{\lVert f(z) \rVert_Y}{\lVert z \rVert_X} \;\leq\; \frac{2N}{\varepsilon} \qquad \text{for every } f \in T.$$Since $2N/\varepsilon$ is a constant independent of $f$, the collection $T$ is uniformly bounded by Definition 3.0. □
The shape of the argument is worth keeping. Pointwise boundedness is a countable-cover hypothesis in disguise: it says the space is exhausted by the sublevel sets $E_k$. Completeness then forces one of them to contain a ball, and linearity broadcasts that single ball's worth of control across the entire space. Baire's theorem is the step that turns "for each $x$, some bound" into "some bound, for all $x$" — the same trick, in the end, as conjuring a function that is differentiable nowhere.
- Green, B. The Baire category theorem. University of Oxford, May 2009.
- Gantumur, T. Baire's theorem and its consequences. Department of Mathematics and Statistics, McGill University.
- Handout 7: the Baire category theorem and its consequences. University College London, 2012.
- The Bright Side of Mathematics. Functional analysis 24: uniform boundedness principle / Banach–Steinhaus theorem, 2020.
- MIT OpenCourseWare. Lecture 3: quotient spaces, the Baire category theorem and the uniform boundedness theorem, 2022.
Written November 2023, put on the web in 2026. A pdf version of this essay is also here.