Categories, Functors & Natural Transformations

A Pattern Across the Curriculum Categories and Isomorphisms Constructions on Categories Functors Natural Transformations and Equivalence

A Pattern Across the Curriculum

By now we have studied many different kinds of mathematical structure, and in each case a second notion arrived alongside the objects themselves: the maps that respect the structure. Groups came with group homomorphisms, vector spaces with linear maps, topological spaces with continuous maps, Banach spaces with bounded operators, smooth manifolds with smooth maps. In every one of these settings the structure-preserving maps can be composed, composition is associative, and each object carries an identity map that does nothing. The repetition is not a coincidence. It is the signal of a structure one level up — a structure whose objects are themselves whole mathematical theories and whose maps are the translations between them.

That structure is the category. This page develops its three foundational notions — categories, the maps between them (functors), and the maps between those (natural transformations) — together with the constructions and the notion of sameness that accompany them. To keep the three levels vivid before we make them precise, it helps to hold a single running picture in mind.

A Picture: Languages, Translations, and Their Comparison

Think of a natural language — say English — as a collection of concepts together with the entailments between them: "a sparrow" entails "a bird," which entails "an animal." Read each concept as an object and each entailment as an arrow, and the entailments compose ("sparrow" ⤳ "bird" ⤳ "animal" gives "sparrow" ⤳ "animal") with a trivial self-entailment on each concept. That is a category. Japanese, organized the same way, is another. A scheme of translation — literal, or idiomatic — sends each English concept to a Japanese one and each entailment to an entailment, respecting composition: this is a functor. And a systematic comparison between two translation schemes, concept by concept, that is compatible with all the entailments, is a natural transformation. The metaphor will not bear formal weight — we prove nothing from it — but it fixes the three-storey shape of what follows: objects and arrows; maps of the whole; maps between those maps.

Categories and Isomorphisms

A category packages a collection of objects together with the arrows between them and a law for composing those arrows. The definition asks for nothing more than that composition be associative and that each object carry an identity.

Definition: Category

A category \(\mathscr{C}\) consists of:

  • a collection \(\operatorname{ob}(\mathscr{C})\) of objects;
  • for every pair of objects \(A, B\), a collection \(\mathscr{C}(A, B)\) of morphisms (also called maps or arrows) from \(A\) to \(B\); we write \(f : A \to B\) to mean \(f \in \mathscr{C}(A, B)\), and call \(A\) the domain and \(B\) the codomain of \(f\);
  • for every triple of objects \(A, B, C\), a composition operation \[ \circ : \mathscr{C}(B, C) \times \mathscr{C}(A, B) \to \mathscr{C}(A, C), \qquad (g, f) \mapsto g \circ f; \]
  • for every object \(A\), an identity morphism \(1_A \in \mathscr{C}(A, A)\),

subject to two axioms:

  • associativity: for all \(f : A \to B\), \(g : B \to C\), \(h : C \to D\), \[ (h \circ g) \circ f = h \circ (g \circ f); \]
  • identity: for all \(f : A \to B\), \[ f \circ 1_A = f = 1_B \circ f. \]

The definition is almost aggressively spare: an object need not be a set, and a morphism need not be a function. What the axioms legislate is not the internal nature of objects and arrows but the bookkeeping of their composition. Two points of the definition deserve unpacking on a first encounter. First, the order in \(g \circ f\): we write the morphism applied second on the left, matching the order in which functions compose, so that \(g \circ f\) means "do \(f\), then \(g\)." For this to make sense the codomain of \(f\) must equal the domain of \(g\); composition is only defined for arrows that meet end to start. Second, the identity laws say that composing with \(1_A\) changes nothing, exactly as the identity function does in \(\mathbf{Set}\), where objects are sets, morphisms are functions, composition is ordinary function composition, and \(1_A\) is the function \(a \mapsto a\). It is worth checking that \(\mathbf{Set}\) satisfies both axioms — function composition is associative, and composing with the identity function returns the same function — because that is the example every other one is modeled on.

A diagram of objects and arrows is said to commute when any two directed paths sharing the same start and end compose to the same morphism; commutativity of diagrams is the language in which categorical equations are written. Two families of example show why the spareness of the definition is a feature rather than a poverty.

Categories of Structured Objects

The first family is the one the curriculum has been quietly building all along. In each case the objects are sets carrying structure and the morphisms are the maps preserving it; the composition and identities are those of ordinary functions, so the axioms hold for free.

These categories also supply the right notion of sameness, defined purely in terms of arrows.

Definition: Isomorphism

A morphism \(f : A \to B\) in a category \(\mathscr{C}\) is an isomorphism if there exists a morphism \(g : B \to A\) with \(g \circ f = 1_A\) and \(f \circ g = 1_B\). Such a \(g\), when it exists, is unique — if \(g\) and \(g'\) both invert \(f\), then \(g = g \circ 1_B = g \circ (f \circ g') = (g \circ f) \circ g' = 1_A \circ g' = g'\), using only associativity and the identity laws — so we may speak of the inverse of \(f\), written \(f^{-1}\). When an isomorphism from \(A\) to \(B\) exists, \(A\) and \(B\) are isomorphic, written \(A \cong B\).

This arrow-theoretic notion reproduces, in each concrete category, exactly the equivalence that category already used: isomorphisms in \(\mathbf{Set}\) are the bijections, in \(\mathbf{Grp}\) the group isomorphisms, in \(\mathbf{Top}\) the homeomorphisms, in \(\mathbf{Man}\) the diffeomorphisms. Each of these was defined separately, in its own chapter, by its own hands; the categorical definition names the single pattern they were all instances of. The cases are not interchangeable in difficulty — a continuous bijection need not be a homeomorphism, so being an isomorphism in \(\mathbf{Top}\) is strictly stronger than being a bijective continuous map — but they are instances of one definition.

Categories That Are Not Categories Of Anything

The second family makes the point that an object need not be a structured set at all. A preorder — a set \(S\) with a reflexive, transitive relation \(\le\) — is a category: take the elements of \(S\) as objects, and declare that there is exactly one morphism \(a \to b\) precisely when \(a \le b\). Transitivity supplies composition, reflexivity supplies identities, and the two axioms hold automatically because there is never more than one morphism between two objects to compare. Here the objects are mere points and the morphisms carry no data beyond their existence; the category records a relation, not a collection of functions. A category in which every hom-collection \(\mathscr{C}(A,B)\) has at most one element is called thin, and preorders are exactly the thin categories. This is the precise sense in which the entailment-structure of a language in the picture above is a category: it is a thin one.

Constructions on Categories

Before turning to the maps between categories, we record three standard ways of building a new category from old ones. The first also carries a structural lesson that pervades the subject.

Definition: Opposite Category

Let \(\mathscr{C}\) be a category. Its opposite (or dual) category \(\mathscr{C}^{\mathrm{op}}\) has the same objects as \(\mathscr{C}\), and \(\mathscr{C}^{\mathrm{op}}(A, B) = \mathscr{C}(B, A)\): every arrow is reversed. Identities are unchanged, and composition is that of \(\mathscr{C}\) with its arguments reversed — if \(g \circ f\) is defined in \(\mathscr{C}\), the corresponding composite in \(\mathscr{C}^{\mathrm{op}}\) runs the other way. One checks directly that \((\mathscr{C}^{\mathrm{op}})^{\mathrm{op}} = \mathscr{C}\).

The opposite category underwrites the principle of duality: every definition, theorem, and proof in category theory has a dual, obtained by reversing all the arrows. Any statement proved for all categories holds in particular for every \(\mathscr{C}^{\mathrm{op}}\), and reinterpreting it back in \(\mathscr{C}\) yields the dual statement for free. A single proof thus does double duty, and many pairs of notions encountered later — products and coproducts, limits and colimits, the two one-sided notions attached to an adjunction — are precisely dual to one another.

Definition: Product Category

Given categories \(\mathscr{C}\) and \(\mathscr{D}\), their product \(\mathscr{C} \times \mathscr{D}\) has as objects the pairs \((A, B)\) with \(A\) an object of \(\mathscr{C}\) and \(B\) an object of \(\mathscr{D}\), and as morphisms \((A, B) \to (A', B')\) the pairs \((f, g)\) with \(f : A \to A'\) in \(\mathscr{C}\) and \(g : B \to B'\) in \(\mathscr{D}\). Composition and identities are formed coordinatewise.

Definition: Subcategory and Full Subcategory

A subcategory \(\mathscr{S}\) of a category \(\mathscr{C}\) consists of a subcollection of the objects of \(\mathscr{C}\) together with, for each pair \(S, S'\) of chosen objects, a subcollection \(\mathscr{S}(S, S') \subseteq \mathscr{C}(S, S')\), such that \(\mathscr{S}\) contains the identity of each of its objects and is closed under composition. It is a full subcategory if \(\mathscr{S}(S, S') = \mathscr{C}(S, S')\) for all chosen \(S, S'\) — that is, if it keeps all morphisms between the objects it retains. A full subcategory is therefore specified merely by naming its objects.

These constructions are not idle. The product category is the natural home of a functor in two variables; the opposite category is what turns a contravariant construction into an honest functor, as the next section records; and full subcategories are the device by which one carves a category of interest out of a larger ambient one — the abelian groups inside all groups, the finite-dimensional spaces inside all vector spaces.

Functors

Once categories are themselves objects of study, the structure-preserving maps between them announce themselves. A functor must carry objects to objects and morphisms to morphisms in a way that respects the only structure a category has: composition and identities.

Definition: Functor

Let \(\mathscr{C}\) and \(\mathscr{D}\) be categories. A functor \(F : \mathscr{C} \to \mathscr{D}\) assigns

  • to each object \(A\) of \(\mathscr{C}\) an object \(F(A)\) of \(\mathscr{D}\);
  • to each morphism \(f : A \to B\) of \(\mathscr{C}\) a morphism \(F(f) : F(A) \to F(B)\) of \(\mathscr{D}\),

subject to two requirements:

  • preservation of composition: \(F(g \circ f) = F(g) \circ F(f)\) whenever \(g \circ f\) is defined;
  • preservation of identities: \(F(1_A) = 1_{F(A)}\) for every object \(A\).

The two simplest examples set the pattern. For any category there is an identity functor fixing every object and morphism. Between many of the structured categories above there is a forgetful functor to \(\mathbf{Set}\) — sending a group to its underlying set and a homomorphism to its underlying function, say — which forgets the structure while preserving composition, since composition of homomorphisms is composition of the underlying functions.

Functors can themselves be composed — applying \(G : \mathscr{D} \to \mathscr{E}\) after \(F : \mathscr{C} \to \mathscr{D}\) yields a functor \(G \circ F : \mathscr{C} \to \mathscr{E}\) — and the composition is associative with the identity functors as units. The pattern of the earlier sections thus repeats one level up: categories are themselves the objects of a category, whose morphisms are the functors between them.

A less obvious example is one the curriculum has already computed in full, without naming it as such. On smooth manifolds, the operation of passing to the tangent space at a point, together with the differential of a smooth map, is a functor.

The Differential Is a Functor

Sending a pointed smooth manifold to its tangent space, and a smooth map \(F\) to its differential \(dF_p\), satisfies exactly the two functor axioms — and we proved both already, under other names. The objects here are pairs \((M, p)\) of a manifold with a chosen basepoint, since the point \(p\) alone does not determine the manifold it lives in, and the morphisms \((M, p) \to (N, q)\) are the smooth maps \(F : M \to N\) with \(F(p) = q\). The chain rule for the differential of a composite, \(d(G \circ F)_p = dG_{F(p)} \circ dF_p\), is precisely preservation of composition; the statement that the differential of the identity map is the identity linear map is preservation of identities. So the assignment \((M, p) \mapsto T_pM\), \(F \mapsto dF_p\), is a functor from (pointed) \(\mathbf{Man}\) to \(\mathbf{Vect}_{\mathbb{R}}\). The differential is often written \(F_* := dF_p\) for exactly this reason: the star is the notation for the morphism a functor assigns, and the functor axioms read \((G \circ F)_* = G_* \circ F_*\) and \((1_{(M,p)})_* = 1_{T_pM}\) — the same shape carried by the functors of algebraic topology, which send a space to an algebraic invariant and a continuous map to the induced homomorphism. The computation was done when the differential was first studied; what is new is only the recognition that the two properties we verified there are the defining axioms of a functor. This is the recurring dividend of the categorical viewpoint: structure already present in the curriculum acquires a name, and with the name, a place in a far larger pattern.

Contravariant Functors and Presheaves

Some natural constructions reverse the direction of arrows: a morphism \(A \to A'\) gives rise not to a map \(F(A) \to F(A')\) but to one \(F(A') \to F(A)\). The dual category packages this cleanly, so that no new axioms are needed.

Definition: Contravariant Functor

A contravariant functor from \(\mathscr{C}\) to \(\mathscr{D}\) is a functor \(\mathscr{C}^{\mathrm{op}} \to \mathscr{D}\). Explicitly, it assigns to each object \(A\) an object \(F(A)\) and to each morphism \(f : A \to B\) a morphism \(F(f) : F(B) \to F(A)\), reversing direction, with \(F(g \circ f) = F(f) \circ F(g)\) and \(F(1_A) = 1_{F(A)}\). An ordinary functor is called covariant for emphasis when the contrast matters.

The dual-space construction on vector spaces is the prototype: a linear map \(f : V \to W\) induces \(f^* : W^* \to V^*\) by precomposition, reversing direction, so \((-)^*\) is a contravariant functor on \(\mathbf{Vect}_k\). Contravariant functors landing in \(\mathbf{Set}\) are common enough to merit a name.

Definition: Presheaf

A presheaf on a category \(\mathscr{C}\) is a functor \(\mathscr{C}^{\mathrm{op}} \to \mathbf{Set}\); equivalently, a contravariant functor from \(\mathscr{C}\) to \(\mathbf{Set}\).

The name has a geometric source. For a topological space \(X\), the open sets ordered by inclusion form a thin category, and a presheaf on it assigns to each open set \(U\) a set \(F(U)\) — for instance the continuous real-valued functions on \(U\) — together with, for each inclusion \(U \subseteq U'\), a restriction map \(F(U') \to F(U)\) running the opposite way. Presheaves, and the sheaves that refine them, are central to modern geometry and will return when we have the tools to treat them in earnest.

Faithful and Full Functors

A functor acts on each hom-collection \(\mathscr{C}(A, A') \to \mathscr{D}(F(A), F(A'))\), and the injectivity or surjectivity of that action measures how much of the source category the functor sees.

Definition: Faithful and Full Functor

A functor \(F : \mathscr{C} \to \mathscr{D}\) is faithful if for every pair of objects \(A, A'\) the function \(\mathscr{C}(A, A') \to \mathscr{D}(F(A), F(A'))\), \(f \mapsto F(f)\), is injective, and full if that function is surjective. A faithful functor reflects the distinctness of parallel morphisms with a common domain and codomain; a full functor realizes every morphism between images. The inclusion of a subcategory is always faithful, and is full exactly when the subcategory is full.

Natural Transformations and Equivalence

Functors from \(\mathscr{C}\) to \(\mathscr{D}\) can themselves be compared. Given two functors \(F, G : \mathscr{C} \to \mathscr{D}\), a natural transformation is a rule that, at each object of \(\mathscr{C}\), produces a morphism in \(\mathscr{D}\) from the \(F\)-image to the \(G\)-image — and does so compatibly with every morphism of \(\mathscr{C}\).

Definition: Natural Transformation

Let \(F, G : \mathscr{C} \to \mathscr{D}\) be functors. A natural transformation \(\alpha : F \to G\) assigns to each object \(A\) of \(\mathscr{C}\) a morphism \(\alpha_A : F(A) \to G(A)\) of \(\mathscr{D}\), called its component at \(A\), such that for every morphism \(f : A \to B\) of \(\mathscr{C}\) the naturality square \[ \begin{array}{ccc} F(A) & \xrightarrow{\;F(f)\;} & F(B) \\ {\scriptstyle \alpha_A}\big\downarrow & & \big\downarrow{\scriptstyle \alpha_B} \\ G(A) & \xrightarrow[\;G(f)\;]{} & G(B) \end{array} \] commutes, that is, \(\alpha_B \circ F(f) = G(f) \circ \alpha_A\).

F(A) F(B) G(A) G(B) F(f) αB αA G(f)
The naturality square. The blue route (\(\alpha_B \circ F(f)\): across the top, then down the right) and the purple route (\(G(f) \circ \alpha_A\): down the left, then across the bottom) share the same source \(F(A)\) and target \(G(B)\); naturality is the demand that the two routes are equal.

Reading the square is the key to the definition. Starting from the top-left corner \(F(A)\), there are two ways to reach the bottom-right corner \(G(B)\): go right by \(F(f)\) then down by \(\alpha_B\), or go down by \(\alpha_A\) then right by \(G(f)\). Naturality is the demand that these two routes agree, \(\alpha_B \circ F(f) = G(f) \circ \alpha_A\) — that "apply \(f\), then pass from \(F\) to \(G\)" equals "pass from \(F\) to \(G\), then apply \(f\)."

The naturality condition is the entire content of the definition: a natural transformation is not merely a choice of one morphism \(\alpha_A\) per object, but a choice that is coherent across all the morphisms of the source category at once. Returning to the running picture, two translation schemes \(F\) (literal) and \(G\) (idiomatic) are compared by a family of links \(\alpha_A\), one per concept; naturality demands that following an entailment and then comparing schemes agrees with comparing schemes and then following the entailment. In a thin target category the square commutes automatically, because any two parallel morphisms there are equal — so the linguistic picture displays the shape of naturality while suppressing its force. To see the condition do real work we need a target with genuinely many morphisms.

The canonical such example lives in linear algebra. Let \(\mathbf{Vect}_k^{\mathrm{fd}}\) be the category of finite-dimensional vector spaces over \(k\). The dual construction \(V \mapsto V^*\) is contravariant, so the double dual \(V \mapsto V^{**}\) is a covariant functor, while the identity assignment \(V \mapsto V\) is another. For every \(V\) there is the evaluation map \(\alpha_V : V \to V^{**}\) sending a vector \(v\) to the functional "evaluate at \(v\)," \(\alpha_V(v)(\varphi) = \varphi(v)\). To see that this lands in \(V^{**}\): an element of \(V^{**} = (V^*)^*\) is a linear map from \(V^*\) to \(k\), and \(\alpha_V(v)\) is exactly that — it eats a functional \(\varphi \in V^*\) and returns the scalar \(\varphi(v)\), linearly in \(\varphi\). These components assemble into a natural transformation from the identity functor to the double-dual functor: for any linear map \(f : V \to W\), the naturality square relating \(\alpha_V\), \(\alpha_W\), \(f\), and \(f^{**}\) commutes by a direct unwinding of the definitions. The single map \(\alpha_V\) at each space is unremarkable; what is remarkable, and what naturality captures, is that one uniform formula works for every space and is compatible with every linear map between them.

Natural Isomorphism

When every component of a natural transformation is an isomorphism, the two functors are indistinguishable in a strong, choice-free sense.

Definition: Natural Isomorphism

A natural transformation \(\alpha : F \to G\) is a natural isomorphism if there is a natural transformation \(\beta : G \to F\) with \(\beta \circ \alpha = 1_F\) and \(\alpha \circ \beta = 1_G\), where composition and identities are taken among natural transformations. When such an \(\alpha\) exists, \(F\) and \(G\) are naturally isomorphic, written \(F \cong G\); one also says \(F(A) \cong G(A)\) naturally in \(A\).

Theorem: Componentwise Criterion for Natural Isomorphism

A natural transformation \(\alpha : F \to G\) is a natural isomorphism if and only if each component \(\alpha_A : F(A) \to G(A)\) is an isomorphism in \(\mathscr{D}\).

Proof sketch:

If \(\alpha\) has an inverse natural transformation \(\beta\), then each \(\beta_A\) inverts \(\alpha_A\) by the definition of componentwise composition, so every component is an isomorphism. Conversely, suppose each \(\alpha_A\) is an isomorphism with inverse \(\alpha_A^{-1}\); set \(\beta_A := \alpha_A^{-1}\). It remains only to check that the family \((\beta_A)\) is natural. Given \(f : A \to B\), the naturality square for \(\alpha\) reads \(\alpha_B \circ F(f) = G(f) \circ \alpha_A\); composing on the left with \(\alpha_B^{-1}\) and on the right with \(\alpha_A^{-1}\) rearranges this to \(F(f) \circ \alpha_A^{-1} = \alpha_B^{-1} \circ G(f)\), which is exactly the naturality square for \(\beta\). Hence \(\beta\) is a natural transformation inverse to \(\alpha\).

The double-dual transformation above is the decisive illustration. On finite-dimensional spaces every \(\alpha_V : V \to V^{**}\) is an isomorphism, so by the criterion the whole transformation is a natural isomorphism: \(V \cong V^{**}\) naturally in \(V\). The contrast with the dual is the entire point. A space is also isomorphic to its single dual, \(V \cong V^*\), but only after a basis is chosen, and the isomorphism genuinely depends on that choice. The deeper reason this isomorphism cannot be made natural is one of variance: the identity assignment \(V \mapsto V\) is a covariant functor, while the dual \(V \mapsto V^*\) is contravariant — a linear map \(f : V \to W\) induces \(f^* : W^* \to V^*\) pointing the other way. A natural transformation compares two functors of the same variance, component by component, through naturality squares whose arrows must line up; with one functor covariant and the other contravariant, the arrows of the would-be square point in incompatible directions, and the comparison cannot even be set up. The double dual, being the composite of two contravariant functors, is covariant again — the same variance as the identity — which is precisely why a natural comparison with it exists. The categorical vocabulary thus makes precise an intuition that predates the theory, that the double-dual identification is canonical while the single-dual one is not, by locating the difference first in variance and then in the presence or absence of a natural transformation.

The Functor Category

Natural transformations compose. Given \(\alpha : F \to G\) and \(\beta : G \to H\) between functors \(\mathscr{C} \to \mathscr{D}\), their composite \(\beta \circ \alpha : F \to H\) has components \((\beta \circ \alpha)_A = \beta_A \circ \alpha_A\); this is associative, and each functor \(F\) carries an identity natural transformation \(1_F\) with components \(1_{F(A)}\). The data assemble into a category.

Definition: Functor Category

For categories \(\mathscr{C}\) and \(\mathscr{D}\), the functor category \([\mathscr{C}, \mathscr{D}]\) has as objects the functors \(\mathscr{C} \to \mathscr{D}\) and as morphisms the natural transformations between them, with composition taken componentwise as above. A natural isomorphism is precisely an isomorphism in this category, so two functors are naturally isomorphic exactly when they are isomorphic as objects of \([\mathscr{C}, \mathscr{D}]\).

Equivalence of Categories

The notion of natural isomorphism resolves a foundational question: when should two categories count as the same? Requiring functors \(F\) and \(G\) with \(G \circ F\) and \(F \circ G\) equal to the identity functors is too strict — equality of functors would force equality of objects, a level of detail categories are designed to ignore. Replacing those equalities by natural isomorphisms gives the right notion.

Definition: Equivalence of Categories

An equivalence between categories \(\mathscr{C}\) and \(\mathscr{D}\) consists of functors \(F : \mathscr{C} \to \mathscr{D}\) and \(G : \mathscr{D} \to \mathscr{C}\) together with natural isomorphisms \(G \circ F \cong 1_{\mathscr{C}}\) and \(F \circ G \cong 1_{\mathscr{D}}\). When an equivalence exists, \(\mathscr{C}\) and \(\mathscr{D}\) are equivalent, written \(\mathscr{C} \simeq \mathscr{D}\), and \(F, G\) are called equivalences.

Verifying an equivalence by exhibiting \(G\) and the two natural isomorphisms is often laborious. A criterion intrinsic to a single functor removes the need to construct an inverse at all.

Definition: Essentially Surjective

A functor \(F : \mathscr{C} \to \mathscr{D}\) is essentially surjective on objects if for every object \(B\) of \(\mathscr{D}\) there is an object \(A\) of \(\mathscr{C}\) with \(F(A) \cong B\) — surjective on objects up to isomorphism, rather than on the nose.

Theorem: Characterization of Equivalences

A functor is an equivalence if and only if it is full, faithful, and essentially surjective on objects.

Proof sketch:

Suppose first that \(F : \mathscr{C} \to \mathscr{D}\) is an equivalence, with inverse \(G\) and natural isomorphisms \(GF \cong 1_{\mathscr{C}}\) and \(FG \cong 1_{\mathscr{D}}\). Essential surjectivity is immediate: for any object \(B\) of \(\mathscr{D}\), the second isomorphism gives \(F(GB) \cong B\). For fullness and faithfulness, fix objects \(A, A'\) of \(\mathscr{C}\) and write \(\eta : 1_{\mathscr{C}} \to GF\) for the natural isomorphism. Its naturality says that for any \(h : A \to A'\) the relation \(GF(h) = \eta_{A'} \circ h \circ \eta_A^{-1}\) holds, so the assignment \(h \mapsto GF(h)\) is a bijection \(\mathscr{C}(A, A') \to \mathscr{C}(GFA, GFA')\) — its inverse pre- and post-composes with the components \(\eta_A\), \(\eta_{A'}\), so it is invertible by construction. But this same \(h \mapsto GF(h)\) is the composite of the two hom-maps \(\mathscr{C}(A,A') \xrightarrow{F} \mathscr{D}(FA, FA') \xrightarrow{G} \mathscr{C}(GFA, GFA')\); a composite that is bijective forces the first factor to be injective. Hence \(F\) is faithful, and the same argument applied to \(G\) (which is also an equivalence) makes \(G\) faithful; faithfulness of \(G\) together with bijectivity of the composite then forces the \(F\)-factor to be surjective, so \(F\) is full.

Conversely, suppose \(F\) is full, faithful, and essentially surjective. We build an inverse \(G\). For each object \(B\) of \(\mathscr{D}\), essential surjectivity supplies an object of \(\mathscr{C}\) and an isomorphism \(\varepsilon_B : F(GB) \xrightarrow{\;\cong\;} B\); choose one such pair for every \(B\), and call the chosen object \(GB\). To define \(G\) on a morphism \(g : B \to B'\), consider \(\varepsilon_{B'}^{-1} \circ g \circ \varepsilon_B : F(GB) \to F(GB')\); because \(F\) is full and faithful, its hom-map \(\mathscr{C}(GB, GB') \to \mathscr{D}(F(GB), F(GB'))\) is a bijection, so there is a unique morphism \(Gg : GB \to GB'\) sent to it by \(F\). Functoriality of \(G\) follows from uniqueness, since \(F\) is faithful; by construction the \(\varepsilon_B\) are the components of a natural isomorphism \(FG \cong 1_{\mathscr{D}}\), and a parallel argument using full faithfulness produces a natural isomorphism \(GF \cong 1_{\mathscr{C}}\). Thus \(F\) is an equivalence. (The choice of objects \(GB\) appeals to a selection across the objects of \(\mathscr{D}\); this is the one non-constructive step.)

The criterion is the categorical counterpart of two facts already familiar: that a bijective group homomorphism is automatically an isomorphism, and that a natural transformation whose components are all isomorphisms is itself invertible. In each case one establishes invertibility without constructing the inverse by hand. With it, equivalences become tractable: to show two categories are equivalent, one exhibits a single functor and checks three conditions, none of which requires producing the return trip explicitly. This is the notion of sameness under which the constructions of the following pages — representable functors, the Yoneda lemma, limits, and adjunctions — are stated and compared.