Documentation

Mathlib.CategoryTheory.Functor.KanExtension.Pointwise

Pointwise Kan extensions #

In this file, we define the notion of pointwise (left) Kan extension. Given two functors L : C ⥤ D and F : C ⥤ H, and E : LeftExtension L F, we introduce a cocone E.coconeAt Y for the functor CostructuredArrow.proj L Y ⋙ F : CostructuredArrow L Y ⥤ H the point of which is E.right.obj Y, and the type E.IsPointwiseLeftKanExtensionAt Y which expresses that E.coconeAt Y is colimit. When this holds for all Y : D, we may say that E is a pointwise left Kan extension (E.IsPointwiseLeftKanExtension).

Conversely, when CostructuredArrow.proj L Y ⋙ F has a colimit, we say that F has a pointwise left Kan extension at Y : D (HasPointwiseLeftKanExtensionAt L F Y), and if this holds for all Y : D, we construct a functor pointwiseLeftKanExtension L F : D ⥤ H and show it is a pointwise Kan extension.

A dual API for pointwise right Kan extension is also formalized.

References #

@[reducible, inline]

The condition that a functor F has a pointwise left Kan extension along L at Y. It means that the functor CostructuredArrow.proj L Y ⋙ F : CostructuredArrow L Y ⥤ H has a colimit.

Equations
    Instances For
      @[reducible, inline]

      The condition that a functor F has a pointwise left Kan extension along L: it means that it has a pointwise left Kan extension at any object.

      Equations
        Instances For
          @[reducible, inline]

          The condition that a functor F has a pointwise right Kan extension along L at Y. It means that the functor StructuredArrow.proj Y L ⋙ F : StructuredArrow Y L ⥤ H has a limit.

          Equations
            Instances For
              @[reducible, inline]

              The condition that a functor F has a pointwise right Kan extension along L: it means that it has a pointwise right Kan extension at any object.

              Equations
                Instances For

                  HasPointwiseLeftKanExtensionAt is invariant when we replace L by an equivalent functor.

                  HasPointwiseRightKanExtensionAt is invariant when we replace L by an equivalent functor.

                  theorem CategoryTheory.Functor.hasPointwiseLeftKanExtensionAt_of_equivalence {C : Type u_1} {D : Type u_2} {D' : Type u_3} {H : Type u_4} [Category.{u_7, u_1} C] [Category.{u_5, u_2} D] [Category.{u_6, u_3} D'] [Category.{u_8, u_4} H] (L : Functor C D) (L' : Functor C D') (F : Functor C H) (E : D D') (eL : L.comp E.functor L') (Y : D) (Y' : D') (e : E.functor.obj Y Y') [L.HasPointwiseLeftKanExtensionAt F Y] :
                  theorem CategoryTheory.Functor.hasPointwiseLeftKanExtensionAt_iff_of_equivalence {C : Type u_1} {D : Type u_2} {D' : Type u_3} {H : Type u_4} [Category.{u_7, u_1} C] [Category.{u_5, u_2} D] [Category.{u_6, u_3} D'] [Category.{u_8, u_4} H] (L : Functor C D) (L' : Functor C D') (F : Functor C H) (E : D D') (eL : L.comp E.functor L') (Y : D) (Y' : D') (e : E.functor.obj Y Y') :
                  theorem CategoryTheory.Functor.hasPointwiseRightKanExtensionAt_of_equivalence {C : Type u_1} {D : Type u_2} {D' : Type u_3} {H : Type u_4} [Category.{u_7, u_1} C] [Category.{u_5, u_2} D] [Category.{u_6, u_3} D'] [Category.{u_8, u_4} H] (L : Functor C D) (L' : Functor C D') (F : Functor C H) (E : D D') (eL : L.comp E.functor L') (Y : D) (Y' : D') (e : E.functor.obj Y Y') [L.HasPointwiseRightKanExtensionAt F Y] :

                  The cocone for CostructuredArrow.proj L Y ⋙ F attached to E : LeftExtension L F. The point of this cocone is E.right.obj Y

                  Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Functor.LeftExtension.coconeAt_pt {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] {L : Functor C D} {F : Functor C H} (E : L.LeftExtension F) (Y : D) :
                      (E.coconeAt Y).pt = E.right.obj Y

                      The cocones for CostructuredArrow.proj L Y ⋙ F, as a functor from LeftExtension L F.

                      Equations
                        Instances For
                          @[simp]
                          @[simp]
                          theorem CategoryTheory.Functor.LeftExtension.coconeAtFunctor_map_hom {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] (L : Functor C D) (F : Functor C H) (Y : D) {E E' : L.LeftExtension F} (φ : E E') :
                          ((coconeAtFunctor L F Y).map φ).hom = φ.right.app Y
                          def CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtensionAt {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] {L : Functor C D} {F : Functor C H} (E : L.LeftExtension F) (Y : D) :
                          Type (max (max (max u_1 u_6) u_4) u_7)

                          A left extension E : LeftExtension L F is a pointwise left Kan extension at Y when E.coconeAt Y is a colimit cocone.

                          Equations
                            Instances For

                              The condition of being a pointwise left Kan extension at an object Y is unchanged by replacing Y by an isomorphic object Y'.

                              Equations
                                Instances For

                                  The condition of being a pointwise left Kan extension at an object Y is unchanged by replacing Y by an isomorphic object Y'.

                                  Equations
                                    Instances For

                                      A pointwise left Kan extension of F along L applied to an object Y is isomorphic to colimit (CostructuredArrow.proj L Y ⋙ F).

                                      Equations
                                        Instances For
                                          @[reducible, inline]
                                          abbrev CategoryTheory.Functor.LeftExtension.IsPointwiseLeftKanExtension {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] {L : Functor C D} {F : Functor C H} (E : L.LeftExtension F) :
                                          Type (max (max (max (max u_2 u_7) u_6) u_4) u_1)

                                          A left extension E : LeftExtension L F is a pointwise left Kan extension when it is a pointwise left Kan extension at any object.

                                          Equations
                                            Instances For

                                              If two left extensions E and E' are isomorphic, E is a pointwise left Kan extension at Y iff E' is.

                                              Equations
                                                Instances For

                                                  If two left extensions E and E' are isomorphic, E is a pointwise left Kan extension iff E' is.

                                                  Equations
                                                    Instances For

                                                      The (unique) morphism from a pointwise left Kan extension.

                                                      Equations
                                                        Instances For

                                                          A pointwise left Kan extension is universal, i.e. it is a left Kan extension.

                                                          Equations
                                                            Instances For

                                                              The cone for StructuredArrow.proj Y L ⋙ F attached to E : RightExtension L F. The point of this cone is E.left.obj Y

                                                              Equations
                                                                Instances For
                                                                  @[simp]
                                                                  theorem CategoryTheory.Functor.RightExtension.coneAt_pt {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] {L : Functor C D} {F : Functor C H} (E : L.RightExtension F) (Y : D) :
                                                                  (E.coneAt Y).pt = E.left.obj Y
                                                                  @[simp]

                                                                  The cones for StructuredArrow.proj Y L ⋙ F, as a functor from RightExtension L F.

                                                                  Equations
                                                                    Instances For
                                                                      @[simp]
                                                                      @[simp]
                                                                      theorem CategoryTheory.Functor.RightExtension.coneAtFunctor_map_hom {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] (L : Functor C D) (F : Functor C H) (Y : D) {E E' : L.RightExtension F} (φ : E E') :
                                                                      ((coneAtFunctor L F Y).map φ).hom = φ.left.app Y
                                                                      def CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtensionAt {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] {L : Functor C D} {F : Functor C H} (E : L.RightExtension F) (Y : D) :
                                                                      Type (max (max (max u_1 u_6) u_4) u_7)

                                                                      A right extension E : RightExtension L F is a pointwise right Kan extension at Y when E.coneAt Y is a limit cone.

                                                                      Equations
                                                                        Instances For

                                                                          The condition of being a pointwise right Kan extension at an object Y is unchanged by replacing Y by an isomorphic object Y'.

                                                                          Equations
                                                                            Instances For

                                                                              The condition of being a pointwise right Kan extension at an object Y is unchanged by replacing Y by an isomorphic object Y'.

                                                                              Equations
                                                                                Instances For

                                                                                  A pointwise right Kan extension of F along L applied to an object Y is isomorphic to limit (StructuredArrow.proj Y L ⋙ F).

                                                                                  Equations
                                                                                    Instances For
                                                                                      @[reducible, inline]
                                                                                      abbrev CategoryTheory.Functor.RightExtension.IsPointwiseRightKanExtension {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] {L : Functor C D} {F : Functor C H} (E : L.RightExtension F) :
                                                                                      Type (max (max (max (max u_2 u_7) u_6) u_4) u_1)

                                                                                      A right extension E : RightExtension L F is a pointwise right Kan extension when it is a pointwise right Kan extension at any object.

                                                                                      Equations
                                                                                        Instances For

                                                                                          If two right extensions E and E' are isomorphic, E is a pointwise right Kan extension at Y iff E' is.

                                                                                          Equations
                                                                                            Instances For

                                                                                              If two right extensions E and E' are isomorphic, E is a pointwise right Kan extension iff E' is.

                                                                                              Equations
                                                                                                Instances For

                                                                                                  The (unique) morphism to a pointwise right Kan extension.

                                                                                                  Equations
                                                                                                    Instances For

                                                                                                      A pointwise right Kan extension is universal, i.e. it is a right Kan extension.

                                                                                                      Equations
                                                                                                        Instances For

                                                                                                          The constructed pointwise left Kan extension when HasPointwiseLeftKanExtension L F holds.

                                                                                                          Equations
                                                                                                            Instances For
                                                                                                              @[simp]
                                                                                                              theorem CategoryTheory.Functor.pointwiseLeftKanExtension_map {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] (L : Functor C D) (F : Functor C H) [L.HasPointwiseLeftKanExtension F] {Y₁ Y₂ : D} (f : Y₁ Y₂) :

                                                                                                              The unit of the constructed pointwise left Kan extension when HasPointwiseLeftKanExtension L F holds.

                                                                                                              Equations
                                                                                                                Instances For

                                                                                                                  An auxiliary cocone used in the lemma pointwiseLeftKanExtension_desc_app

                                                                                                                  Equations
                                                                                                                    Instances For
                                                                                                                      @[simp]
                                                                                                                      theorem CategoryTheory.Functor.costructuredArrowMapCocone_pt {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] (L : Functor C D) (F : Functor C H) (G : Functor D H) (α : F L.comp G) (Y : D) :
                                                                                                                      @[simp]
                                                                                                                      theorem CategoryTheory.Functor.costructuredArrowMapCocone_ι_app {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] (L : Functor C D) (F : Functor C H) (G : Functor D H) (α : F L.comp G) (Y : D) (f : CostructuredArrow L Y) :

                                                                                                                      If F admits a pointwise left Kan extension along L, then any left Kan extension of F along L is a pointwise left Kan extension.

                                                                                                                      Equations
                                                                                                                        Instances For

                                                                                                                          The constructed pointwise right Kan extension when HasPointwiseRightKanExtension L F holds.

                                                                                                                          Equations
                                                                                                                            Instances For
                                                                                                                              @[simp]
                                                                                                                              theorem CategoryTheory.Functor.pointwiseRightKanExtension_map {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] (L : Functor C D) (F : Functor C H) [L.HasPointwiseRightKanExtension F] {Y₁ Y₂ : D} (f : Y₁ Y₂) :
                                                                                                                              (L.pointwiseRightKanExtension F).map f = Limits.limit.lift ((StructuredArrow.proj Y₂ L).comp F) { pt := Limits.limit ((StructuredArrow.proj Y₁ L).comp F), π := { app := fun (g : StructuredArrow Y₂ L) => Limits.limit.π ((StructuredArrow.proj Y₁ L).comp F) ((StructuredArrow.map f).obj g), naturality := } }

                                                                                                                              The counit of the constructed pointwise right Kan extension when HasPointwiseRightKanExtension L F holds.

                                                                                                                              Equations
                                                                                                                                Instances For
                                                                                                                                  def CategoryTheory.Functor.structuredArrowMapCone {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] (L : Functor C D) (F : Functor C H) (G : Functor D H) (α : L.comp G F) (Y : D) :

                                                                                                                                  An auxiliary cocone used in the lemma pointwiseRightKanExtension_lift_app

                                                                                                                                  Equations
                                                                                                                                    Instances For
                                                                                                                                      @[simp]
                                                                                                                                      theorem CategoryTheory.Functor.structuredArrowMapCone_π_app {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] (L : Functor C D) (F : Functor C H) (G : Functor D H) (α : L.comp G F) (Y : D) (f : StructuredArrow Y L) :
                                                                                                                                      @[simp]
                                                                                                                                      theorem CategoryTheory.Functor.structuredArrowMapCone_pt {C : Type u_1} {D : Type u_2} {H : Type u_4} [Category.{u_5, u_1} C] [Category.{u_6, u_2} D] [Category.{u_7, u_4} H] (L : Functor C D) (F : Functor C H) (G : Functor D H) (α : L.comp G F) (Y : D) :
                                                                                                                                      (L.structuredArrowMapCone F G α Y).pt = G.obj Y

                                                                                                                                      If F admits a pointwise right Kan extension along L, then any right Kan extension of F along L is a pointwise right Kan extension.

                                                                                                                                      Equations
                                                                                                                                        Instances For