Documentation

Mathlib.CategoryTheory.Functor.KanExtension.Adjunction

The Kan extension functor #

Given a functor L : C ⥤ D, we define the left Kan extension functor L.lan : (C ⥤ H) ⥤ (D ⥤ H) which sends a functor F : C ⥤ H to its left Kan extension along L. This is defined if all F have such a left Kan extension. It is shown that L.lan is the left adjoint to the functor (D ⥤ H) ⥤ (C ⥤ H) given by the precomposition with L (see Functor.lanAdjunction).

Similarly, we define the right Kan extension functor L.ran : (C ⥤ H) ⥤ (D ⥤ H) which sends a functor F : C ⥤ H to its right Kan extension along L.

The natural transformation F ⟶ L ⋙ (L.lan).obj G.

Equations
Instances For
instance CategoryTheory.Functor.instIsLeftKanExtensionObjLanAppLanUnit {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] (F : CategoryTheory.Functor C H) :
(L.lan.obj F).IsLeftKanExtension (L.lanUnit.app F)
Equations
  • =
noncomputable def CategoryTheory.Functor.isPointwiseLeftKanExtensionLanUnit {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_5, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_6, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] (F : CategoryTheory.Functor C H) [L.HasPointwiseLeftKanExtension F] :
(CategoryTheory.Functor.LeftExtension.mk (L.lan.obj F) (L.lanUnit.app F)).IsPointwiseLeftKanExtension

If there exists a pointwise left Kan extension of F along L, then L.lan.obj G is a pointwise left Kan extension of F.

Equations

The left Kan extension functor L.Lan is left adjoint to the precomposition by L.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Functor.lanAdjunction_unit {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) (H : Type u_3) [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] :
(L.lanAdjunction H).unit = L.lanUnit
theorem CategoryTheory.Functor.lanAdjunction_counit_app {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] (G : CategoryTheory.Functor D H) :
(L.lanAdjunction H).counit.app G = (L.lan.obj (L.comp G)).descOfIsLeftKanExtension (L.lanUnit.app (L.comp G)) G (CategoryTheory.CategoryStruct.id (L.comp G))
@[simp]
theorem CategoryTheory.Functor.lanUnit_app_app_lanAdjunction_counit_app_app_assoc {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] (G : CategoryTheory.Functor D H) (X : C) {Z : H} (h : G.obj (L.obj X) Z) :
CategoryTheory.CategoryStruct.comp ((L.lanUnit.app (L.comp G)).app X) (CategoryTheory.CategoryStruct.comp (((L.lanAdjunction H).counit.app G).app (L.obj X)) h) = h
@[simp]
theorem CategoryTheory.Functor.lanUnit_app_app_lanAdjunction_counit_app_app {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] (G : CategoryTheory.Functor D H) (X : C) :
CategoryTheory.CategoryStruct.comp ((L.lanUnit.app (L.comp G)).app X) (((L.lanAdjunction H).counit.app G).app (L.obj X)) = CategoryTheory.CategoryStruct.id (((CategoryTheory.Functor.id (CategoryTheory.Functor C H)).obj (L.comp G)).obj X)
instance CategoryTheory.Functor.instIsIsoAppLanUnit {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [L.Full] [L.Faithful] (F : CategoryTheory.Functor C H) (X : C) [L.HasPointwiseLeftKanExtension F] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] :
CategoryTheory.IsIso ((L.lanUnit.app F).app X)
Equations
  • =
instance CategoryTheory.Functor.instIsIsoAppLanUnit_1 {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [L.Full] [L.Faithful] (F : CategoryTheory.Functor C H) [L.HasPointwiseLeftKanExtension F] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] :
CategoryTheory.IsIso (L.lanUnit.app F)
Equations
  • =
instance CategoryTheory.Functor.coreflective {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [L.Full] [L.Faithful] [∀ (F : CategoryTheory.Functor C H), L.HasPointwiseLeftKanExtension F] :
Equations
  • =
instance CategoryTheory.Functor.instIsIsoAppUnitLanAdjunctionOfHasPointwiseLeftKanExtension {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [L.Full] [L.Faithful] (F : CategoryTheory.Functor C H) [L.HasPointwiseLeftKanExtension F] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] :
CategoryTheory.IsIso ((L.lanAdjunction H).unit.app F)
Equations
  • =
instance CategoryTheory.Functor.coreflective' {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [L.Full] [L.Faithful] [∀ (F : CategoryTheory.Functor C H), L.HasPointwiseLeftKanExtension F] :
CategoryTheory.IsIso (L.lanAdjunction H).unit
Equations
  • =

The right Kan extension functor (C ⥤ H) ⥤ (D ⥤ H) along a functor C ⥤ D.

Equations
  • One or more equations did not get rendered due to their size.

The natural transformation L ⋙ (L.lan).obj G ⟶ L.

Equations
Instances For
instance CategoryTheory.Functor.instIsRightKanExtensionObjRanAppRanCounit {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] (F : CategoryTheory.Functor C H) :
(L.ran.obj F).IsRightKanExtension (L.ranCounit.app F)
Equations
  • =
noncomputable def CategoryTheory.Functor.isPointwiseRightKanExtensionRanCounit {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_5, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_6, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] (F : CategoryTheory.Functor C H) [L.HasPointwiseRightKanExtension F] :
(CategoryTheory.Functor.RightExtension.mk (L.ran.obj F) (L.ranCounit.app F)).IsPointwiseRightKanExtension

If there exists a pointwise right Kan extension of F along L, then L.ran.obj G is a pointwise right Kan extension of F.

Equations

The right Kan extension functor L.ran is right adjoint to the precomposition by L.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem CategoryTheory.Functor.ranAdjunction_counit {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) (H : Type u_3) [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] :
(L.ranAdjunction H).counit = L.ranCounit
theorem CategoryTheory.Functor.ranAdjunction_unit_app {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] (G : CategoryTheory.Functor D H) :
(L.ranAdjunction H).unit.app G = (L.ran.obj (L.comp G)).liftOfIsRightKanExtension (L.ranCounit.app (L.comp G)) G (CategoryTheory.CategoryStruct.id (L.comp G))
@[simp]
theorem CategoryTheory.Functor.ranCounit_app_app_ranAdjunction_unit_app_app_assoc {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] (G : CategoryTheory.Functor D H) (X : C) {Z : H} (h : G.obj (L.obj X) Z) :
CategoryTheory.CategoryStruct.comp (((L.ranAdjunction H).unit.app G).app (L.obj X)) (CategoryTheory.CategoryStruct.comp ((L.ranCounit.app (L.comp G)).app X) h) = h
@[simp]
theorem CategoryTheory.Functor.ranCounit_app_app_ranAdjunction_unit_app_app {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] (G : CategoryTheory.Functor D H) (X : C) :
CategoryTheory.CategoryStruct.comp (((L.ranAdjunction H).unit.app G).app (L.obj X)) ((L.ranCounit.app (L.comp G)).app X) = CategoryTheory.CategoryStruct.id (((CategoryTheory.Functor.id (CategoryTheory.Functor D H)).obj G).obj (L.obj X))
instance CategoryTheory.Functor.instIsIsoAppRanCounit {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [L.Full] [L.Faithful] (F : CategoryTheory.Functor C H) (X : C) [L.HasPointwiseRightKanExtension F] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] :
CategoryTheory.IsIso ((L.ranCounit.app F).app X)
Equations
  • =
instance CategoryTheory.Functor.instIsIsoAppRanCounit_1 {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [L.Full] [L.Faithful] (F : CategoryTheory.Functor C H) [L.HasPointwiseRightKanExtension F] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] :
CategoryTheory.IsIso (L.ranCounit.app F)
Equations
  • =
instance CategoryTheory.Functor.reflective {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [L.Full] [L.Faithful] [∀ (F : CategoryTheory.Functor C H), L.HasPointwiseRightKanExtension F] :
Equations
  • =
instance CategoryTheory.Functor.instIsIsoAppCounitRanAdjunctionOfHasPointwiseRightKanExtension {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [L.Full] [L.Faithful] (F : CategoryTheory.Functor C H) [L.HasPointwiseRightKanExtension F] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] :
CategoryTheory.IsIso ((L.ranAdjunction H).counit.app F)
Equations
  • =
instance CategoryTheory.Functor.reflective' {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [L.Full] [L.Faithful] [∀ (F : CategoryTheory.Functor C H), L.HasPointwiseRightKanExtension F] :
CategoryTheory.IsIso (L.ranAdjunction H).counit
Equations
  • =