The set of natural transformations Nat(F, G) between functors F, G: C → Set can be expressed categorically as which of the following?
AThe limit of the functor c ↦ Hom(F(c), G(c)) over the category C
BThe colimit of the functor c ↦ Hom(F(c), G(c)) over the category C
CThe end ∫_c Hom(F(c), G(c)), the universal wedge of the Hom bifunctor
DThe coend ∫^c Hom(F(c), G(c)), the universal cowedge of the Hom bifunctor
Nat(F, G) = ∫_c Hom(F(c), G(c)) is the canonical example of an end. An element of this end is a family of functions α_c: F(c) → G(c) satisfying the wedge condition — which turns out to be exactly the naturality condition. The end is correct (not a limit or colimit) because Hom(F(−), G(−)): C^op × C → Set has mixed variance, requiring dinatural transformations rather than ordinary natural transformations. A limit of the diagonal functor c ↦ T(c,c) is a different, weaker construction that misses the off-diagonal naturality conditions.
Question 2 Multiple Choice
A student says: 'Computing Nat(F, G) as an end is just computing the limit of the diagonal functor c ↦ Hom(F(c), G(c)) — ends are limits applied to different notation.' What is the key error?
AThere is no error — ends of the form ∫_c T(c,c) are always equal to limits of the diagonal functor c ↦ T(c,c)
BThe limit of the diagonal only uses morphisms T(f,f) along the diagonal, but the end's wedge condition also imposes consistency through the off-diagonal T(f, id) and T(id, f) routes
CThe error is minor — ends and limits of the diagonal agree for Set-valued functors but diverge for other target categories
DThe error is about variance — limits apply to covariant functors, but T(c,c) is contravariant in c
The limit of the diagonal functor uses only T(f,f): T(d,d) → T(c,c) (applying f in both slots simultaneously). The end's wedge condition is stronger: for every morphism f: c → d, the two paths T(d,c) → T(d,d) → end and T(d,c) → T(c,c) → end must agree. This off-diagonal condition captures simultaneous naturality in both variance slots and is genuinely different from an ordinary limit. For Nat(F,G), it captures exactly the naturality squares that the limit-of-diagonal construction would miss.
Question 3 True / False
In the integral notation for ends and coends, ∫_c (subscript) denotes an end — analogous to a limit, requiring consistency at every c — while ∫^c (superscript) denotes a coend, analogous to a colimit, identifying contributions from different c.
TTrue
FFalse
Answer: True
This is the standard convention and intended analogy. An end ∫_c T(c,c) selects elements consistent with the wedge condition across all objects — like a product or limit, it requires something to hold everywhere simultaneously. A coend ∫^c T(c,c) identifies elements related by the coaction of morphisms — like a coproduct or colimit, it takes a sum and quotients by equivalence. The notation mirrors integration: subscript = integrate over all c simultaneously (limit flavor); superscript = sum over c with identifications (colimit flavor).
Question 4 True / False
Dinatural transformations between bifunctors C^op × C → D can generally be composed to form a new dinatural transformation, just as natural transformations between functors C → D compose.
TTrue
FFalse
Answer: False
This is a key difference between dinaturals and naturals. Given dinatural transformations α: S → T and β: T → U where S, T, U: C^op × C → D, the naive composite β_c ∘ α_c is generally NOT dinatural — the hexagon condition for dinaturality fails at the composite. This failure is precisely why ends and coends are defined using wedge universality rather than ordinary naturality: wedges are a restricted class of dinatural families (from/to a constant functor) for which universal properties can be stated cleanly without requiring general dinaturality composition.
Question 5 Short Answer
State the ninja Yoneda lemma and explain intuitively why the functor value F(a) can be recovered as the coend ∫^c Hom(a, c) × F(c).
Think about your answer, then reveal below.
Model answer: The ninja Yoneda lemma states: F(a) ≅ ∫^c Hom(a, c) × F(c). For each morphism f: a → c and each element x ∈ F(c), the coend takes pairs (f, x) and identifies (f, x) ~ (g, F(h)(x)) whenever h ∘ f = g for morphisms h: c → c'. Since every morphism f: a → c can be factored through a → a via identity, every pair (f: a → c, x ∈ F(c)) gets identified with (id_a, F(f)(x) ∈ F(a)). After all identifications, the only data that survives is an element of F(a) itself.
The coend is a 'change-of-basis' formula: it expresses F as a weighted colimit of representable functors Hom(a, −), with the Yoneda embedding as the canonical basis. For each c, you take one copy of F(c) for each morphism a → c, then quotient by the natural action of morphisms. The quotient collapses everything to F(a) because F is functorial — any element x ∈ F(c) reachable from a via f: a → c is identified with F(f)(x) ∈ F(a). This is the coend version of the Yoneda lemma, generalizing cleanly to weighted limits and enriched categories.