A Kan extension provides a method for extending a functor along another functor. It generalizes the concept of extending a function from a subspace to a larger space by finding the best possible approximation that factors through a given morphism.
The left Kan extension of F along K is a functorLanKF:D⇒E equipped with a natural transformationη:F⇛(LanKF)∘K such that for any functor G:D⇒E and natural transformation α:F⇛G∘K, there exists a unique natural transformation σ:LanKF⇛G such that α=(σK)∘η.
The right Kan extension of F along K is a functor RanKF:D⇒E equipped with a natural transformationϵ:(RanKF)∘K⇛F such that for any functor G:D⇒E and natural transformation α:G∘K⇛F, there exists a unique natural transformation σ:G⇛RanKF such that α=ϵ∘(σK).
Kan extensions are characterized as adjoints to the precomposition functor K∗:[D,E]⇒[C,E] defined by K∗(G)=G∘K. When they exist for all F, we have a sequence of adjoints:
LanK⊣K∗⊣RanK
This yields the natural isomorphisms:
Nat(LanKF,G)≅Nat(F,G∘K)Nat(G∘K,F)≅Nat(G,RanKF)
Formulae via (Co)ends
If C is small and E is cocomplete, the left Kan extension exists and can be computed pointwise using an end:
(LanKF)(d)=∫c∈CD(Kc,d)⋅Fc
Dually, if E is complete, the right Kan extension exists and is computed using a coend: