Shapes and Diagrams
The product, the equalizer, and the pullback have been set side by side and seen to share a single
form. Each begins with a small configuration of objects and maps, and each produces from it a
universal object lying over the configuration, through which every compatible family of maps factors
in exactly one way. Only the shape of the starting configuration distinguishes them: a pair of
objects, a parallel pair of maps, a cospan.
The task now is to give this common form a name and a definition that does not depend on which of the
three shapes one began with, so that the same construction becomes available for a configuration of
any shape whatsoever.
The first step was taken in
the closing section on the three constructions,
where the starting configurations were recognized as diagrams drawn in a category, each one a
functor
into \(\mathscr{A}\) from a small category encoding its shape. We keep the names introduced there. The
category \(\mathbf{1}\) is the one-object category, so that a functor \(\mathbf{1} \to \mathscr{A}\) is an
object of \(\mathscr{A}\), and \(\mathbf{2}\) is the category with two objects \(0\) and \(1\) and a
single non-identity map \(0 \to 1\), so that a functor \(\mathbf{2} \to \mathscr{A}\) is a map of
\(\mathscr{A}\). The shapes \(\mathbf{T}\), \(\mathbf{E}\), and \(\mathbf{P}\) are the categories
whose functors into \(\mathscr{A}\) are, respectively, a pair of objects, a parallel pair of maps, and
a cospan. In each case the small category serves as a template, and a functor out of it into
\(\mathscr{A}\) instantiates the template with actual objects and maps of \(\mathscr{A}\).
The shape is not the diagram
It is worth separating two roles that the letter \(\mathbf{1}\) might be asked to play. As a
shape, \(\mathbf{1}\) is the one-object category used as a template, and a functor
\(\mathbf{1} \to \mathscr{A}\) is the act of placing a single object of \(\mathscr{A}\) into that
template. This has nothing to do with a terminal object of \(\mathscr{A}\), which is an object of
\(\mathscr{A}\) with a special mapping-in property, and which need not exist. The shape category
lives outside \(\mathscr{A}\) and is fixed in advance. The diagram is the functor that fills it.
Keeping the template and its filling distinct is what lets one configuration of objects and maps
be described uniformly, regardless of the category it is drawn in.
The configurations and their shapes are thus separated cleanly. The shape is a small category, and the
configuration is a functor out of it. Nothing in this picture privileges the three shapes. Any small
category may serve, and the universal construction will be defined for all of them at once.
Definition: Diagram
Let \(\mathscr{A}\) be a category and \(\mathbf{I}\) a small category. A diagram
in \(\mathscr{A}\) of shape \(\mathbf{I}\) is a functor \(D : \mathbf{I} \to
\mathscr{A}\). The category \(\mathbf{I}\) is called the index category or the
shape of the diagram.
For an object \(I\) of \(\mathbf{I}\) the diagram supplies an object \(D(I)\) of \(\mathscr{A}\), and
for a map \(u : I \to J\) of \(\mathbf{I}\) it supplies a map \(D(u) : D(I) \to D(J)\) of
\(\mathscr{A}\), with composites and identities preserved as for any functor. The objects \(D(I)\) are
the vertices of the diagram and the maps \(D(u)\) its edges. Following common usage we abbreviate
\(D(u)\) to \(Du\). The configurations met as the starting data of the three constructions are
recovered by taking \(\mathbf{I}\) to be \(\mathbf{T}\), \(\mathbf{E}\), or \(\mathbf{P}\). Allowing
\(\mathbf{I}\) to be an arbitrary small category opens the construction beyond those three cases.
One typeface for shapes, another for categories
From here on a boldface letter \(\mathbf{I}\), \(\mathbf{J}\), \(\mathbf{T}\) denotes a small
category serving as a shape, while a script letter \(\mathscr{A}\), \(\mathscr{B}\) denotes an
arbitrary category in which diagrams are drawn. The distinction is a convenience rather than a
necessity, since a shape is itself a category. Still, shapes and the categories they are mapped
into play different parts in the theory, and the typographic split keeps the two roles legible.
The shape \(\mathbf{I}\) is required to be small, meaning that its objects and maps form sets
rather than proper classes. This requirement will matter once the existence of the universal
object is at stake, and it is recorded now so that it is in force throughout.
Cones and Limits
With a diagram of arbitrary shape in hand, the universal object built over it can be defined. In each
of the three constructions the universal object came equipped with maps to the objects of the
configuration, compatible with the maps already present in the configuration. For a product these were
the projections, for an equalizer the single map, and for a pullback the projection pair. The
structure of such a family of maps, from a fixed object to a whole diagram, is what must be isolated.
Definition: Cone
Let \(\mathscr{A}\) be a category, \(\mathbf{I}\) a small category, and \(D : \mathbf{I} \to
\mathscr{A}\) a diagram. A cone on \(D\) is an object \(A \in \mathscr{A}\),
called the vertex of the cone, together with a family of maps
\[
\big(A \xrightarrow{f_I} D(I)\big)_{I \in \mathbf{I}}
\]
in \(\mathscr{A}\), one for each object \(I\) of \(\mathbf{I}\), such that for every map
\(u : I \to J\) in \(\mathbf{I}\),
\[
Du \circ f_I = f_J .
\]
Equivalently, the triangle with apex \(A\) and legs \(f_I, f_J\) to \(D(I), D(J)\) commutes with
the edge \(Du : D(I) \to D(J)\).
The vertex is a single object of \(\mathscr{A}\), and the family assigns to each vertex of the diagram
a map from \(A\) into it. The commuting condition ties the family to the structure of the diagram.
Following the map \(f_I\) into \(D(I)\) and then the edge \(Du\) along to \(D(J)\) must give the same
result as the map \(f_J\) straight into \(D(J)\). A cone is thus a way of mapping a single object
compatibly into every part of a diagram at once. Among all cones on a given diagram there is, in good
cases, a most efficient one, through which all others factor uniquely. That cone is the limit.
Definition: Limit
Let \(D : \mathbf{I} \to \mathscr{A}\) be a diagram. A limit of \(D\) is a cone
\[
\big(L \xrightarrow{p_I} D(I)\big)_{I \in \mathbf{I}}
\]
with the following universal property: for every cone
\(\big(A \xrightarrow{f_I} D(I)\big)_{I \in \mathbf{I}}\) on \(D\), there exists a unique map
\(\bar{f} : A \to L\) such that \(p_I \circ \bar{f} = f_I\) for all \(I \in \mathbf{I}\). The maps
\(p_I\) are called the projections of the limit.
The limit is the universal cone. Every cone factors through it, and in only one way. When a limit
exists, its vertex \(L\) is written \(\lim D\). By a mild abuse of language one often calls the object
\(L\) alone the limit, rather than the whole cone, and leaves the projections understood. A cone with this
universal property is called a limit cone.
A limit is a representing object
The universal property has a compact restatement. Suppose \(\mathscr{A}\) is locally small. For a
fixed diagram \(D\), each object \(A\) of \(\mathscr{A}\) determines the set of cones on \(D\)
with vertex \(A\), a subset of \(\prod_{I \in \mathbf{I}} \mathscr{A}(A, D(I))\). A map
\(g : A' \to A\) turns a cone with vertex \(A\) into one with vertex \(A'\) by composing every leg
with \(g\), so the assignment of cone-sets is a
presheaf
on \(\mathscr{A}\), contravariant in the vertex. The universal property says precisely that a map
\(A \to L\) corresponds to a cone on \(D\) with vertex \(A\), naturally in \(A\). The limit \(L\)
is thus an object
representing
the presheaf of cones. Read this way, a map into \(\lim D\) is the same thing as a cone on \(D\),
which is the most economical statement of the definition.
For a locally small \(\mathscr{A}\), casting the limit as a representing object settles its uniqueness
at once. Two objects representing the same presheaf are
isomorphic,
and the isomorphism is uniquely determined by the requirement that it respect the representation,
which here means that it commute with the projections. The limit of a diagram is therefore unique up
to a single compatible isomorphism whenever it exists, and the definite article in "the limit" is
justified. The proposition below records this conclusion for an arbitrary category, with a direct
proof that uses only the universal property.
Proposition: Uniqueness of Limits
Let \(D : \mathbf{I} \to \mathscr{A}\) be a diagram. If
\(\big(L \xrightarrow{p_I} D(I)\big)_{I \in \mathbf{I}}\) and
\(\big(L' \xrightarrow{p'_I} D(I)\big)_{I \in \mathbf{I}}\) are both limits of \(D\), then there
is a unique isomorphism \(\theta : L' \to L\) such that \(p_I \circ \theta = p'_I\) for all
\(I \in \mathbf{I}\).
Proof
Since \(\big(L' \xrightarrow{p'_I} D(I)\big)\) is a cone on \(D\) and \(L\) is a limit, the
universal property of \(L\) yields a unique map \(\theta : L' \to L\) with
\(p_I \circ \theta = p'_I\) for all \(I\). Symmetrically, since \((L, p_I)\) is a cone and \(L'\) is a
limit, there is a unique \(\theta' : L \to L'\) with \(p'_I \circ \theta' = p_I\) for all \(I\).
Composing gives \(p_I \circ (\theta \circ \theta') = p'_I \circ \theta' = p_I\) for all \(I\),
so \(\theta \circ \theta'\) is a map \(L \to L\) commuting with the projections of \(L\). The
identity \(1_L\) is another such map, and the uniqueness clause of \(L\)'s universal property,
applied to the cone \((L, p_I)\) itself, forces \(\theta \circ \theta' = 1_L\). The same
argument on \(L'\) gives \(\theta' \circ \theta = 1_{L'}\). Hence \(\theta\) is an isomorphism
with inverse \(\theta'\), and it is the unique map \(L' \to L\) commuting with the projections
by the first step.
Because the shape \(\mathbf{I}\) was required to be a small category from the outset, the
limits defined here are what are properly called small limits. No other limits
will concern us.
Recovering the Three Constructions
The definition was built to subsume the product, the equalizer, and the pullback, and the claim is
discharged by computing the limit for each of the three shapes. In every case a diagram of that shape
is unwound into its objects and maps, a cone is identified with the data of the corresponding
universal property, and the limit is read off as the construction already named.
Products as limits of shape \(\mathbf{T}\)
A diagram \(D\) of shape \(\mathbf{T}\) in \(\mathscr{A}\) is a pair \((X, Y)\) of objects, with no
non-identity maps in \(\mathbf{T}\) to impose any commuting condition. A cone on \(D\) is therefore an
object \(A\) together with maps \(f_1 : A \to X\) and \(f_2 : A \to Y\) and nothing more, since the
commuting condition is vacuous when there are no non-identity edges. A limit of \(D\) is a cone
through which every cone factors uniquely. Concretely, it is an object \(P\) with maps to \(X\) and
\(Y\) through which any pair of maps to \(X\) and \(Y\) factors in one way. This is exactly the
product
of \(X\) and \(Y\).
More generally, let \(I\) be a set and let \(\mathbf{I}\) be the discrete category on
\(I\), whose objects are the elements of \(I\) and whose only maps are identities. A diagram
\(D : \mathbf{I} \to \mathscr{A}\) is then an \(I\)-indexed family \((X_i)_{i \in I}\) of objects, a
cone on it is a family of maps \(\big(A \to X_i\big)_{i \in I}\) with no commuting condition, and the
limit is the product \(\prod_{i \in I} X_i\). The shape \(\mathbf{T}\) is the case \(I = \{1, 2\}\).
At the other extreme, taking \(I = \varnothing\) gives the empty diagram, whose only cone-data is the
vertex itself. A limit of the empty diagram is therefore an object \(L\) such that every object \(A\)
admits exactly one map \(A \to L\), namely a
terminal object.
The terminal object is the empty product.
Equalizers as limits of shape \(\mathbf{E}\)
A diagram \(D\) of shape \(\mathbf{E}\) is a parallel pair \(s, t : X \to Y\). A cone on \(D\) is an
object \(A\) with maps \(f : A \to X\) and \(g : A \to Y\) such that the two edges are respected,
\(s \circ f = g\) and \(t \circ f = g\). The map \(g\) is determined by \(f\) as \(g = s \circ f\), so
a cone is equally an object \(A\) and a single map \(f : A \to X\) satisfying
\(s \circ f = t \circ f\), that is, a
fork on \(s\) and
\(t\). A limit of \(D\) is a universal fork, the one through which every fork factors uniquely, which
is the equalizer
of \(s\) and \(t\).
Pullbacks as limits of shape \(\mathbf{P}\)
A diagram \(D\) of shape \(\mathbf{P}\) is a cospan \(X \xrightarrow{s} Z \xleftarrow{t} Y\). A cone
on \(D\) is an object \(A\) with maps to \(X\), \(Y\), and \(Z\) compatible with \(s\) and \(t\). As
with the equalizer, the map to \(Z\) is forced by the maps to \(X\) and \(Y\). A cone therefore
reduces to an object \(A\) with maps \(f_1 : A \to X\) and \(f_2 : A \to Y\) satisfying
\(s \circ f_1 = t \circ f_2\), that is, to a commuting square
\[
\begin{array}{ccc}
A & \xrightarrow{f_2} & Y \\[4pt]
{\scriptstyle f_1}\big\downarrow & & \big\downarrow{\scriptstyle t} \\[4pt]
X & \xrightarrow{s} & Z
\end{array}
\]
A limit of \(D\) is the universal such square, the
pullback
of the cospan.
Inverse limits
Beyond the three finite shapes, an infinite shape produces a construction with a longer history. Let
\(\mathbf{I} = (\mathbb{Z}_{\geq 0}, \leq)^{\mathrm{op}}\), the non-negative integers with their usual
order, reversed. A diagram \(D : \mathbf{I} \to \mathscr{A}\) is then a descending chain of objects
and maps
\[
\cdots \xrightarrow{s_3} X_2 \xrightarrow{s_2} X_1 \xrightarrow{s_1} X_0 ,
\]
one map \(s_{n} : X_{n} \to X_{n-1}\) for each step down. A cone on \(D\) is an object \(A\) with a
compatible family of maps to all the \(X_n\), and a limit assembles the chain into a single object
receiving such a family universally.
Example: a nested intersection
Suppose in \(\mathbf{Set}\) we have a set \(X_0\) and a descending chain of subsets
\[
\cdots \subseteq X_2 \subseteq X_1 \subseteq X_0 ,
\]
with the inclusion maps \(X_n \hookrightarrow X_{n-1}\) forming a diagram of the shape above. A
cone with vertex \(A\) is a family of maps \(A \to X_n\) compatible with the inclusions, which
amounts to a single map \(A \to X_0\) whose image lands inside every \(X_n\). The universal such
object is the intersection \(\bigcap_{n} X_n\), with its inclusions into each \(X_n\). The limit
of a descending chain of subsets is thus their intersection. Here the indexing is not by a finite
shape but by a chain.
Limits over a reversed chain of this kind, and over similar shapes, are also called inverse
limits, a name in common use in algebra and topology. The name connects to the second sense
of the word limit below.
Why "limit"
The limit of a diagram is the most efficient cone over it. Formally, the cones on the diagram
form a category, a map of cones being a map of vertices that commutes with all the legs, and the
limit is the terminal object of that category. The word limit is to be read in the sense of an
extreme or boundary case, the cone that all others fall short of, rather than as a limiting
process of the kind met in analysis. The two senses are not unrelated. The inverse-limit example
above, where an infinite descending chain is resolved into a single object, is the point at
which the categorical notion and the analytic one make contact. But the defining idea is
universality, not approximation.
The Existence of Limits
A limit need not exist. The definition only describes the universal cone should there be one. It
remains to show that in the familiar categories limits do exist, and the cleanest way is to construct
them explicitly. The construction is carried out first in \(\mathbf{Set}\), where it is concrete, and
then shown to reduce in any category to two ingredients already studied: products and equalizers.
Limits in Set
Let \(D : \mathbf{I} \to \mathbf{Set}\) be a diagram of sets. Consider the product
\(\prod_{I \in \mathbf{I}} D(I)\), whose elements are families \((x_I)_{I \in \mathbf{I}}\) with
\(x_I \in D(I)\) for each \(I\). A cone on \(D\) with vertex a one-element set picks out one such
family, subject to the compatibility forced by the edges of \(D\). Carrying that compatibility into
the product, define
\[
L = \big\{ (x_I)_{I \in \mathbf{I}} \in \textstyle\prod_{I \in \mathbf{I}} D(I) \bigm|
(Du)(x_I) = x_J \text{ for every map } u : I \to J \text{ in } \mathbf{I} \big\} ,
\]
with projections \(p_J : L \to D(J)\), \(p_J\big((x_I)_{I \in \mathbf{I}}\big) = x_J\).
The family \((p_J)\) is a cone on \(D\). For a map \(u : I \to J\) the defining condition
\((Du)(x_I) = x_J\) reads \((Du) \circ p_I = p_J\) on \(L\), which is the cone condition. This cone is
in fact the limit cone.
Given any cone \(\big(A \xrightarrow{f_I} D(I)\big)\), the compatibility \((Du) \circ f_I = f_J\) says
that for each \(a \in A\) the family \((f_I(a))_{I \in \mathbf{I}}\) satisfies the membership
condition for \(L\). Hence \(\bar{f}(a) = (f_I(a))_{I \in \mathbf{I}}\) defines a map
\(\bar{f} : A \to L\) with \(p_I \circ \bar{f} = f_I\) for all \(I\). No other map has this property,
since the value of such a map at each \(a\) is forced coordinatewise by the equations
\(p_I(\bar{f}(a)) = f_I(a)\). Therefore \(L\) is the limit of \(D\). Since \(D\) was arbitrary,
\(\mathbf{Set}\) has all limits.
A limit is a subobject of a product cut out by equations
The set \(L\) sits inside the product \(\prod_{I} D(I)\) as the families satisfying one equation
\((Du)(x_I) = x_J\) for each edge \(u\) of the diagram. A solution set of simultaneous equations
inside a product is exactly what an
equalizer
of two maps into a product produces, as recorded when equalizers were combined with products to
capture systems of equations. The limit in \(\mathbf{Set}\) is therefore an equalizer of a pair of
maps between two products. Unlike the explicit set \(L\), this description uses only the universal
properties of products and equalizers, and so makes sense in any category.
Limits from products and equalizers
The set-level description points to a construction valid in general, one that assembles every limit
from products and equalizers. A shape with finitely many objects and maps is called
finite, and a limit indexed by a finite shape is a finite limit.
Proposition: Limits from Products and Equalizers
Let \(\mathscr{A}\) be a category.
(a) If \(\mathscr{A}\) has all
products
and all
equalizers,
then \(\mathscr{A}\) has all limits.
(b) If \(\mathscr{A}\) has binary products, a
terminal object,
and all equalizers, then \(\mathscr{A}\) has all finite limits.
Proof
(a) Let \(D : \mathbf{I} \to \mathscr{A}\) be a diagram. Form two products: one
over the objects of \(\mathbf{I}\), and one over its maps,
\[
\begin{align*}
P &= \prod_{I \in \mathbf{I}} D(I) , \\\\
Q &= \prod_{(u : J \to K)\, \in\, \mathbf{I}} D(K) ,
\end{align*}
\]
the second indexed by the maps of \(\mathbf{I}\), with the factor of \(Q\) at a map
\(u : J \to K\) being the codomain object \(D(K)\). Both exist by hypothesis, since \(\mathbf{I}\)
is small. Write \(\pi_I : P \to D(I)\) for the projections of \(P\). Define two maps
\(s, t : P \to Q\) by specifying their components at each map \(u : J \to K\) of \(\mathbf{I}\).
The \(u\)-component of \(s\) is \(Du \circ \pi_J\), and the \(u\)-component of \(t\) is \(\pi_K\).
These determine \(s\) and \(t\) by the universal property of \(Q\).
Now form the equalizer \(e : L \to P\) of \(s\) and \(t\), which exists by hypothesis. A map
\(g : A \to P\) is a family of maps \(\big(\pi_I \circ g : A \to D(I)\big)_{I \in \mathbf{I}}\).
The equation \(s \circ g = t \circ g\) holds exactly when, for every map \(u : J \to K\) of
\(\mathbf{I}\), the \(u\)-components agree, namely \(Du \circ \pi_J \circ g = \pi_K \circ g\).
This is precisely the condition that the family \((\pi_I \circ g)\) be a cone on \(D\). By the
universal property of the equalizer, maps \(A \to L\) correspond to maps \(g : A \to P\) with
\(s \circ g = t \circ g\), hence to cones on \(D\) with vertex \(A\).
Set \(p_I = \pi_I \circ e : L \to D(I)\). Taking \(A = L\) and \(g = e\) in the previous paragraph
shows that the family \((p_I)\) is a cone on \(D\). For any cone
\(\big(A \xrightarrow{f_I} D(I)\big)\), the components \(f_I\) determine a map \(g_f : A \to P\)
with \(\pi_I \circ g_f = f_I\), and the cone condition makes \(g_f\) equalize \(s\) and \(t\).
Hence \(g_f\) factors as \(e \circ \bar{f}\) for a unique \(\bar{f} : A \to L\), the uniqueness
being the universal property of the equalizer. This \(\bar{f}\) satisfies
\[
\begin{align*}
p_I \circ \bar{f}
&= \pi_I \circ e \circ \bar{f} \\\\
&= \pi_I \circ g_f \\\\
&= f_I
\end{align*}
\]
for all \(I\).
Any map \(h : A \to L\) with \(p_I \circ h = f_I\) for all \(I\) gives
\(\pi_I \circ (e \circ h) = f_I = \pi_I \circ g_f\). Then \(e \circ h = g_f\) by the uniqueness
clause in the universal property of \(P\), and \(h = \bar{f}\) because the factorization of
\(g_f\) through \(e\) is unique. Thus \((L, (p_I))\) is a limit of \(D\), and \(\mathscr{A}\)
has all limits.
(b) When \(\mathbf{I}\) is a finite category, the two products \(P\) and \(Q\)
are finite, indexed by the finitely many objects and maps of \(\mathbf{I}\). A finite product is
built from binary products and a terminal object. The latter serves as the empty product, and
iterated binary products give products of any finite arity, since the universal property of
\((X \times Y) \times Z\) unwinds to that of a product of \(X\), \(Y\), and \(Z\), and induction
handles longer families. The construction of part (a) then goes through using only binary
products, the terminal object, and equalizers, and produces the limit of every finite diagram.
Hence \(\mathscr{A}\) has all finite limits.
Part (b) also explains why binary products, terminal objects, equalizers, and pullbacks recur as the
standard examples. They are the finite limits one meets first.
Limits across categories
With the construction in place, limits in the familiar categories are read off in turn.
Example: algebraic categories and \(\mathbf{Top}\)
In categories of algebraic structures, such as \(\mathbf{Grp}\), \(\mathbf{Ring}\), and
\(\mathbf{Vect}_k\), the limit of a diagram is the set \(L\) constructed in \(\mathbf{Set}\), and
it carries the structure defined coordinatewise. For vector spaces, the sum of two families
\((x_I)_{I \in \mathbf{I}}\) and \((y_I)_{I \in \mathbf{I}}\) in \(\lim D\) is computed
coordinatewise as \((x_I)_{I \in \mathbf{I}} + (y_I)_{I \in \mathbf{I}} = (x_I + y_I)_{I \in \mathbf{I}}\).
This sum stays in the limit, since each \(Du\) is linear and so preserves the membership
condition, and scalar multiples are handled the same way.
In \(\mathbf{Top}\) the same set \(L\) carries the topology making the projections continuous as
economically as possible. It is the
subspace topology
inherited from the product, where the product carries the
product topology,
the coarsest topology making its projections continuous. In each case the underlying-set
construction is the limit, with the extra structure determined by requiring the projections to be
maps of the appropriate kind. That this recipe always works is the statement that the forgetful
functor to \(\mathbf{Set}\) creates limits, which is taken up in
the study of creation of limits.
Example: compact Hausdorff spaces
Let \(\mathbf{CptHff}\) be the category of compact Hausdorff spaces and continuous maps.
Equalizers exist there. For continuous \(s, t : X \to Y\) with \(Y\) Hausdorff, the subset
\(E = \{x \in X \mid s(x) = t(x)\}\) is closed in \(X\). If \(s(x) \neq t(x)\), then disjoint open
sets \(U \ni s(x)\) and \(V \ni t(x)\) give the open neighborhood \(s^{-1}(U) \cap t^{-1}(V)\) of
\(x\), which misses \(E\). Being closed in the compact space \(X\), the set \(E\) is compact,
since any open cover of \(E\) becomes an open cover of \(X\) once \(X \setminus E\) is added, and
it is Hausdorff as a subspace. With its inclusion into \(X\) it is the equalizer. Products exist
there as well. A product of compact spaces is compact by
Tychonoff's theorem,
and a product of Hausdorff spaces is Hausdorff, since two points that differ in some coordinate
are separated by the preimages, under the projection to that coordinate, of disjoint open sets.
Hence an arbitrary product of compact Hausdorff spaces is again one. Having all products and all
equalizers, \(\mathbf{CptHff}\) has all limits by the proposition. Here the set-level
construction alone does not settle existence, since the compactness of an infinite product rests
on Tychonoff's theorem. Once that is granted, the existence of all limits follows from products
and equalizers alone.
Example: finite limits from direct sums and kernels
In \(\mathbf{Vect}_k\) the
equalizer
of a parallel pair is the kernel of their difference, and the binary product is the direct sum
\(X \oplus Y\), with the zero space \(\{0\}\) as terminal object. By part (b) of the proposition,
every finite limit in \(\mathbf{Vect}_k\) is expressible through direct sums, the zero space, and
kernels. The same holds in the category of abelian groups, where finite limits are built from
finite direct sums, the trivial group, and kernels.
The categories \(\mathbf{Set}\), \(\mathbf{Top}\), \(\mathbf{Grp}\), \(\mathbf{Ring}\),
\(\mathbf{Vect}_k\), and \(\mathbf{CptHff}\) thus each have all limits.