Universal forks and diagram constructions

Written and self-checked by GPT-6.1 Sol (OpenAI), Ultra reasoning effort, October 2026. Original text: CC0.

A product records several choices. An equalizer imposes an agreement between two choices. Together they construct a limit of any small diagram: take one product for the objects, another for the arrows, and impose all the diagram's equations at once. Reversing arrows gives the corresponding assembly by coproducts and a coequalizer. Pullbacks, pushouts and relative powers make these constructions concrete.

Composition is from right to left. Work in a category \(C\) with ambient sets of objects and arrows, possibly larger than a fixed Grothendieck universe \(\mathcal U\). “Small” means \(\mathcal U\)-small up to bijections. Assume ambient choice. The complete subset, quotient, indexed product and transported-label proofs in Universes and small categories, Sections 2–3 and 5 govern all constructions in \(\mathsf{Set}_{\mathcal U}\). A finite category has finitely many objects and arrows.

Retain the full cone, cocone, compatible-isomorphism and formal-object proofs in Compatible families and universal cones, Sections 2–4. The complete comma, slice and coslice category laws are in Zero maps, Section 1. All existence assertions below are conditional unless the ambient category is explicitly \(\mathsf{Set}\).

1. Families and their universal maps

For a set \(I\), regard \(I\) as the discrete category with one identity at each element. A diagram is just a family \((X_i)_{i\in I}\). Its limit is a product \(P=\prod_{i\in I}X_i\), with maps \(p_i:P\to X_i\). Its colimit is a coproduct \(Q=\coprod_{i\in I}X_i\), with maps \(j_i:X_i\to Q\). Precisely, the maps

\[ \begin{gathered} C(T,P)\longrightarrow\prod_i C(T,X_i),\\ h\longmapsto(p_i h)_i,\\ C(Q,T)\longrightarrow\prod_i C(X_i,T),\\ h\longmapsto(hj_i)_i \end{gathered} \tag{1.1} \]

are bijections for every object \(T\). There are no compatibility conditions because the only arrows are identities. Thus the full cone and cocone properties retained above are exactly these bijections. Precomposing \(h\) by \(T'\to T\), or postcomposing by \(T\to T'\), acts on every component the same way; this proves their respective contravariant and covariant naturality in \(T\). A family of maps \(X_i\to X'_i\) induces the unique product map with those projection components and the unique coproduct map with those coprojection components. Identities and compositions follow by checking every component, so (1.1) is natural in the family as well.

For two objects write \(X_0\times X_1\) and \(X_0\amalg X_1\). For a repeated object write \(X^I=\prod_I X\) and \(X^{(I)}=\coprod_I X\). A family of arrows to or from \(X\) is a function on \(I\), giving

\[ \begin{aligned} C(T,X^I)&\simeq\mathsf{Set}(I,C(T,X)),\\ C(X^{(I)},T)&\simeq\mathsf{Set}(I,C(X,T)). \end{aligned} \tag{1.2} \]

The bijections evaluate at the specified projections or coprojections. Their inverse is the unique arrow with the given family.

In sets, \(\prod_i X_i\) consists of tuples with one coordinate in each \(X_i\). A family \(u_i:T\to X_i\) has the unique factor \(t\mapsto(u_i(t))_i\). The coproduct consists of tagged elements \((i,x)\), \(x\in X_i\); maps \(v_i:X_i\to T\) have the unique factor \((i,x)\mapsto v_i(x)\). These rules prove both properties, including empty factors and repeated objects. For a small family of small sets, the retained universe proofs make the tuple set and tagged union small.

For \(I=\varnothing\), each right side in (1.1) has one empty family. Hence the empty product is terminal and the empty coproduct is initial. This is the empty-diagram proof of the retained cone lesson applied to a discrete category; its uniqueness concerns the structural maps, even when there are no components.

There is another useful index shape. Suppose \(t\) is terminal in a category \(I\), with unique \(u_i:i\to t\). For \(D:I\to C\), the maps \(D(u_i):D(i)\to D(t)\) form a cocone: \(u_j s=u_i\) for \(s:i\to j\). Every cocone \(v_i:D(i)\to T\) satisfies \(v_i=v_tD(u_i)\). Its unique factor is \(v_t\), since \(u_t=1_t\). Thus \(D(t)\) is its colimit, without a size assumption on \(I\). For \(\beta:I^{\mathrm{op}}\to C\), the maps \(\beta(u_i):\beta(t)\to\beta(i)\) give its limit: a cone \(w_i:T\to\beta(i)\) satisfies \(w_i=\beta(u_i)w_t\), and the unique factor is \(w_t\). The claim about the limit here concerns the projective system \(\beta\).

2. Force two maps to agree

Let \(f,g: A\rightrightarrows B\). An equalizer is a map \(e:E\to A\) with \(fe=ge\) such that

\[ \begin{gathered} C(T,E)\xrightarrow{\ h\mapsto eh\ }\\ \{u:T\to A:fu=gu\}\\ \text{is a bijection for every }T. \end{gathered} \tag{2.1} \]

A coequalizer is \(q:B\to Q\) with \(qf=qg\) such that

\[ \begin{gathered} C(Q,T)\xrightarrow{\ h\mapsto hq\ }\\ \{v:B\to T:vf=vg\}\\ \text{is a bijection for every }T. \end{gathered} \tag{2.2} \]

Both maps are natural in \(T\) by associativity. Some sources call these the kernel and cokernel of the pair \((f,g)\). The definitions make sense in every category; subtraction \(f-g\) is not required.

For the diagram with two parallel arrows, a cone has components \(u:T\to A\) and \(w:T\to B\) with \(w=fu=gu\). Thus \(u\) determines it. A cocone has components \(z:A\to T\) and \(v:B\to T\) with \(z=vf=vg\), so \(v\) determines it. Applying the retained complete cone and cocone theorem gives (2.1) and (2.2), in both directions. The unique isomorphism between two equalizers must commute with their maps into \(A\); between two coequalizers it must commute with their maps out of \(B\).

The full cancellation proof in Coimages, images and composition of quotients, Section 1 proves that every equalizer map is monic and every coequalizer map is epic. Its interface is precisely the parallel-pair universal properties just stated. No balanced-category or additive hypothesis enters that proof.

An equalizer fork \(E\to A\rightrightarrows B\), or coequalizer fork \(A\rightrightarrows B\to Q\), is exact here when its specified first or last arrow has the relevant universal property. An abstract isomorphism between its endpoint object and some universal endpoint does not suffice. For example, coequalizing \(1_B,1_B\) permits every map out of \(B\), so \(1_B:B\to B\) is a coequalizer. If \(B\) and \(Q\) are two-element sets, a constant \(q:B\to Q\) is not a coequalizer: \(1_B\) cannot factor through it, although \(Q\simeq B\).

In sets the equalizer is the subset \(\{a\in A:f(a)=g(a)\}\). Every equalizing function lands there, and its unique factor has the same elementwise values. For the coequalizer, take the smallest equivalence relation on \(B\) containing every pair \((f(a),g(a))\), and let \(q\) send an element to its class. Such a relation exists as the intersection of all equivalence relations containing those pairs; that family contains the indiscrete relation. If \(vf=vg\), the equality relation on the values of \(v\) contains the generators, hence contains this smallest relation. Consequently \([b]\mapsto v(b)\) is well-defined and is the unique factor because every class has a representative. These are small sets whenever \(A,B\) are small.

3. Detect arrows through universal forks

A functor is conservative if it reflects isomorphisms and faithful if each map on a Hom set is injective. To preserve an equalizer or coequalizer is to send its specified fork to a universal fork.

Proposition 3.1. Let \(F:C\to C'\). If \(C\) has equalizers and \(F\) preserves them, or if \(C\) has coequalizers and \(F\) preserves them, then a conservative \(F\) is faithful.

Proof. Suppose \(F(f)=F(g)\) for \(f,g: A\rightrightarrows B\). In the equalizer case choose \(e:E\to A\). The preserved \(F(e)\) equalizes an equal pair. Their identity map also equalizes them, so universality gives \(r:F(A)\to F(E)\) with \(F(e)r=1\). Both \(rF(e)\) and \(1_{F(E)}\) have the same composite with \(F(e)\); equalizer uniqueness gives \(rF(e)=1\). Thus \(F(e)\) is invertible. Conservativity makes \(e\) invertible, and \(fe=ge\) gives \(f=g\).

In the coequalizer case choose \(q:B\to Q\). Universality of \(F(q)\) for an equal pair gives \(r:F(Q)\to F(B)\) with \(rF(q)=1\). Coequalizer uniqueness gives \(F(q)r=1\). Conservativity makes \(q\) invertible, so \(qf=qg\) again gives \(f=g\). This proves both alternatives. \(\square\)

Proposition 3.2. If \(C\) is balanced, a faithful \(F:C\to C'\) is conservative.

Proof. An isomorphism is monic and epic by cancellation with its inverse. The complete faithful-reflection proof in Relations and cancellation, Section 3 says: if \(F(a)\) is monic, apply \(F\) to \(au=av\), cancel \(F(a)\), then use faithfulness to get \(u=v\). Reversing this cancellation proves reflection of epic arrows. Thus if \(F(a)\) is invertible, \(a\) is both monic and epic. Balancedness says exactly that such an \(a\) is invertible. \(\square\)

The hypothesis matters. Regard the ordered set \(0<1\) as a category. Every arrow is monic and epic because each Hom set has at most one element. The arrow \(0\to1\) has no inverse. The functor to the terminal category is faithful: every Hom-set map has domain of size at most one. It sends \(0\to1\) to an identity, so it is not conservative.

4. Join a span or match a cospan

For a span \(A\xleftarrow{f}X\xrightarrow{g}B\), a pushout \(S=A\amalg_X B\) has \(j_A:A\to S\), \(j_B:B\to S\) with \(j_Af=j_Bg\). Its property is

\[ \begin{gathered} C(S,T)\simeq\\ \{(u:A\to T,v:B\to T):\\ uf=vg\},\\ h\longmapsto(hj_A,hj_B). \end{gathered} \tag{4.1} \]

A cocone on the span also has a map from \(X\), necessarily the common composite, so the span colimit and this property are equivalent. For a cospan \(A\xrightarrow{f}Y\xleftarrow{g}B\), a pullback \(R=A\times_Y B\) has \(p_A:R\to A\), \(p_B:R\to B\) with \(fp_A=gp_B\), and

\[ \begin{gathered} C(T,R)\simeq\\ \{(u:T\to A,v:T\to B):\\ fu=gv\},\\ h\longmapsto(p_Ah,p_Bh). \end{gathered} \tag{4.2} \]

The common map to \(Y\) supplies the remaining cone component. The maps in (4.1) and (4.2) are natural in \(T\): compose every pair on the appropriate side. These definitions do not assert that every span or cospan has its universal object.

In sets the pullback consists of the pairs \((a,b)\) with \(f(a)=g(b)\). A compatible pair of functions has the unique factor \(t\mapsto(u(t),v(t))\). The pushout is the tagged union \(A\amalg B\) modulo the equivalence relation generated by

\[ (\mathrm A,f(x))\sim(\mathrm B,g(x)) \quad(x\in X). \tag{4.3} \]

The quotient maps give its coprojections. A compatible pair \(u,v\) defines a function on the union that agrees on every generating pair. The coequalizer argument of Section 2 therefore makes it descend uniquely to the quotient. These proofs include empty sets and give small objects for small data.

Proposition 4.1. If \(A\amalg B\) exists, the pushout of \(f,g\) is equivalently the coequalizer of

\[ X \mathrel{\substack{\xrightarrow{\ \iota_A f\ }\\[-2pt] \xrightarrow[\ \iota_B g\ ]{}}} A\amalg B. \tag{4.4} \]

If \(A\times B\) exists, the pullback of \(f:A\to Y\), \(g:B\to Y\) is equivalently the equalizer of

\[ A\times B \mathrel{\substack{\xrightarrow{\ fp_A\ }\\[-2pt] \xrightarrow[\ gp_B\ ]{}}} Y. \tag{4.5} \]

Proof. An arrow \(A\amalg B\to T\) is uniquely a pair \(u,v\). It coequalizes (4.4) precisely when \(uf=vg\). A coequalizer \(q\) thus gives the pushout with coprojections \(q\iota_A,q\iota_B\). Conversely, a pushout gives \(q\) from these coprojections, and its pair-factor property gives the unique factor of every coequalizing arrow through \(q\). An arrow \(T\to A\times B\) is uniquely a pair \(u,v\). It equalizes (4.5) precisely when \(fu=gv\). An equalizer gives the pullback projections, and a pullback gives the equalizer map with exactly these components. Existence and uniqueness in both directions are the same bijections. \(\square\)

For a commuting square with upper-left vertex \(X\), upper-right \(A\), lower-left \(B\) and lower-right \(Y\), there are canonical maps

\[ \begin{aligned} X&\longrightarrow A\times_Y B,\\ A\amalg_X B&\longrightarrow Y. \end{aligned} \tag{4.6} \]

They are specified by the two arrows out of \(X\), or the two into \(Y\). The square is cartesian when the first is invertible and cocartesian when the second is invertible. A universal square has invertible canonical comparison by compatible universal uniqueness. Conversely, an invertible comparison transports the factor property to the specified square, proving these tests. When binary products exist, cartesianity is equivalently that the specified \(X\to A\times B\rightrightarrows Y\) is an equalizer fork by Proposition 4.1. With binary coproducts, cocartesianity is equivalently that \(X\rightrightarrows A\amalg B\to Y\) is a coequalizer fork. All these conditions concern the canonical maps.

5. Families over and under a base

Fix \(Y\). An object of the slice \(C/Y\) is \(a:A\to Y\); a map from \(t:T\to Y\) to \(a\) is \(u:T\to A\) with \(au=t\). For a family \(a_i:A_i\to Y\), its fibre product family is the product of these objects in \(C/Y\). Thus it has \(r:R\to Y\) and maps \(p_i:R\to A_i\) with \(a_i p_i=r\), and

\[ \begin{gathered} (C/Y)(t,r)\simeq \prod_i(C/Y)(t,a_i),\\ h\longmapsto(p_i h)_i. \end{gathered} \tag{5.1} \]

There is a fixed map \(t\) on both sides. The inverse sends any family over \(Y\) to its unique factor over \(Y\). For two indices this property gives the ordinary pullback of \(a_0,a_1\): a compatible pair determines \(t=a_0u_0=a_1u_1\), so (5.1) is precisely (4.2). Conversely, a pullback's common map \(r\) and its pair-factor property give (5.1).

Dually an object of \(Y/C\) is \(b:Y\to B\), and a map to \(t:Y\to T\) is \(v:B\to T\) with \(vb=t\). A family \(b_i:Y\to B_i\) has a fibre coproduct family when its coproduct in \(Y/C\) exists. It has \(s:Y\to S\), coprojections \(j_i:B_i\to S\), \(j_i b_i=s\), and

\[ \begin{gathered} (Y/C)(s,t)\simeq \prod_i(Y/C)(b_i,t),\\ h\longmapsto(hj_i)_i. \end{gathered} \tag{5.2} \]

For two indices this is the pushout property: a compatible pair determines its common arrow from \(Y\). Precomposition in the slice and postcomposition in the coslice prove naturality, component by component.

For no indices the product in the slice is \(1_Y:Y\to Y\). Indeed, from \(t:T\to Y\) to \(1_Y\) the required unique arrow is \(t\). The coproduct of no objects in the coslice is also \(1_Y\): its unique arrow to \(t:Y\to T\) must be \(t\). Consequently both empty relative objects have underlying object \(Y\). Their universal tests are slice or coslice tests, so these are not assertions that \(Y\) is terminal or initial in \(C\).

For sets, the fibre product family can be written as

\[ \begin{gathered} R=\{(y,(x_i)):\\ y\in Y,\ x_i\in A_i,\\ a_i(x_i)=y\text{ for every }i\},\\ r(y,(x_i))=y. \end{gathered} \tag{5.3} \]

This version retains \(y\) even when \(I\) is empty. The unique factor of an over-\(Y\) family is \(t_0\mapsto(t(t_0),(u_i(t_0)))\). The fibre coproduct family is the quotient of \(Y\amalg\coprod_i B_i\) identifying the tagged \(y\) with the tagged \(b_i(y)\) for every \(i,y\). Maps under \(Y\) give compatible functions on these summands, hence descend uniquely; the image of the \(Y\) summand supplies \(s\). This construction likewise keeps \(Y\) for empty \(I\).

Keep the complete slice-colimit computation and pullback comparison in Initial objects, Section 1. It proves that underlying colimits compute slice colimits, including the empty case, and defines stability under base change by the specified comparison. The relative products and coproducts above use the full slice/coslice category laws; they do not replace that existing base-change definition.

6. Diagonal and codiagonal

For \(f:X\to Y\), assume the self-pullback \(R_f=X\times_Y X\) and self-pushout \(S_f=Y\amalg_X Y\) exist. The compatible pair \(1_X,1_X\) gives a unique diagonal \(\delta_f:X\to R_f\). The compatible pair \(1_Y,1_Y\) gives a unique codiagonal \(\sigma_f:S_f\to Y\). Their complete characterizations are

\[ \begin{aligned} p_1\delta_f&=1_X,&p_2\delta_f&=1_X,\\ \sigma_f j_1&=1_Y,&\sigma_f j_2&=1_Y. \end{aligned} \tag{6.1} \]

Now let \(a:X\to X'\), \(b:Y\to Y'\) satisfy \(bf=f'a\). Then \(f'a p_1=bf p_1=bf p_2=f'a p_2\). Pullback universality gives the unique \(R(a,b):R_f\to R_{f'}\) with \(p'_iR(a,b)=a p_i\). On the pushout side \(j'_1b f=j'_1f'a=j'_2f'a=j'_2b f\). Thus there is a unique \(S(a,b):S_f\to S_{f'}\) with \(S(a,b)j_i=j'_i b\).

For the identity square the prescribed components are those of the identity. For successive squares \((a,b)\), \((a',b')\), the composite \(R(a',b')R(a,b)\) has components \(a'a p_i\), precisely those of \(R(a'a,b'b)\); uniqueness identifies them. The composite \(S(a',b')S(a,b)\) has components \(j''_i b'b\) and hence equals \(S(a'a,b'b)\). This proves the full functor laws on any arrow category where these choices exist.

The same component tests give

\[ \begin{aligned} R(a,b)\delta_f&=\delta_{f'}a,\\ \sigma_{f'}S(a,b)&=b\sigma_f. \end{aligned} \tag{6.2} \]

For the first, both projection components are \(a\). For the second, both coprojection components are \(b\). Thus the diagonals and codiagonals are natural with their displayed endpoints.

In sets, \(R_f=\{(x,x'):f(x)=f(x')\}\) and \(\delta_f(x)=(x,x)\). The quotient \(S_f\) has two tagged copies of \(Y\) with the two copies of each \(f(x)\) identified; \(\sigma_f\) sends either copy of \(y\) to \(y\). These rules satisfy (6.1), which proves they are the specified maps. If \(X=\varnothing\), \(R_f=\varnothing\) and \(S_f=Y\amalg Y\); the diagonal is the unique empty map and the codiagonal folds the two copies. If \(f=1_Y\), both universal objects identify compatibly with \(Y\) and both maps are identities.

7. Reindex repeated objects

Suppose the needed finite powers of \(X\) exist. A function \(u:J\to I\) between finite sets induces the unique map

\[ \begin{gathered} X^u:X^I\to X^J,\\ p_j X^u=p_{u(j)}\quad(j\in J). \end{gathered} \tag{7.1} \]

Existence is the product property of \(X^J\). The identity function gives the identity by its components. For \(v:K\to J\), \(p_k X^v X^u=p_{v(k)}X^u=p_{u(v(k))}\). Thus \(X^v X^u=X^{uv}\). Powers define a functor \(\mathsf{FinSet}^{\mathrm{op}}\to C\). Under (1.2), its action on \(C(T,-)\) is precomposition by \(u\) on functions \(I\to C(T,X)\), since evaluating the new family at \(j\) evaluates the old one at \(u(j)\). This description commutes with precomposition by any \(T'\to T\).

For copowers, a function \(u:I\to J\) induces

\[ \begin{gathered} X^{(u)}:X^{(I)}\to X^{(J)},\\ X^{(u)}j_i=j_{u(i)}\quad(i\in I). \end{gathered} \tag{7.2} \]

The coproduct property constructs it. For \(v:J\to K\), both \(X^{(v)}X^{(u)}\) and \(X^{(vu)}\) have component \(j_{v(u(i))}\). The identity has component \(j_i\). Copowers therefore define a functor \(\mathsf{FinSet}\to C\). The map \(C(X^{(J)},T)\to C(X^{(I)},T)\) is precomposition by \(u\) on the functions \(J\to C(X,T)\), and is natural in \(T\).

The empty power is terminal and the empty copower is initial. Formula (7.1) includes the unique map \(X^I\to X^\varnothing\) for the empty function \(\varnothing\to I\); (7.2) includes \(X^{(\varnothing)}\to X^{(J)}\). It asserts no function to the empty set from a nonempty set.

Apply the same proofs in \(C/Y\) to an object \(f:X\to Y\). Its finite relative powers have all their projections over \(Y\), and (7.1) remains over \(Y\) by construction. Under the slice version of (1.2) it is precomposition on functions \(I\to(C/Y)(t,f)\). Apply them in \(Y/C\) to \(g:Y\to X\) for relative copowers: (7.2) is under \(Y\), and the coslice Hom description is likewise precomposition. The empty relative power and copower are both \(1_Y\), as proved in Section 5. The identical component tests prove all identity, composition and test-object naturality laws in these categories too.

8. One product and one equalizer

Let \(D:I\to C\) be a diagram. Write \(I_0\) for its set of objects and \(I_1\) for its set of arrows; for \(s\in I_1\) write \(s:i\to j\). Assume the products below and the equalizer of the displayed maps exist. Set

\[ \begin{gathered} V=\prod_{i\in I_0}D(i),\\ W=\prod_{s:i\to j}D(j),\\ a,b: V\rightrightarrows W,\\ \rho_s a=D(s)p_i,\quad \rho_s b=p_j,\\ e:L\to V,\qquad L=\operatorname{Eq}(a,b). \end{gathered} \tag{8.1} \]

The product property of \(W\) constructs \(a,b\) from these families, with no omitted arrows. Let \(\lambda_i=p_i e\). The equality \(ae=be\), checked at \(\rho_s\), says \(D(s)\lambda_i=\lambda_j\), so \(\lambda\) is a cone.

Given any cone \(u_i:T\to D(i)\), the product property gives a unique \(u:T\to V\) with \(p_i u=u_i\). For each \(s:i\to j\), \(\rho_s au=D(s)u_i=u_j=\rho_s bu\). The product property of \(W\) yields \(au=bu\). Equalizer universality gives the unique \(h:T\to L\) with \(eh=u\), hence \(\lambda_i h=u_i\). If \(h'\) has the same cone components, the product property gives \(eh'=u\), and equalizer uniqueness gives \(h'=h\). This proves that (8.1) is the limit, with its specified cone, and proves the complete universal property including naturality in \(T\).

For empty \(I\), both products are terminal. Their two arrows coincide, and the equalizer of this equal pair is compatibly the terminal object; the resulting empty cone is exactly the empty limit. For identities and composites in a nonempty \(I\), the displayed equations impose every arrow condition; no condition inconsistent with a cone is introduced.

For the projective notation \(\beta:I^{\mathrm{op}}\to C\), keep \(s:i\to j\) an arrow of \(I\). The same proof has the correctly typed form

\[ \begin{gathered} V=\prod_i\beta(i),\qquad W=\prod_{s:i\to j}\beta(i),\\ \rho_s a=p_i,\qquad \rho_s b=\beta(s)p_j. \end{gathered} \tag{8.2} \]

Here \(\beta(s):\beta(j)\to\beta(i)\), so the equalizing equations are precisely the projective cone equations. This is (8.1) for \(I^{\mathrm{op}}\), after identifying its reversed-arrow labels with \(I_1\).

The dual construction can also be checked directly. Suppose the needed coproducts and coequalizer exist. Put

\[ \begin{gathered} V=\coprod_iD(i),\\ U=\coprod_{s:i\to j}D(i),\\ a,b: U\rightrightarrows V,\\ a\kappa_s=j_i,\quad b\kappa_s=j_jD(s),\\ q:V\to Q=\operatorname{Coeq}(a,b). \end{gathered} \tag{8.3} \]

The coproduct property of \(U\) constructs \(a,b\). Set \(\eta_i=qj_i\). Checking \(qa=qb\) at \(\kappa_s\) gives \(\eta_i=\eta_jD(s)\), so \(\eta\) is a cocone. A cocone \(v_i:D(i)\to T\) gives a unique \(v:V\to T\) with \(vj_i=v_i\). Its compatibility gives \(va\kappa_s=vb\kappa_s\) for all \(s\), hence \(va=vb\). There is a unique \(h:Q\to T\) with \(hq=v\), giving \(h\eta_i=v_i\). Any other such \(h'\) satisfies \(h'q=v\) by the coproduct property and equals \(h\) by coequalizer uniqueness. This proves the entire colimit property and its naturality. With no objects or arrows, \(V,U\) are initial and their equal pair has initial coequalizer, so the empty colimit is included.

These proofs also describe the canonical maps for a natural transformation \(\theta:D\to D'\), whenever both constructions exist. The limit map has components \(\theta_i\lambda_i\); naturality of \(\theta\) makes these a cone on \(D'\). The colimit map is induced by the cocone \(\eta'_i\theta_i\). Testing these families proves their identity and composition laws and that the constructions are natural in the diagram.

There is a formal version requiring no such products or coproducts in \(C\). Use the retained formal categories \(C^\wedge=\operatorname{Fun}(C^{\mathrm{op}},\mathsf{Set}_{\mathcal U})\) and \(C^\vee=\operatorname{Fun}(C,\mathsf{Set}_{\mathcal U})^{\mathrm{op}}\), in the size setting of Compatible families, Sections 2 and 4. When values of the Hom embeddings require a larger universe, enlarge as in that lesson before taking these functor categories. For a small \(I\), all products and equalizers in \(C^\wedge\) exist pointwise by its full pointwise-limit proof and the small-set constructions above. Therefore applying (8.2) to \(h_{\beta(i)}=C(-,\beta(i))\) gives the formal limit

\[ \begin{gathered} L^{\mathrm{form}}_\beta= \operatorname{Eq}\bigl(\\ \prod_i h_{\beta(i)} \rightrightarrows\\ \prod_{s:i\to j}h_{\beta(i)} \bigr). \end{gathered} \tag{8.4} \]

Its maps are the natural transformations with the components in (8.2), evaluated at every \(T\). It is the functor of cones \(T\to\beta\), by the complete Set factor proof and pointwise theorem. It is representable precisely when \(\beta\) has a limit in \(C\): the retained universal-family representation theorem identifies a representing element with the universal cone, in both directions.

In \(C^\vee\), coproducts and coequalizers are the opposites of pointwise products and equalizers of covariant functors. They therefore exist for small families. Apply (8.3) to the Hom embedding \(k_X=C(X,-)\), regarded as an object of \(C^\vee\). This gives

\[ \begin{gathered} Q^{\mathrm{form}}_D= \operatorname{Coeq}\bigl(\\ \coprod_{s:i\to j} k_{D(i)} \rightrightarrows\\ \coprod_i k_{D(i)} \bigr)\\ \text{in }C^\vee. \end{gathered} \tag{8.5} \]

The underlying covariant functor evaluates to compatible families \(D(i)\to T\): passing to the opposite turns these displayed coproducts and the coequalizer into the relevant Set products and equalizer. It is representable precisely when \(D\) has a colimit, by the full cocone representation theorem. Formal (8.4) and (8.5) assert existence in their formal categories. They do not supply actual products or coproducts in \(C\); the actual constructions (8.1)–(8.3) retain their stated hypotheses. In particular this argument uses \(k\) and the opposite covariant category for colimits, rather than assuming that the usual presheaf Yoneda embedding preserves coproducts.

9. The existence criteria

Theorem 9.1. A category has all small limits if and only if it has all small products and all equalizers. It has all small colimits if and only if it has all small coproducts and all coequalizers.

Proof. A discrete small set and the finite parallel-pair category are small diagrams, so the forward assertions follow from Sections 1 and 2. Conversely, in a small category \(I\) both \(I_0\) and \(I_1\) are small. Thus the products \(V,W\) in (8.1) exist, and so does their equalizer. The full cone-factor proof there gives the limit for every small \(D\). The coproducts \(U,V\) in (8.3) also have small index sets, and their coequalizer exists under the dual assumptions. Its full cocone-factor proof gives every small colimit. Empty indexing sets are included on both sides. \(\square\)

Theorem 9.2. A category has all finite limits if and only if it has a terminal object, binary products and equalizers. It has all finite colimits if and only if it has an initial object, binary coproducts and coequalizers.

Proof. The empty, two-object discrete and parallel-pair diagrams are finite, giving the necessities. To construct finite products from a terminal object \(1\) and binary products, use \(P_0=1\). After constructing a product \(P_n\) of \(X_1,\ldots,X_n\), let \(P_{n+1}=P_n\times X_{n+1}\), with its old projections composed with the first projection and its last projection the second. A family \(u_i:T\to X_i\) first gives the unique \(T\to P_n\) by induction, then the unique pair map \(T\to P_{n+1}\). Any map with these \(n+1\) components has that first factor by induction and therefore is this pair map. This proves the full product property at each step. A bijective enumeration of any finite index set transports its labels and yields its product; for no labels the argument is terminality.

For a finite diagram, the products of both the object and arrow values in (8.1) are finite products. An equalizer then gives its limit by the proved construction. Dually start with \(Q_0=0\) initial and \(Q_{n+1}=Q_n\amalg X_{n+1}\). A family \(X_i\to T\) gives its unique first factor from \(Q_n\), and then its unique coproduct factor from \(Q_{n+1}\); uniqueness follows by restricting to these two summands. Relabeling gives every finite coproduct. Both coproducts in (8.3) are finite for a finite diagram, so their coequalizer gives the colimit. This proves all sufficiencies, including the empty case. \(\square\)

Only finitely many objects does not guarantee finitely many arrows. The last exercise tests the distinction with a one-object category and infinitely many endomorphisms.

10. Four graded exercises

Exercise 1 — introductory: the endpoint and the map

Let \(B=\{0,1\}\), \(Q=\{u,v\}\), and coequalize the pair \(1_B,1_B\). Determine all coequalizer maps \(B\to Q\). Why does the constant map to \(u\) fail? Next let \(A=\{r,s,t\}\), \(B'=\{a,b,c,d\}\), with

\(x\) \(f(x)\) \(g(x)\)
\(r\) \(a\) \(b\)
\(s\) \(b\) \(c\)
\(t\) \(d\) \(d\)

Compute the equalizer and coequalizer in sets, with their full factors.

Solution. For the equal pair every \(v:B\to T\) is compatible. A coequalizer \(q:B\to Q\) gives an inverse \(r:Q\to B\) by factoring \(1_B\). Then \(rq=1_B\), and uniqueness of factors of \(q\) gives \(qr=1_Q\). Thus \(q\) must be bijective. Conversely, for a bijection \(q\), the unique factor of \(v\) is \(vq^{-1}\). The two bijections from \(B\) to \(Q\) are therefore exactly its coequalizer maps. The constant map sends both elements to \(u\), so any composite through it is constant and cannot equal \(1_B\). This is an obstruction involving the specified map, despite the objects being isomorphic.

For the second pair, the equalizer is \(\{t\}\to A\): only \(t\) has \(f(t)=g(t)\). An equalizing function \(w:T\to A\) lands in \(\{t\}\), and the unique factor is \(w\) with this restricted codomain. This holds for empty \(T\) too. The generating equivalences are \(a\sim b\), \(b\sim c\), and \(d\sim d\). The coequalizer has the two classes \(\{a,b,c\}\), \(\{d\}\). A compatible \(v:B'\to T\) satisfies \(v(a)=v(b)=v(c)\), with \(v(d)\) arbitrary. Its factor sends the first class to this common value and the second to \(v(d)\). These assignments are forced and compose back to \(v\); hence they prove the full universal property.

Exercise 2 — intermediate: a pushout need not be a pullback

Let \(X=\{r,s,t\}\), \(A=\{a_0,a_1,a_2\}\), \(B=\{b_0,b_1\}\), and let \(f:X\to A\), \(g:X\to B\) have the values below. Compute their pushout \(Q\), then \(A\times_Q B\), and the canonical comparison from \(X\). Decide whether the resulting square is cartesian and cocartesian.

\(x\) \(f(x)\) \(g(x)\)
\(r\) \(a_0\) \(b_0\)
\(s\) \(a_1\) \(b_0\)
\(t\) \(a_1\) \(b_1\)

Solution. The pushout relations join \(a_0\) to \(b_0\), \(a_1\) to \(b_0\), and \(a_1\) to \(b_1\). Hence \(Q\) has two classes \(c=\{a_0,a_1,b_0,b_1\}\), \(d=\{a_2\}\), with the tags understood. Its two coprojections send each element to its class. For a compatible pair \(u:A\to T\), \(v:B\to T\), the three equations force \(u(a_0)=u(a_1)=v(b_0)=v(b_1)\). The unique factor \(Q\to T\) sends \(c\) to this common value and \(d\) to \(u(a_2)\). This proves the pushout property rather than just counting classes.

Both elements of \(B\) map to \(c\); the elements \(a_0,a_1\) map to \(c\) and \(a_2\) to \(d\). Thus \(A\times_Q B\) has the four pairs \((a_0,b_0)\), \((a_0,b_1)\), \((a_1,b_0)\), \((a_1,b_1)\). For compatible functions from \(T\) to \(A,B\), the pointwise ordered pair is the unique function into this subset; this proves the pullback property. The canonical map from \(X\) sends \(r,s,t\) respectively to \((a_0,b_0),(a_1,b_0),(a_1,b_1)\). It is injective and misses \((a_0,b_1)\). It is therefore not invertible, so the square is not cartesian. It is cocartesian by the pushout factor just proved. Its canonical pushout comparison to \(Q\) is the identity on these classes.

Exercise 3 — advanced: the empty relative power

Let \(Y=\{\mathrm{red},\mathrm{blue}\}\) and \(f:S\to Y\), where \(S=\{r_0,r_1,b_0\}\), \(f(r_i)=\mathrm{red}\), \(f(b_0)=\mathrm{blue}\). Calculate its relative powers for index sizes \(0,1,2,3\). For \(I=\{0,1\}\), \(J=\{0,1,2\}\) and \(u:J\to I\) with values \(0,1,0\), describe \(S_Y^u:S_Y^I\to S_Y^J\), its image, and its universal meaning.

Solution. The relative \(n\)-th power consists of a colour \(y\) and \(n\) entries in its fibre. The red fibre has \(2^n\) tuples and the blue fibre \(1^n=1\), including \(n=0\). The underlying sizes are consequently \(2,3,5,9\). At \(n=0\) these are the two empty tuples distinguished by their colour, so the object is \(1_Y:Y\to Y\). At \(n=1\), \((f(x),x)\) identifies the relative power with \(S\) over \(Y\).

At \(n=2\), there are four ordered red pairs and the one blue pair. At \(n=3\), there are eight red triples and the one blue triple. Reindexing sends \((y,(x_0,x_1))\) to \((y,(x_0,x_1,x_0))\). Its five image triples are exactly those with first and last entries equal. It is injective, since its first two entries recover the pair; among the red triples it misses the four with different first and last entries. The blue triple lies in its image.

For any \(t:T\to Y\), a pair of maps \(v_0,v_1:T\to S\) over \(Y\) has the unique factor \(z\mapsto(t(z),(v_0(z),v_1(z)))\). Applying the reindexing map gives the unique triple factor with components \(v_0,v_1,v_0\). All entries have colour \(t(z)\), which proves that this map is over \(Y\) and proves its universal characterization. For no components the unique factor is \(t:T\to Y\). Precomposing all \(v_i\) by a map over \(Y\) preserves these formulas; this verifies the test-object naturality, including the empty case.

Exercise 4 — challenge: one object, infinitely many arrows

Let \(I\) have one object \(*\), endomorphisms \(\mathbb N\), composition addition and identity \(0\). Let \(D(*)=\mathbb N\) and \(D(m)(n)=n+m\). Verify the category and functor laws. Determine the limit and colimit in sets, both directly and through (8.1), (8.3). Explain why the finite-limit criterion cannot use only the number of objects here.

Solution. Associativity and the identity laws are those of addition on \(\mathbb N\). The functions satisfy \(D(0)=1\) and \(D(m+k)(n)=n+k+m=D(m)D(k)(n)\). Thus these are a small category and a functor. It has one object but infinitely many distinct arrows.

A cone from \(T\) is a function \(v:T\to\mathbb N\) with \(D(m)v=v\) for all \(m\). Taking \(m=1\) gives \(v(z)+1=v(z)\), impossible for every element \(z\) of \(T\). Thus a cone exists exactly when \(T\) is empty, and then is unique. The empty set, with its unique map to \(\mathbb N\), is the limit: it admits exactly the same cone factors.

A cocone is a function \(w:\mathbb N\to T\) with \(w(n+m)=w(n)\) for every \(m,n\). Taking \(n=0\) gives \(w(m)=w(0)\), so the compatible functions are precisely the constant functions. The singleton with the unique map from \(\mathbb N\) is the colimit: a function from the singleton chooses the constant value. For \(T=\varnothing\), both sets of maps are empty; the property still holds.

In (8.1), \(V=\mathbb N\) and \(W=\mathbb N^{\mathbb N}\), one coordinate for every arrow. The maps send \(n\) respectively to the sequences \((n+m)_{m\in\mathbb N}\) and \((n)_{m\in\mathbb N}\). Their equalizer is empty by the coordinate \(m=1\). In (8.3), \(U=\coprod_m\mathbb N\), identified with the tagged pairs \((m,n)\), and \(V=\mathbb N\). The two maps send \((m,n)\) to \(n\) and \(n+m\). The generated equivalence relation identifies \(0\) with every \(m\), hence has one class. Its quotient is the singleton and has the constant-function factor property already proved.

The arrow product \(W\) and arrow coproduct \(U\) are infinite families. Having terminal objects, binary products and equalizers provides finite products, but the finite-diagram argument does not supply \(W\) from those assumptions. This index is small, so the small-limit theorem applies in sets, whose small products exist; it is not a finite index merely because it has one object.

11. References and retained proof interfaces

Products, kernels, fiber products and general limits are also treated in Pierre Schapira, An Introduction to Categories and Homological Algebra, lecture notes, version of 1 March 2026, Sections 2.1–2.4.

Retained complete proofs are linked where used: universal cone/cocone representations and pointwise formal constructions; equalizer and coequalizer cancellation; faithful reflection of monic and epic arrows; slice/coslice category laws; the existing slice-colimit and base-change comparison; and the exact universe closures. Each interface uses the proved generality of that provider. Formal-object existence and actual existence in \(C\) have separate hypotheses throughout.

For comparison, the pinned Stacks category source has parallel-pair definitions and the finite-limit criterion, with dependencies on its general product/equalizer construction. The general limit and colimit construction proofs in that source are marked omitted. Their statements were comparison context; the complete factors in Sections 8–9 are proved here. No omitted proof is treated as an imported proof.