nLab Stone-Weierstrass theorem




The Stone–Weierstrass theorem says given a compact Hausdorff space XX, one can uniformly approximate continuous functions f:Xf: X \to \mathbb{R} by elements of any subalgebra that has enough elements to distinguish points. It is a far-reaching generalization of a classical theorem of Weierstrass, that real-valued continuous functions on a closed interval are uniformly approximable by polynomial functions.

Precise statement

Let XX be a compact Hausdorff topological space; for a constructive version take XX to be a compact regular locale (see compactum). Recall that the algebra C(X)C(X) of real-valued continuous functions f:Xf: X \to \mathbb{R} is a commutative (real) Banach algebra with unit, under pointwise-defined addition and multiplication, and where the norm is the sup-norm

f:=sup xX|f(x)|\|f\| := sup_{x \in X} |f(x)|

A subalgebra of C(X)C(X) is a vector subspace AC(X)A \subseteq C(X) that is closed under the unit and algebra multiplication operations on C(X)C(X). A Banach subalgebra is a subalgebra AC(X)A \subseteq C(X) which is closed as a subspace of the metric space C(X)C(X) under the sup-norm metric. We say that AC(X)A \subseteq C(X) separates points if, given distinct points x,yXx, y \in X, there exists fAf \in A such that f(x)f(y)f(x) \neq f(y).

Theorem (Stone–Weierstrass)

A subalgebra inclusion AC(X)A \subseteq C(X) is dense if and only if it separates points. Equivalently, a Banach subalgebra inclusion AC(X)A \subseteq C(X) is the identity if and only if it separates points.

Outline of proof

  • The first step is the classical Weierstrass approximation, that polynomial functions p(x):[a,b]p(x): [a, b] \to \mathbb{R} are dense in C([a,b])C([a, b]); without loss of generality, take a=14a = -\frac1{4} and b=14b = \frac1{4}. We use the method of constructing polynomials which approximate the identity of the convolution product (the Dirac distribution). Explicitly, consider the normalizations K n=s n/s n 1K_n = s_n/\|s_n\|_1 where s n(x)=(1x 2) ns_n(x) = (1 - x^2)^n over [1,1][-1, 1] and is compactly supported on [1,1][-1, 1], so that K nK_n approximates the Dirac distribution concentrated at 0. Given f:[14,14]f: [-\frac1{4}, \frac1{4}] \to \mathbb{R}, extend to a function compactly supported on [12,12][-\frac1{2}, \frac1{2}]. The convolution product
    (K n*f)(x)= 1 1K n(xy)f(y)dy(K_n * f)(x) = \int_{-1}^1 K_n(x-y) f(y) d y

    is polynomial (since by differentiating under the integral enough times, we eventually kill the convolving polynomial factor K nK_n), and one may verify that (K n*f)(K_n * f) converges to ff in sup norm (i.e., uniformly) as nn \to \infty, and in particular when restricted over the interval [14,14][-\frac1{4}, \frac1{4}].

Now suppose given a Banach subalgebra AC(X)A \subseteq C(X).

  • Given fAC(X)f \in A \subseteq C(X), the values of ff are contained in some interval [a,b][a, b]. If polynomials p np_n converge to the absolute value function ||:[a,b]|\cdot |: [a, b] \to \mathbb{R} in sup norm, then p n(f)Ap_n(f) \in A converges to |f|C(X)|f| \in C(X) in sup norm. Since AA is closed in C(X)C(X) with respect to the sup-norm, it follows that |f|A|f| \in A.

  • Next, AA is partially ordered by fgf \leq g if f(x)g(x)f(x) \leq g(x) for all xXx \in X, and we claim the poset AA is closed under binary meets and binary joins. For,

    fg=12(|fg|+(f+g))f \vee g = \frac1{2}(|f - g| + (f + g))

    and fg=((f)(g))f \wedge g = -((-f) \vee (-g)), and we showed in the last step that AA is closed under the operation f|f|f \mapsto |f|.

Finally, suppose the Banach subalgebra AA separates points. Given gC(X)g \in C(X) and ε>0\varepsilon \gt 0, the last step is to show there exists fAf \in A such that fgε\|f - g\| \leq \varepsilon.

  • Lemma

    Given xXx \in X, there exists f xAf_x \in A such that f x(x)=g(x)f_x(x) = g(x) and g(y)f x(y)+εg(y) \leq f_x(y) + \varepsilon for all yXy \in X.


    For each yXy \in X, yxy \neq x we can choose sAs \in A such that s(x)s(y)s(x) \neq s(y), since AA separates points. Thus, given any x,yx, y, there exist sAs \in A and scalars aa and bb such that

    a+bs(x)=g(x),a+bs(y)=g(y)a + b \cdot s(x) = g(x), \qquad a + b \cdot s(y) = g(y)

    Denote a1+bsa \cdot 1 + b s by f x,yf_{x, y} (to indicate dependence on xx and yy). For each yy, choose a neighborhood V yV_y so that g(z)f x,y(z)+εg(z) \leq f_{x, y}(z) + \varepsilon for all zV yz \in V_y. Finitely many such neighborhoods V y 1,,V y nV_{y_1}, \ldots, V_{y_n} cover XX; let f xf_x be the join of f x,y 1,,f x,y nf_{x, y_1}, \ldots, f_{x, y_n}. Then g(y)f x(y)+εg(y) \leq f_x(y) + \varepsilon for all yXy \in X.

  • Given a choice of f xf_x for each xXx \in X, as in the preceding lemma, we may choose a neighborhood V xV_x such that f x(z)εg(z)f_x(z) - \varepsilon \leq g(z) for all zV xz \in V_x. Finitely many such neighborhoods V x 1,,V x nV_{x_1}, \ldots, V_{x_n} cover XX; let ff be the meet of f x 1,,f x nf_{x_1}, \ldots, f_{x_n}. Then

    f(y)εg(y)f(y)+εf(y) - \varepsilon \leq g(y) \leq f(y) + \varepsilon

    for all yXy \in X, as was to be shown.


There is a complex-valued version of Stone–Weierstrass. Let C(X,)C(X, \mathbb{C}) denote the commutative C *C^*-algebra of complex-valued functions f:Xf: X \to \mathbb{C}, where the star operation is pointwise-defined conjugation. A C *C^*-subalgebra is a subalgebra AC(X,)A \subseteq C(X, \mathbb{C}) which is closed under the star operation.


A C *C^*-subalgebra AC(X,)A \subseteq C(X, \mathbb{C}) is dense if and only if it separates points.

There is also a locally compact version. Let XX be a locally compact Hausdorff space and let C 0(X)C_0(X) be the space of (say real-valued) functions ff which “vanish at infinity”: for every ε>0\varepsilon \gt 0 there exists a compact set KXK \subseteq X such that |f(x)|<ε|f(x)| \lt \varepsilon for all xx outside KK. (C 0(X)C_0(X) is no longer a Banach space, but it is locally convex and complete in its uniformity, and a Fréchet space if XX is second countable.) Under pointwise multiplication, C 0(X)C_0(X) is a commutative algebra without unit. As before, we have a notion of subalgebra AC 0(X)A \subseteq C_0(X).


AC 0(X)A \subseteq C_0(X) is dense if and only if it separates points and for no xXx \in X is it true that every fAf \in A vanishes at xx.


Named after Karl Weierstraß and Marshall Stone.


Discussion in constructive mathematics:

Last revised on October 12, 2022 at 10:05:37. See the history of this page for a list of all contributions to it.