Functors: maps of categories
Once categories are objects of interest, we want maps between them. A [[functor|functor]] F : C → D assigns to each object A of C an object F(A) of D, and to each morphism f : A → B a morphism F(f) : F(A) → F(B), subject to F(id_A) = id_{F(A)} and F(g∘f) = F(g)∘F(f). A functor is a homomorphism of categories: it preserves identities and composition.
- [[forgetful-functor|Forgetful functors]] U : Grp → Set, Ring → Ab, Vect → Set just drop structure, sending a group to its underlying set and a homomorphism to its underlying function. Easy to overlook, surprisingly important.
- Free functors F : Set → Grp send a set to the free group on it, and a function to the induced homomorphism. These are the partners of the forgetful functors (next guide: adjunctions).
- Hom-functors Hom(A, −) : C → Set send B to the set Hom(A, B). These are the seeds of representability and Yoneda (guide 5).
- Contravariant functors reverse arrows: F(f) : F(B) → F(A). The dual space V ↦ V* is contravariant — a linear map T : V → W induces T* : W* → V*. Homology functors are covariant; cohomology is contravariant.
Natural transformations
If functors F, G : C → D are two ways of turning C into D, a [[natural-transformation|natural transformation]] η : F ⇒ G is a coherent way to morph one into the other. It gives, for each object A, a component η_A : F(A) → G(A) in D, such that for every f : A → B the square commutes: η_B ∘ F(f) = G(f) ∘ η_A. “Natural” means: the same recipe at every object, with no arbitrary choices that fail to commute with the maps.
The naturality square (must commute for every f : A -> B):
eta_A
F(A) ----------> G(A)
| |
F(f) | | G(f)
v v
F(B) ----------> G(B)
eta_B
Example 1 -- determinant is natural.
Let F = GL_n(-) and G = (-)^x (units functor), CRing -> Grp.
det_R : GL_n(R) -> R^x for each commutative ring R.
For a ring map phi : R -> S, applying phi entrywise to a
matrix then taking det = taking det then applying phi:
det_S( phi(M) ) = phi( det_R(M) ).
The square commutes for every phi => det is NATURAL.
Example 2 -- double dual is natural; single dual basis is NOT.
eta_V : V -> V**, v |-> (f |-> f(v)), on finite-dim Vect.
For any linear T : V -> W, T** o eta_V = eta_W o T. Natural.
But V -> V* via a chosen basis depends on the basis: change
basis and the square fails. No natural iso V => V*.This last point answers a question every linear algebra student feels: a finite-dimensional V is isomorphic to V*, yet the isomorphism feels “fake.” Category theory makes the feeling precise — there is no natural isomorphism V ⇒ V*, because every candidate needs a choice of basis and choices break naturality. The double dual V ⇒ V**, needing no choice, is natural. The vague word “canonical” finally has a definition: natural.