Kan extensions #
The basic definitions for Kan extensions of functors are introduced in this file. Part of API
is parallel to the definitions for bicategories (see CategoryTheory.Bicategory.Kan.IsKan).
(The bicategory API cannot be used directly here because it would not allow the universe
polymorphism which is necessary for some applications.)
Given a natural transformation α : L ⋙ F' ⟶ F, we define the property
F'.IsRightKanExtension α which expresses that (F', α) is a right Kan
extension of F along L, i.e. that it is a terminal object in a
category RightExtension L F of costructured arrows. The condition
F'.IsLeftKanExtension α for α : F ⟶ L ⋙ F' is defined similarly.
We also introduce typeclasses HasRightKanExtension L F and HasLeftKanExtension L F
which assert the existence of a right or left Kan extension, and chosen Kan extensions
are obtained as leftKanExtension L F and rightKanExtension L F.
References #
- https://ncatlab.org/nlab/show/Kan+extension
Given two functors L : C ⥤ D and F : C ⥤ H, this is the category of functors
F' : D ⥤ H equipped with a natural transformation L ⋙ F' ⟶ F.
Instances For
Given two functors L : C ⥤ D and F : C ⥤ H, this is the category of functors
F' : D ⥤ H equipped with a natural transformation F ⟶ L ⋙ F'.
Instances For
Constructor for objects of the category Functor.RightExtension L F.
Instances For
Constructor for objects of the category Functor.LeftExtension L F.
Instances For
Given α : L ⋙ F' ⟶ F, the property F'.IsRightKanExtension α asserts that
(F', α) is a terminal object in the category RightExtension L F, i.e. that (F', α)
is a right Kan extension of F along L.
- nonempty_isUniversal : Nonempty (CostructuredArrow.IsUniversal (RightExtension.mk F' α))
Instances
If (F', α) is a right Kan extension of F along L, then (F', α) is a terminal object
in the category RightExtension L F.
Instances For
If (F', α) is a right Kan extension of F along L and β : L ⋙ G ⟶ F is
a natural transformation, this is the induced morphism G ⟶ F'.
Instances For
If (F', α) is a right Kan extension of F along L, then this
is the induced bijection (G ⟶ F') ≃ (L ⋙ G ⟶ F) for all G.
Instances For
Right Kan extensions of isomorphic functors are isomorphic.
Instances For
Two right Kan extensions are (canonically) isomorphic.
Instances For
Given α : F ⟶ L ⋙ F', the property F'.IsLeftKanExtension α asserts that
(F', α) is an initial object in the category LeftExtension L F, i.e. that (F', α)
is a left Kan extension of F along L.
- nonempty_isUniversal : Nonempty (StructuredArrow.IsUniversal (LeftExtension.mk F' α))
Instances
If (F', α) is a left Kan extension of F along L, then (F', α) is an initial object
in the category LeftExtension L F.
Instances For
If (F', α) is a left Kan extension of F along L and β : F ⟶ L ⋙ G is
a natural transformation, this is the induced morphism F' ⟶ G.
Instances For
If (F', α) is a left Kan extension of F along L, then this
is the induced bijection (F' ⟶ G) ≃ (F ⟶ L ⋙ G) for all G.
Instances For
Left Kan extensions of isomorphic functors are isomorphic.
Instances For
Two left Kan extensions are (canonically) isomorphic.
Instances For
This property HasRightKanExtension L F holds when the functor F has a right
Kan extension along L.
Instances For
This property HasLeftKanExtension L F holds when the functor F has a left
Kan extension along L.
Instances For
A chosen right Kan extension when [HasRightKanExtension L F] holds.
Instances For
The counit of the chosen right Kan extension rightKanExtension L F.
Instances For
A chosen left Kan extension when [HasLeftKanExtension L F] holds.
Instances For
The unit of the chosen left Kan extension leftKanExtension L F.
Instances For
The functor LeftExtension L' F ⥤ LeftExtension L F
induced by a natural transformation L' ⟶ L ⋙ G'.
Instances For
The functor RightExtension L' F ⥤ RightExtension L F
induced by a natural transformation L ⋙ G ⟶ L'.
Instances For
Given an isomorphism e : L ⋙ G ≅ L', a left extension of F along L' is universal
iff the corresponding left extension of L along L is.
Instances For
Given an isomorphism e : L ⋙ G ≅ L', a right extension of F along L' is universal
iff the corresponding right extension of L along L is.
Instances For
Given a left extension E of F : C ⥤ H along L : C ⥤ D and a functor G : H ⥤ D',
E.postcompose₂ G is the extension of F ⋙ G along L obtained by whiskering by G
on the right.
Instances For
Given a right extension E of F : C ⥤ H along L : C ⥤ D and a functor G : H ⥤ D',
E.postcompose₂ G is the extension of F ⋙ G along L obtained by whiskering by G
on the right.
Instances For
An isomorphism to describe the action of LeftExtension.postcompose₂ on terms of the form
LeftExtension.mk _ α.
Instances For
An isomorphism to describe the action of RightExtension.postcompose₂ on terms of the form
RightExtension.mk _ α.
Instances For
The functor LeftExtension L F ⥤ LeftExtension (G ⋙ L) (G ⋙ F)
obtained by precomposition.
Instances For
The functor RightExtension L F ⥤ RightExtension (G ⋙ L) (G ⋙ F)
obtained by precomposition.
Instances For
If G is an equivalence, then a left extension of F along L is universal iff
the corresponding left extension of G ⋙ F along G ⋙ L is.
Instances For
If G is an equivalence, then a right extension of F along L is universal iff
the corresponding left extension of G ⋙ F along G ⋙ L is.
Instances For
The equivalence RightExtension L F ≌ RightExtension L' F induced by
a natural isomorphism L ≅ L'.
Instances For
The equivalence LeftExtension L F ≌ LeftExtension L' F induced by
a natural isomorphism L ≅ L'.
Instances For
The equivalence RightExtension L F ≌ RightExtension L F' induced by
a natural isomorphism F ≅ F'.
Instances For
The equivalence LeftExtension L F ≌ LeftExtension L F' induced by
a natural isomorphism F ≅ F'.
Instances For
When two left extensions α₁ : LeftExtension L F₁ and α₂ : LeftExtension L F₂
are essentially the same via an isomorphism of functors F₁ ≅ F₂,
then α₁ is universal iff α₂ is.
Instances For
When two right extensions α₁ : RightExtension L F₁ and α₂ : RightExtension L F₂
are essentially the same via an isomorphism of functors F₁ ≅ F₂,
then α₁ is universal iff α₂ is.
Instances For
A variant of LeftExtension.precomp where we precompose, and then
"whisker" the diagram by a given natural transformation (α : F₀ ⟶ L ⋙ F₁)
Instances For
If the right extension defined by α : F₀ ⟶ L ⋙ F₁ is universal,
then for every L' : D ⥤ D', F₁ : D ⥤ H, if an extension
b : L'.LeftExtension F₁ is universal, so is the "pasted" extension
(LeftExtension.precomp₂ L' α).obj b.
Instances For
If the left extension defined by α : F₀ ⟶ L ⋙ F₁ is universal,
then for every L' : D ⥤ D', F₁ : D ⥤ H, if an extension
b : L'.LeftExtension F₁ is such that the "pasted" extension
(LeftExtension.precomp₂ L' α).obj b is universal, then b is itself
universal.
Instances For
If the left extension defined by α : F₀ ⟶ L ⋙ F₁ is universal,
then for every L' : D ⥤ D', F₁ : D ⥤ H, an extension
b : L'.LeftExtension F₁ is universal if and only if
(LeftExtension.precomp₂ L' α).obj b is universal.
Instances For
Construct a cocone for a left Kan extension F' : D ⥤ H of F : C ⥤ H along a functor
L : C ⥤ D given a cocone for F.
Instances For
If c is a colimit cocone for a functor F : C ⥤ H and α : F ⟶ L ⋙ F' is the unit of any
left Kan extension F' : D ⥤ H of F along L : C ⥤ D, then coconeOfIsLeftKanExtension α c is
a colimit cocone, too.
Instances For
If F' : D ⥤ H is a left Kan extension of F : C ⥤ H along L : C ⥤ D, the colimit over F'
is isomorphic to the colimit over F.
Instances For
Construct a cone for a right Kan extension F' : D ⥤ H of F : C ⥤ H along a functor
L : C ⥤ D given a cone for F.
Instances For
If c is a limit cone for a functor F : C ⥤ H and α : L ⋙ F' ⟶ F is the counit of any
right Kan extension F' : D ⥤ H of F along L : C ⥤ D, then coneOfIsRightKanExtension α c is
a limit cone, too.
Instances For
If F' : D ⥤ H is a right Kan extension of F : C ⥤ H along L : C ⥤ D, the limit over F'
is isomorphic to the limit over F.