This entry is about the notion of “limit” in category theory. For the notion of the same name in analysis and topology see at limit of a sequence.


Category theory

Limits and colimits



In category theory a limit of a diagram F:DCF : D \to C in a category CC is an object limFlim F of CC equipped with morphisms to the objects F(d)F(d) for all dDd \in D, such that everything in sight commutes. Moreover, the limit limFlim F is the universal object with this property, i.e. the “most optimized solution” to the problem of finding such an object.

The limit construction has a wealth of applications throughout category theory and mathematics in general. In practice, it is possibly best thought of in the context of representable functors as a classifying space for maps into a diagram. So in some sense the limit object limFlim F “subsumes” the entire diagram F(D)F(D) into a single object, as far as morphisms into it are concerned. The corresponding universal object for morphisms out of the diagram is the colimit.

An intuitive general idea is that a limit of a diagram is the locus or solution set of a bunch of equations, where each of the coordinates is parametrized by one of the objects of the diagram, and where the equations are prescribed by the morphisms of the diagram. This idea is explained more formally here.

Often, the general theory of limits (but not colimits!) works better if the source of FF is taken to be the opposite category D opD^op (or equivalently, if FF is taken to be a contravariant functor). This is what we do below. In any given situation, of course, you use whatever categories and functors you're interested in.

In some cases the category-theoretic notion of limit does reproduce notions of limit as known from analysis. See the examples below.

Global versus local

In correspondence to the local definition of adjoint functors (as discussed there), there is a local definition of limits (in terms of cones), that defines a limit (if it exists) for each individual diagram, and there is a global definition, which defines the limit for all diagrams (in terms of an adjoint).

If all limits over the given shape of diagrams exist in a category, then both definitions are equivalent.

See also the analogous discussion at homotopy limit.

Terminology and notation

A limit is taken over a functor F:D opCF : D^{op} \to C and since the functor comes equipped with the information about what its domain is, one can just write limF\lim F for its limit. But often it is helpful to indicate how the functor is evaluated on objects, in which case the limit is written lim dDF(d)\lim_{d \in D} F(d); this is used particularly when FF is given by a formula (as with other notation with bound variables.)

In some schools of mathematics, limits are called projective limits, while colimits are called inductive limits. Also seen are (respectively) inverse limits and direct limits. Both these systems of terminology are alternatives to using ‘co-’ when distinguishing limits and colimits. The first system also appears in pro-object and ind-object.

Correspondingly, the symbols lim\underset{\leftarrow}lim and lim\underset{\rightarrow}\lim are used instead of lim\lim and colim\colim.

Confusingly, many authors restrict the meanings of these alternative terms to (co)limits whose sources are directed sets; see directed limit. In fact, this is the original meaning; projective and inductive limits in this sense were studied in algebra before the general category-theoretic notion of (co)limit.


Local definition in terms of representable functors

There is a general abstract definition of limits in terms of representable functors, which we describe now. This reproduces the more concrete and maybe more familiar description in terms of universal cones, which is described further below.

Let in the following DD be a small category and Set the category of sets (possibly realized as the category USetU Set of UU-small sets with respect to a given Grothendieck universe.)

Limit of a Set-valued functor

The limit of a Set-valued functor F:D opSetF : D^{op} \to Set is the hom-set

limF:=Hom [D op,Set](pt,F)Set lim F := Hom_{[D^{op}, Set]}(pt, F) \in Set

in the functor category [D op,Set][D^{op}, Set] (the presheaf category), where

pt:D opSet pt : D^{op} \to Set
pt:d{*} pt : d \mapsto \{*\}

is the functor constant on the point, i.e. the terminal diagram.

The set limFlim F is equivalently called

The set limFlim F can be equivalently expressed as an equalizer of a product, explicitly:

limF{(x d) dD dDF(d)|(d iαd j)D:F(α)(x d j)=x d i} lim F \simeq \left\lbrace (x_d)_{d \in D} \in \prod_{d \in D} F(d) | \forall (d_i \stackrel{\alpha}{\to} d_j) \in D : F(\alpha)(x_{d_j}) = x_{d_i} \right\rbrace

In particular, the limit of a set-valued functor always exists.

Notice the important triviality that the covariant hom-functor commutes with set-valued limits: for every set SS we have a bijection of sets

Hom Set(S,limF)limHom Set(S,F()), Hom_{Set}(S, lim F) \simeq \lim Hom_{Set}(S, F(-)) \,,

where Hom(S,F()):D opSetHom(S, F(-)) : D^{op} \to Set.

Limit of a functor with values in an arbitrary category

The above formula generalizes straightforwardly to a notion of limit for functors F:D opCF : D^{op} \to C for CC an arbitrary category if we construct a certain presheaf on CC which we will call lim^F\hat \lim F. The actual limit limFlim F is then, if it exists, the object of CC representing this presheaf.

More precisely, using the the Yoneda embedding Y:C[C op,Set]Y : C \to [C^{op}, Set] define for F:D opCF : D^{op} \to C the presheaf lim^F[C op,Set]\hat \lim F \in [C^{op}, Set] by the analog of the above formula

(lim^F)(c)Hom [C op,Set](Y(c),lim^F):=limHom C(c,F()) (\hat \lim F)(c) \simeq Hom_{[C^{op}, Set]}(Y(c), \hat \lim F) := \lim Hom_C(c, F(-))

for all cCc \in C.

Here the lim\lim on the right is again that of Set-valued functors defined before.

By the above this can also be written as

(lim^F)(c)=Hom [D op,Set](pt,Hom C(c,F()) (\hat \lim F)(c) = Hom_{[D^{op}, Set]}(pt , Hom_C(c,F(-))

or, suppressing the subscripts for readability:

(lim^F)(c)=Hom(pt,Hom(c,F()). (\hat lim F)(c) = Hom(pt , Hom(c,F(-)) \,.

So also the presheaf-valued limit always exists. Iff this presheaf is representable by an object limF\lim F of FF, then this is the limit of FF:

Hom(c,limF)Hom(pt,Hom(c,F())). Hom(c, \lim F) \simeq Hom(pt, Hom(c,F(-))) \,.

Generalization to weighted limits

In the above formulation, there is an evident generalization to weighted limits:

replace in the above the constant terminal functor pt:D opSetpt : D^{op} \to Set with any functor W:D opSetW : D^{op} \to Set – then called the weight –, then the WW-weighted limit of FF

lim WF \lim_W F

often written

{W,F} \{W,F\}

is, if it exists, the object representing the presheaf

cHom [D op,Set](W,Hom C(c,F())), c \mapsto Hom_{[D^{op}, Set]}(W , Hom_C(c,F(-))) \,,

i.e. such that

Hom(c,lim WF)Hom(W,Hom(c,F())) Hom(c, \lim_W F) \simeq Hom(W, Hom(c,F(-))) \,

naturally in cCc \in C.

Relation to continuous functors

The very definition of limit as above asserts that the covariant hom-functor Hom(c,):CSetHom(c,-) : C \to Set commutes with forming limits. Indeed, the definition is equivalent to saying that the hom-functor is a continuous functor.

Definition in terms of universal cones

Unwrapping the above abstract definition of limits yields the following more hands-on description in terms of universal cones.


Let F:D opCF : D^{op} \to C be a functor.

Notice that for every object cCc \in C an element

*Hom(pt,Hom(c,F())) * \to Hom(pt, Hom(c, F(-)))

is to be identified with a collection of morphisms

cF(d) c \to F(d)

for all dDd \in D, such that all triangles

c F(d i) F(f) F(d j) \array{ && c \\ & \swarrow && \searrow \\ F(d_i) && \stackrel{F(f)}{\to} && F(d_j) }

commute. Such a collection of morphisms is called a cone over FF, for the obvious reason.

If the limit limFC\lim F \in C of FF exist, then it singles out a special cone given by the composite morphism

**Id limFHom C(limF,limF)Hom(pt,Hom(limF,F())), * \stackrel{* \mapsto Id_{\lim F}}{\to} Hom_C(\lim F, \lim F) \stackrel{\simeq}{\to} Hom(pt, Hom(\lim F, F(-))) \,,

where the first morphism picks the identity morphism on limF\lim F and the second one is the defining bijection of a limit as above.

The cone

limF F(d i) F(f) F(d j) \array{ && \lim F \\ & \swarrow && \searrow \\ F(d_i) && \stackrel{F(f)}{\to} && F(d_j) }

is called the universal cone over FF, because, again by the defining property of limit as above, every other cone {cF(d)} dD\{c \to F(d)\}_{d \in D} as above is bijectively related to a morphism climFc \to \lim F

*{cF(d)} dDHom(pt,Hom(c,F()))Hom(c,limF). * \stackrel{\{c \to F(d)\}_{d \in D}}{\to} Hom(pt, Hom(c, F(-))) \stackrel{\simeq}{\to} Hom(c, \lim F) \,.

By inspection one finds that, indeed, the morphism climFc \to \lim F is the morphism which exhibits the factorization of the cone {cF(d)} dD\{c \to F(d)\}_{d \in D} through the universal limit cone

c F(d i) F(f) F(d j)= c limF F(d i) F(f) F(d j). \array{ && c \\ & \swarrow && \searrow \\ F(d_i) && \stackrel{F(f)}{\to} && F(d_j) } = \array{ && c \\ && \downarrow \\ && \lim F \\ & \swarrow && \searrow \\ F(d_i) && \stackrel{F(f)}{\to} && F(d_j) } \,.

An illustrative example is the following: a limit of the identity functor Id c:CCId_c:C\to C is, if it exists, an initial object of CC.

Global Definition in terms of adjoint of the constant diagram functor

Given categories DD and CC, limits over functors D opCD^{op} \to C may exist for some functors, but not for all. If it does exist for all functors, then the above local definition of limits is equivalent to the following global definition.

For DD a small category and CC any category, the functor category [D op,C][D^{op},C] is the category of DD-diagrams in CC. Pullback along the functor D opptD^{op} \to pt to the terminal category pt={}pt = \{\bullet\} induces a functor

const:C[D op,C] const : C \to [D^{op},C]

which sends every object of CC to the diagram functor constant on this object.

The left adjoint

colim D:[D op,C]C colim_D : [D^{op},C] \to C

of this functor is, if it exists, the functor which sends every diagram to its colimit and the right adjoint is, if it exists, the functor

lim D:[D op,C]C lim_D : [D^{op},C] \to C

which sends every diagram to its limit. The Hom-isomorphisms of these adjunctions state precisely the universal property of limit and colimit given above.

Concretely this means that for all cCc \in C we have a bijection

Hom C(c,limF)Hom [D op,C](const c,F). Hom_C(c, \lim F) \simeq Hom_{[D^{op},C]}(const_c, F) \,.

From this perspective, a limit is a special case of a Kan extension, as described there, namely a Kan extension to the point.


The notion of limit, being fundamental to category theory, generalizes to many other situations. Examples include the following.


The central point about examples of limits is:

Categorical limits are ubiquitous.

To a fair extent, category theory is all about limits and the other universal constructions: Kan extensions, adjoint functors, representable functors, which are all special cases of limits – and limits are special cases of these.

Listing examples of limits in category theory is much like listing examples of integrals in analysis: one can and does fill books with these. (In fact, that analogy has more to it than meets the casual eye: see coend for more).

Keeping that in mind, we do list some special cases and special classes of examples that are useful to know. But any list is necessarily wildly incomplete.


Here are some important examples of limits, classified by the shape of the diagram:

Limits in analysis

The concept of limit of a sequence in topological spaces is a special case of category theoretic limits, see there.


Existence: construction from products and equalizers

Frequently some limits can be computed in terms of other limits. This makes things easier since we only have to assume that categories have, or functors preserve, some easier-to-verify class of limits in order to obtain results about a larger one.

The most common example of this is the computation of limits in terms of products and equalizers. Specifically, if the limit of F:D opCF : D^{op} \to C and the products dObj(D)F(d)\prod_{d\in Obj(D)} F(d) and fMordF(s(f))\prod_{f\in Mor{d}} F(s(f)) all exist, then limFlim F is a subobject of dObj(D)F(d)\prod_{d\in Obj(D)} F(d), namely the equalizer of

dObj(D)F(d) fMor(d)(F(f)p t(f)) fMor(D)F(s(f)) \prod_{d \in Obj(D)} F(d) \stackrel{\prod_{f \in Mor(d)} (F(f) \circ p_{t(f)}) }{\to} \prod_{f \in Mor(D)} F(s(f))


dObj(D)F(d) fMor(d)(p s(f)) fMor(D)F(s(f)). \prod_{d \in Obj(D)} F(d) \stackrel{\prod_{f \in Mor(d)} (p_{s(f)}) }{\to} \prod_{f \in Mor(D)} F(s(f)) \,.

Conversely, if both of these products exist and so does the equalizer of this pair of maps, then that equalizer is a limit of FF. In particular, therefore, a category has all limits as soon as it has all products and equalizers, and a functor defined on such a category preserves all limits as soon as it preserves products and equalizers.

Another example is that all finite limits can be computed in terms of pullbacks and a terminal object.

Interaction with HomHom-functor


(hom-functor preserves limits)

For CC a locally small category, for F:D opCF : D^{op} \to C a functor and writing C(c,F()):D opSetC(c, F(-)) : D^{op} \to Set, we have

C(c,limF)limC(c,F()). C(c, lim F) \simeq lim C(c, F(-)) \,.

Depending on how one introduces limits this holds by definition or is an easy consequence.

In SetSet

Limits in Set are hom-sets

For F:D opSetF : D^{op} \to Set any functor and const *:D opSetconst_{*} : D^{op} \to Set the functor constant on the point, the limit of FF is the hom-set

limF[D op,Set](const *,F) lim F \simeq [D^{op}, Set](const_{*}, F)

in the functor category, i.e. the set of natural transformations from the constant functor into FF.

In functor categories

Proposition – limits in functor categories are computed pointwise

Let DD be a small category and let DD' be any category. Let CC be a category which admits limits of shape DD. Write [D,C][D',C] for the functor category. Then * [D,C][D',C] admits DD-shaped limits; * these limits are computed objectwise (“pointwise”) in CC: for F:D op[D,C]F : D^{op} \to [D',C] a functor we have for all dDd' \in D' that (limF)(d)lim(F()(d))(lim F)(d') \simeq lim (F(-)(d')). Here the limit on the right is in CC.

Compatibility with universal constructions


(right adjoints preserve limits)

Let R:CCR \;\colon\; C \to C' be a functor that is right adjoint to some functor L:CCL : C' \to C. Let DD be a small category such that CC admits limits of shape DD. Then RR commutes with DD-shaped limits in CC in that

for F:D opCF : D^{op} \to C some diagram, we have

R(limF)lim(RF). R(lim F) \simeq lim (R \circ F) \,.

Using the adjunction isomorphism and the above fact that hom-functor preserves limits, one obtains for every cCc' \in C'

C(c,R(limF)) C(L(c),limF) limC(L(c),F) limC(c,RF) C(c,lim(RF)).. \begin{aligned} C'(c', R (lim F)) & \simeq C(L(c'), lim F) \\ & \simeq lim C(L(c'), F) \\ & \simeq lim C'(c', R\circ F) \\ & \simeq C'(c', lim (R \circ F)) \,. \end{aligned} \,.

Since this holds naturally for every cc', the Yoneda lemma, corollary II on uniqueness of representing objects implies that R(limF)lim(GF)R (lim F) \simeq lim (G \circ F).


(limits commute with limits)

Let DD and DD' be small categories and let CC be a category which admits limits of shape DD as well as limits of shape DD'. Then these limits commute with each other, in that for F:D op×D opCF : D^{op} \times {D'}^{op} \to C a functor , with corresponding induced functors F D:D op[D op,C]F_D : {D'}^{op} \to [D^{op},C] and F D:D op[D op,C]F_{D'} : {D}^{op} \to [{D'}^{op},C], then the canonical comparison morphism

(1)limFlim D(lim DF D)lim D(lim DF D) lim F \simeq lim_{D} (lim_{D'} F_D ) \simeq lim_{D'} (lim_{D} F_{D'} )

is an isomorphism.


Since the limit-construction is the right adjoint functor to the constant diagram-functor, this is a special case of right adjoints preserve limits (Prop. 2).

See limits and colimits by example for what formula (1) says for instance for the special case C=C = Set.


(general non-commutativity of limits with colimits)

In general limits do not commute with colimits. But under a number of special conditions of interest they do. Special cases and concrete examples are discussed at commutativity of limits and colimits.

Last revised on June 13, 2018 at 09:28:43. See the history of this page for a list of all contributions to it.