---
title: Preservation, Reflection, and Creation of Limits
module: Limits and Colimits
moduleNumber: 4
lessonNumber: 5
order: 405
summary: >
  A functor preserves limits if it sends limit cones to limit cones, reflects
  them if it recognizes them, and creates them if limits downstairs lift
  uniquely upstairs. Representable functors preserve all limits, forgetful
  functors from algebra create them, and limits in functor categories are
  computed pointwise, one evaluation at a time.
topics: [Limits and Colimits]
sources:
  - book: Leinster
    ref: "§5.3 Interactions between functors and limits; §6.2 Lemma 6.2.1, Prop. 6.2.2, Thm. 6.2.5"
  - book: Simmons
    ref: "Ch. 4 §4.2 Functor categories"
  - book: Barr & Wells
    ref: "Ch. 9 — Limits and colimits, supporting material"
draft: false
---

The [lifting recipe](/category-theory/limits-colimits/computing-limits) leaned on
one informal phrase: the forgetful functor "lets you compute the limit
underneath." Made precise, it splits into three inequivalent things a functor $F
: \mathcal{A} \to \mathcal{B}$ can do with limits — preserve them, reflect them,
create them. $\mathbf{Top} \to \mathbf{Set}$ preserves limits without reflecting
them; $\mathbf{Grp} \to \mathbf{Set}$ creates them; and creation is the strongest
of the three, implying the other two in the presence of limits downstairs. Two
structural theorems round out the picture: representable functors preserve all
limits, and limits in a functor category are computed pointwise.

## Preservation and reflection

> **Definition (Preservation).** A functor $F : \mathcal{A} \to
> \mathcal{B}$ **preserves limits of shape $\mathsf{I}$** if for every diagram
> $D : \mathsf{I} \to \mathcal{A}$ and every cone $\bigl(A \xrightarrow{p_I}
> D(I)\bigr)_I$:
> if the cone is a limit cone on $D$, then its image $\bigl(F(A)
> \xrightarrow{F p_I} F D(I)\bigr)_I$ is a limit cone on $F \circ D$.
> $F$ **preserves limits** if this holds for every small shape.
>
> **Definition (Reflection).** $F$ **reflects limits of shape $\mathsf{I}$** if
> the converse implication holds: whenever the image of a cone is a limit cone
> on $F \circ D$, the original cone is a limit cone on $D$.[^lein-def]

Preservation restates as a canonical isomorphism. If $D$ has a limit and $F$
preserves it, then $F \circ D$ has a limit and the canonical comparison map is
invertible:

$$
F\bigl(\lim_{\mathsf{I}} D\bigr) \;\cong\; \lim_{\mathsf{I}} (F \circ D),
$$

where the comparison map is the mediating arrow induced by the cone
$\bigl(F(p_I)\bigr)_I$. Preservation demands more than an abstract isomorphism
of vertices (it demands that this particular map be one), but in practice the
distinction is usually suppressed.

$$
% caption: Preservation: F carries the limit cone on D (left) to a cone on FD
% that is again a limit cone (right).
\begin{tikzpicture}[scale=1.0, >=stealth, font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
% left: cone in A
\node (L) at (0,1.7) {$L$};
\node (X) at (-1.1,0) {$D(I)$};
\node (Y) at (1.1,0) {$D(J)$};
\draw[->, acc, thick] (L) -- (X);
\draw[->, acc, thick] (L) -- (Y);
\draw[->, black] (X) -- (Y);
\node[black, anchor=north] at (0,-0.5) {limit in $\mathcal{A}$};
% functor arrow
\draw[->, thick] (2.3,0.85) -- (3.7,0.85) node[midway, above] {$F$};
% right: image cone in B
\begin{scope}[xshift=5.9cm]
\node (FL) at (0,1.7) {$F(L)$};
\node (FX) at (-1.3,0) {$FD(I)$};
\node (FY) at (1.3,0) {$FD(J)$};
\draw[->, acc, thick] (FL) -- (FX);
\draw[->, acc, thick] (FL) -- (FY);
\draw[->, black] (FX) -- (FY);
\node[black, anchor=north] at (0,-0.5) {still a limit in $\mathcal{B}$};
\end{scope}
\end{tikzpicture}
$$

A functor preserving all small limits is called **continuous** (and
**cocontinuous** for colimits); the terminology deliberately echoes analysis,
where continuous maps preserve limits of sequences.

The two properties are independent, and the standard counterexample separates
them. The forgetful functor $U : \mathbf{Top} \to \mathbf{Set}$ preserves both
limits and colimits, but it does not reflect them: take non-discrete spaces $X,
Y$ and equip the set $U(X) \times U(Y)$ with the _discrete_ topology $Z$. The
cone $X \leftarrow Z \to Y$ maps down to a genuine product cone in
$\mathbf{Set}$, but it is not a product cone in $\mathbf{Top}$, because the
discrete topology is strictly larger than the product topology. The underlying
sets do not distinguish the two; the topologies do.[^lein-top]

Colimits break the symmetry for algebra. The forgetful functor $\mathbf{Grp}
\to \mathbf{Set}$ does not preserve initial objects (the trivial group has one
element; the initial set has none), and $\mathbf{Vect}_k \to \mathbf{Set}$ does
not preserve binary coproducts (the direct sum is not a disjoint union).
Forgetful functors out of algebraic categories almost never preserve all
colimits. The deeper reason is that they have _left_ adjoints, and adjoints
preserve limits only from their own side, completed in
[right adjoints preserve limits](/category-theory/adjoints-limits/adjoints-preserve-limits).[^lein-alg]

## Creation

The two-step recipe for limits in $\mathbf{Grp}$ (compute the limit of
underlying sets, then find that exactly one group structure makes the
projections homomorphisms) is a stronger phenomenon than preservation, and it
has its own name.

> **Definition (Creation).** A functor $F : \mathcal{A} \to
> \mathcal{B}$ **creates limits of shape $\mathsf{I}$** if for every diagram
> $D : \mathsf{I} \to \mathcal{A}$:
>
> - for every limit cone $\bigl(B \xrightarrow{q_I} F D(I)\bigr)_I$ on $F \circ
>   D$, there is a _unique_ cone $\bigl(A \xrightarrow{p_I} D(I)\bigr)_I$ on
>   $D$ with $F(A) = B$ and $F(p_I) = q_I$;
> - this unique lifted cone is itself a limit cone on $D$.[^lein-create]

$$
% caption: Creation of limits: a limit cone downstairs in B lifts along F to a
% unique cone upstairs, and the lift is again a limit cone.
\begin{tikzpicture}[scale=1.0, >=stealth, font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
% upstairs
\draw[black, dashed] (-2.9,2.2) rectangle (2.9,4.4);
\node[black, anchor=west] at (-2.8,4.15) {$\mathcal{A}$};
\node[acc] (A) at (0,3.9) {$A$};
\node (DI) at (-1.6,2.7) {$D(I)$};
\node (DJ) at (1.6,2.7) {$D(J)$};
\draw[->, acc, thick, dashed] (A) -- (DI);
\draw[->, acc, thick, dashed] (A) -- (DJ);
\node[acc, font=\scriptsize, anchor=west] at (0.35,3.55) {unique lift};
% downstairs
\draw[black, dashed] (-2.9,-0.9) rectangle (2.9,1.3);
\node[black, anchor=west] at (-2.8,1.05) {$\mathcal{B}$};
\node (B) at (0,0.8) {$B$};
\node (FI) at (-1.6,-0.4) {$FD(I)$};
\node (FJ) at (1.6,-0.4) {$FD(J)$};
\draw[->, acc, thick] (B) -- (FI);
\draw[->, acc, thick] (B) -- (FJ);
% F arrow
\draw[->, thick] (3.5,3.2) -- (3.5,0.2) node[midway, right] {$F$};
\end{tikzpicture}
$$

The definition as stated (Leinster's, following most textbook usage in its
strict form) asks for equality $F(A) = B$ on the nose. Equality of objects is
suspicious in category theory, and the "healthy" version relaxes it: whenever
$F \circ D$ has a limit, some cone on $D$ maps to a limit cone, and every cone
that does is itself a limit cone. All examples here satisfy the strict
version.[^lein-strict]

Creation is the strongest of the three properties in the situations that
matter:

> **Lemma.** Let $F : \mathcal{A} \to \mathcal{B}$ create limits of shape
> $\mathsf{I}$, and suppose $\mathcal{B}$ has limits of shape $\mathsf{I}$.
> Then $\mathcal{A}$ has limits of shape $\mathsf{I}$, and $F$ preserves
> them.[^lein-lemma]

To prove it, take the limit cone of $F \circ D$ downstairs, lift it uniquely
upstairs, and observe the lift is a limit by the second clause — the lifting
recipe again. Creation also implies reflection. Since $\mathbf{Set}$ is
complete and the forgetful functors from $\mathbf{Grp}$, $\mathbf{Ring}$,
$\mathbf{Vect}_k$, $\mathbf{Pos}$, $\mathbf{Mon}$ create limits, all these
categories are complete and their forgetful functors preserve limits: one
lemma, five completeness theorems. The uniqueness half is checked exactly as in
the [worked $\mathbf{Grp}$ computation](/category-theory/limits-colimits/computing-limits):
if $p_1, p_2$ must be homomorphisms, the group law on the product set is forced
componentwise.

The three properties, side by side:

| Property | Says | $\mathbf{Top} \to \mathbf{Set}$ | $\mathbf{Grp} \to \mathbf{Set}$ |
| --- | --- | --- | --- |
| preserves | limit cones map to limit cones | yes | yes |
| reflects | only limit cones map to limit cones | no | yes |
| creates | limit cones downstairs lift uniquely | no | yes |

$\mathbf{Top} \to \mathbf{Set}$ fails creation for the same reason it fails
reflection: many topologies on the thread set make the projections continuous,
so the lift exists but is not unique. Only the projection-generated topology is
universal.

## Representables preserve limits

The [hom-functor](/category-theory/representables-yoneda/representable-functors)
$\mathcal{A}(A, -) : \mathcal{A} \to \mathbf{Set}$ turns limits in
$\mathcal{A}$ into limits of sets. Two isomorphisms compose to prove it. First,
for any diagram $D$ with a limit, maps into the limit are cones
([the representable description](/category-theory/limits-colimits/limits)):

$$
\mathcal{A}\bigl(A, \lim D\bigr) \;\cong\; \mathrm{Cone}(A, D).
$$

Second, a direct computation with the thread formula: an element of
$\lim\, \mathcal{A}(A, D)$, the limit in $\mathbf{Set}$ of the diagram of
hom-sets $I \mapsto \mathcal{A}(A, D(I))$, is a family $(f_I)_I$ of arrows
with $D(u) \circ f_I = f_J$ for every edge, which is precisely a cone on $D$
with vertex $A$.[^lein-621] Chaining the two:

> **Theorem (Representables preserve limits).** For any locally small
> $\mathcal{A}$ and any $A \in \mathcal{A}$, the functor $\mathcal{A}(A, -)$
> preserves limits:
> $$
> \mathcal{A}\bigl(A, \lim_{\mathsf{I}} D\bigr) \;\cong\;
> \lim_{\mathsf{I}}\, \mathcal{A}(A, D).
> $$
> [^lein-622]

For products this is the familiar bijection $\mathcal{A}(A, X \times Y) \cong
\mathcal{A}(A, X) \times \mathcal{A}(A, Y)$; for equalizers it says maps into
an equalizer are maps into $X$ equalized by post-composition.

> **Worked example.** In $\mathbf{FinSet}$ take $A = \{1, 2\}$, $X = \{a, b,
> c\}$, $Y = \{d, e\}$. A function $A \to X \times Y$ is a pair of elements of
> the $6$-element set $X \times Y$, so $\lvert \mathbf{FinSet}(A, X \times Y)
> \rvert = 6^2 = 36$. Separately $\lvert \mathbf{FinSet}(A, X) \rvert = 3^2 = 9$
> and $\lvert \mathbf{FinSet}(A, Y) \rvert = 2^2 = 4$, and $9 \cdot 4 = 36$. The
> bijection $\mathbf{FinSet}(A, X \times Y) \cong \mathbf{FinSet}(A, X) \times
> \mathbf{FinSet}(A, Y)$ sends $f$ to $(p_1 \circ f, p_2 \circ f)$: the
> hom-functor $\mathbf{FinSet}(A, -)$ carries the product $X \times Y$ to the
> product of hom-sets.

Dualizing, that
is replacing $\mathcal{A}$ by $\mathcal{A}^{\mathrm{op}}$, the contravariant
representable $\mathcal{A}(-, A)$ carries _colimits_ in $\mathcal{A}$ to
_limits_ in $\mathbf{Set}$:

$$
\mathcal{A}\bigl(\operatorname{colim} D,\, A\bigr) \;\cong\;
\lim\, \mathcal{A}(D, A),
$$

e.g. $\mathcal{A}(X + Y, A) \cong \mathcal{A}(X, A) \times \mathcal{A}(Y, A)$:
a map off a sum is a pair of maps. Both statements output limits: hom-sets
convert every universal construction into a limit in $\mathbf{Set}$, whether the
construction was a limit or a colimit in $\mathcal{A}$.[^lein-dual]
The theorem also works as a negative test: a functor that fails to preserve
some limit cannot be representable, and (ahead of the
[adjunction chapter](/category-theory/adjunctions/adjunctions)) cannot have a
left adjoint.

## Limits in functor categories

Functors $\mathsf{A} \to \mathcal{S}$ form a category $[\mathsf{A},
\mathcal{S}]$ with natural transformations as arrows.[^sim-functorcat] Limits
there are computed **pointwise**, one object of $\mathsf{A}$ at a time.

> **Theorem (Pointwise limits).** Let $\mathsf{A}$ be small and $\mathcal{S}$
> locally small with all limits of shape $\mathsf{I}$. Then $[\mathsf{A},
> \mathcal{S}]$ has all limits of shape $\mathsf{I}$, and for every $A \in
> \mathsf{A}$ the evaluation functor $\mathrm{ev}_A : [\mathsf{A}, \mathcal{S}]
> \to \mathcal{S}$, $X \mapsto X(A)$, preserves them.[^lein-625]

Concretely, for a diagram $D : \mathsf{I} \to [\mathsf{A}, \mathcal{S}]$ of
functors, define a functor $L$ by

$$
L(A) \;=\; \lim_{\mathsf{I}}\, D(-)(A),
$$

the limit in $\mathcal{S}$ of the values at $A$; a map $f : A \to B$ in
$\mathsf{A}$ induces $L(f) : L(A) \to L(B)$ as the mediating arrow between the
two limits, since a natural transformation of diagrams always induces a map of
limits. The projections
assemble into natural transformations $L \to D(I)$, and universality is checked
one $A$ at a time: a cone of natural transformations evaluates at $A$ to a cone
in $\mathcal{S}$, factors uniquely there, and the resulting components are
natural. The product of two functors $X, Y : \mathsf{A} \to \mathcal{S}$ is the
functor $A \mapsto X(A) \times Y(A)$; the equalizer of two natural
transformations is computed equalizer-by-equalizer; and dually for all
colimits.

$$
% caption: A pointwise limit in a functor category: evaluating the whole
% diagram of functors at each object A gives an ordinary limit, and these
% limits assemble into the limit functor L.
\begin{tikzpicture}[scale=1.0, >=stealth, font=\footnotesize]
\definecolor{acc}{HTML}{4A6FA5}
% column at A
\node[acc] (LA) at (0,2.0) {$L(A)$};
\node (XA) at (-1.1,0.4) {$X(A)$};
\node (YA) at (1.1,0.4) {$Y(A)$};
\draw[->, acc, thick] (LA) -- (XA);
\draw[->, acc, thick] (LA) -- (YA);
\node[black, anchor=north] at (0,-0.1) {at $A$};
% column at A'
\begin{scope}[xshift=4.6cm]
\node[acc] (LB) at (0,2.0) {$L(B)$};
\node (XB) at (-1.1,0.4) {$X(B)$};
\node (YB) at (1.1,0.4) {$Y(B)$};
\draw[->, acc, thick] (LB) -- (XB);
\draw[->, acc, thick] (LB) -- (YB);
\node[black, anchor=north] at (0,-0.1) {at $B$};
\end{scope}
% connecting maps induced by an arrow A -> B
\draw[->, black] (LA) -- (LB) node[midway, above] {$L(f)$};
\draw[->, black, bend right=32] (XA) to (XB);
\node[black, font=\scriptsize] at (2.3,-1.5) {components of one arrow $f : A$ to $B$};
\end{tikzpicture}
$$

> **Worked example.** Let $\mathsf{A} = \{0 \to 1\}$ be the arrow category, so a
> functor $\mathsf{A} \to \mathbf{Set}$ is a single function between two sets.
> Take $X$ with $X(0) = \{a, b\}$, $X(1) = \{u\}$, and $Y$ with $Y(0) = \{c\}$,
> $Y(1) = \{v, w\}$. The product $X \times Y$ in $[\mathsf{A}, \mathbf{Set}]$ is
> computed pointwise:
> $$
> (X \times Y)(0) = \{a, b\} \times \{c\}, \qquad (X \times Y)(1) = \{u\} \times
> \{v, w\},
> $$
> each a two-element set, joined by the map that acts coordinatewise. Evaluating
> at $0$ or at $1$ returns an ordinary product of sets, which is the statement
> that $\mathrm{ev}_0$ and $\mathrm{ev}_1$ preserve the limit.

Two hypotheses of the theorem cannot be dropped. The smallness conditions,
$\mathsf{A}$ small and $\mathcal{S}$ locally small, keep $[\mathsf{A},
\mathcal{S}]$ locally small. And completeness matters: if $\mathcal{S}$ lacks
some limits, the functor category can contain "exotic" limits that are not
computed pointwise and are not preserved by the evaluations.[^lein-warn] When
$\mathcal{S} = \mathbf{Set}$, the theorem says presheaf categories
$[\mathsf{A}^{\mathrm{op}}, \mathbf{Set}]$ are complete and cocomplete with
everything computed pointwise, the launching point for
[limits and colimits of presheaves](/category-theory/adjoints-limits/presheaf-limits-colimits).

## The module in one table

| Question | Answer | Where |
| --- | --- | --- |
| What is a limit? | terminal cone on a diagram | [cones and limits](/category-theory/limits-colimits/limits) |
| Which limits generate the rest? | products + equalizers | [equalizers and pullbacks](/category-theory/limits-colimits/products-equalizers-pullbacks) |
| What is a colimit? | initial cocone; quotient of a sum in $\mathbf{Set}$ | [colimits](/category-theory/limits-colimits/colimits) |
| How are limits computed? | threads, plus forced structure | [computing limits](/category-theory/limits-colimits/computing-limits) |
| How do functors treat them? | preserve / reflect / create | above |

The representable description of limits is itself an adjunction: the limit
operation is a
[right adjoint to the diagonal functor](/category-theory/adjoints-limits/limits-via-adjoints),
and hom-functor continuity, pointwise limits, and limit-preserving forgetful
functors are all instances of the theorem that right adjoints preserve limits.

[^lein-def]: **Leinster**, _Basic Category Theory_, §5.3, Definition 5.3.1 — preservation and reflection of limits of a shape, and the canonical-comparison restatement following it.
[^lein-top]: **Leinster**, _Basic Category Theory_, §5.3, Example 5.3.2 — $U : \mathbf{Top} \to \mathbf{Set}$ preserves limits and colimits but does not reflect them; the discrete-topology cone over a product.
[^lein-alg]: **Leinster**, _Basic Category Theory_, §5.3, Example 5.3.3 — forgetful functors on algebras fail to preserve initial objects and sums.
[^lein-create]: **Leinster**, _Basic Category Theory_, §5.3, Example 5.3.4 and Definition 5.3.5 — the forced group structure on a product of underlying sets, and creation of limits.
[^lein-strict]: **Leinster**, _Basic Category Theory_, §5.3, Remark 5.3.7 — strict creation versus the isomorphism-relaxed notion used in most of the literature.
[^lein-lemma]: **Leinster**, _Basic Category Theory_, §5.3, Lemma 5.3.6 — if $\mathcal{B}$ has and $F$ creates limits of a shape, then $\mathcal{A}$ has and $F$ preserves them; Exercise 5.3.10 for creation implying reflection.
[^lein-621]: **Leinster**, _Basic Category Theory_, §6.2, Lemma 6.2.1 — the limit of $\mathcal{A}(A, D)$ in $\mathbf{Set}$ is the set of cones on $D$ with vertex $A$, by the thread formula.
[^lein-622]: **Leinster**, _Basic Category Theory_, §6.2, Proposition 6.2.2 — representables preserve limits, proved by composing Proposition 6.1.1 with Lemma 6.2.1.
[^lein-dual]: **Leinster**, _Basic Category Theory_, §6.2, Remark 6.2.3 — the dual statement $\mathcal{A}(\operatorname{colim} D, A) \cong \lim \mathcal{A}(D, A)$ and the observation that both duals produce limits.
[^sim-functorcat]: **Simmons**, _An Introduction to Category Theory_, §4.2, Definition 4.2.1 — the category $\mathcal{C}^{\nabla}$ of diagrams/functors with natural transformations as arrows, and the diagonal functor of Exercise 4.2.2.
[^lein-625]: **Leinster**, _Basic Category Theory_, §6.2, Theorem 6.2.5 and Corollary 6.2.6 — limits in $[\mathsf{A}, \mathcal{S}]$ exist and are computed and preserved pointwise by the evaluation functors.
[^lein-warn]: **Leinster**, _Basic Category Theory_, §6.2, Warning 6.2.7 — when $\mathcal{S}$ lacks limits of the shape, functor-category limits need not be pointwise.
