Documentation

Mathlib.CategoryTheory.Bicategory.Kan.HasKan

Existence of Kan extensions and Kan lifts in bicategories #

We provide the propositional typeclass HasLeftKanExtension f g, which asserts that there exists a left Kan extension of g along f. See CategoryTheory.Bicategory.Kan.IsKan for the definition of left Kan extensions. Under the assumption that HasLeftKanExtension f g, we define the left Kan extension lan f g by using the axiom of choice.

Main definitions #

These notations are inspired by M. Kashiwara, P. Schapira, Categories and Sheaves.

TODO #

class CategoryTheory.Bicategory.HasLeftKanExtension {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) :

The existence of a left Kan extension of g along f.

Instances
    theorem CategoryTheory.Bicategory.LeftExtension.IsKan.hasLeftKanExtension {B : Type u} [Bicategory B] {a b c : B} {f : a b} {g : a c} {t : LeftExtension f g} (H : t.IsKan) :
    def CategoryTheory.Bicategory.lanLeftExtension {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] :

    The left Kan extension of g along f at the level of structured arrows.

    Equations
    Instances For
      def CategoryTheory.Bicategory.lan {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] :
      b c

      The left Kan extension of g along f.

      Equations
      Instances For

        f⁺ g is the left Kan extension of g along f.

          b
          △ \
          |   \ f⁺ g
        f |     \
          |       ◿
          a - - - ▷ c
              g
        
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem CategoryTheory.Bicategory.lanLeftExtension_extension {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] :
          (lanLeftExtension f g).extension = lan f g
          def CategoryTheory.Bicategory.lanUnit {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] :

          The unit for the left Kan extension f⁺ g.

          Equations
          Instances For
            @[simp]
            theorem CategoryTheory.Bicategory.lanLeftExtension_unit {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] :
            (lanLeftExtension f g).unit = lanUnit f g
            def CategoryTheory.Bicategory.lanIsKan {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] :
            (lanLeftExtension f g).IsKan

            Evidence that the Lan.extension f g is a Kan extension.

            Equations
            Instances For
              def CategoryTheory.Bicategory.lanDesc {B : Type u} [Bicategory B] {a b c : B} {f : a b} {g : a c} [HasLeftKanExtension f g] (s : LeftExtension f g) :
              lan f g s.extension

              The family of 2-morphisms out of the left Kan extension f⁺ g.

              Equations
              Instances For
                @[simp]
                theorem CategoryTheory.Bicategory.lanUnit_desc {B : Type u} [Bicategory B] {a b c : B} {f : a b} {g : a c} [HasLeftKanExtension f g] (s : LeftExtension f g) :
                @[simp]
                theorem CategoryTheory.Bicategory.lanUnit_desc_assoc {B : Type u} [Bicategory B] {a b c : B} {f : a b} {g : a c} [HasLeftKanExtension f g] (s : LeftExtension f g) {Z : a c} (h : CategoryStruct.comp f s.extension Z) :
                @[simp]
                theorem CategoryTheory.Bicategory.lanIsKan_desc {B : Type u} [Bicategory B] {a b c : B} {f : a b} {g : a c} [HasLeftKanExtension f g] (s : LeftExtension f g) :
                (lanIsKan f g).desc s = lanDesc s
                theorem CategoryTheory.Bicategory.Lan.existsUnique {B : Type u} [Bicategory B] {a b c : B} {f : a b} {g : a c} [HasLeftKanExtension f g] (s : LeftExtension f g) :
                ∃! τ : lan f g s.extension, CategoryStruct.comp (lanUnit f g) (whiskerLeft f τ) = s.unit
                class CategoryTheory.Bicategory.Lan.CommuteWith {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] {x : B} (h : c x) :

                We say that a 1-morphism h commutes with the left Kan extension f⁺ g if the whiskered left extension for f⁺ g by h is a Kan extension of g ≫ h along f.

                Instances
                  theorem CategoryTheory.Bicategory.Lan.CommuteWith.of_isKan_whisker {B : Type u} [Bicategory B] {a b c : B} {f : a b} {g : a c} [HasLeftKanExtension f g] (t : LeftExtension f g) {x : B} (h : c x) (H : (t.whisker h).IsKan) (i : t.whisker h (lanLeftExtension f g).whisker h) :
                  def CategoryTheory.Bicategory.Lan.CommuteWith.isKan {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] {x : B} (h : c x) [CommuteWith f g h] :
                  ((lanLeftExtension f g).whisker h).IsKan

                  Evidence that h commutes with the left Kan extension f⁺ g.

                  Equations
                  Instances For
                    def CategoryTheory.Bicategory.Lan.CommuteWith.isKanWhisker {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] (t : LeftExtension f g) (H : t.IsKan) {x : B} (h : c x) [CommuteWith f g h] :
                    (t.whisker h).IsKan

                    If h commutes with f⁺ g and t is another left Kan extension of g along f, then t.whisker h is a left Kan extension of g ≫ h along f.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def CategoryTheory.Bicategory.Lan.CommuteWith.lanCompIsoWhisker {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] {x : B} (h : c x) [CommuteWith f g h] :

                      The isomorphism f⁺ (g ≫ h) ≅ f⁺ g ≫ h at the level of structured arrows.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem CategoryTheory.Bicategory.Lan.CommuteWith.lanCompIsoWhisker_hom_right {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] {x : B} (h : c x) [CommuteWith f g h] :
                        (lanCompIsoWhisker f g h).hom.right = lanDesc ((lanLeftExtension f g).whisker h)
                        @[simp]
                        theorem CategoryTheory.Bicategory.Lan.CommuteWith.lanCompIsoWhisker_inv_right {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] {x : B} (h : c x) [CommuteWith f g h] :
                        (lanCompIsoWhisker f g h).inv.right = (isKan f g h).desc (lanLeftExtension f (CategoryStruct.comp g h))
                        def CategoryTheory.Bicategory.Lan.CommuteWith.lanCompIso {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] {x : B} (h : c x) [CommuteWith f g h] :

                        The 1-morphism h commutes with the left Kan extension f⁺ g.

                        Equations
                        Instances For
                          @[simp]
                          theorem CategoryTheory.Bicategory.Lan.CommuteWith.lanCompIso_hom {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] {x : B} (h : c x) [CommuteWith f g h] :
                          (lanCompIso f g h).hom = lanDesc ((lanLeftExtension f g).whisker h)
                          @[simp]
                          theorem CategoryTheory.Bicategory.Lan.CommuteWith.lanCompIso_inv {B : Type u} [Bicategory B] {a b c : B} (f : a b) (g : a c) [HasLeftKanExtension f g] {x : B} (h : c x) [CommuteWith f g h] :
                          (lanCompIso f g h).inv = (isKan f g h).desc (lanLeftExtension f (CategoryStruct.comp g h))

                          We say that there exists an absolute left Kan extension of g along f if any 1-morphism h commutes with the left Kan extension f⁺ g.

                          Instances
                            instance CategoryTheory.Bicategory.instCommuteWith {B : Type u} [Bicategory B] {a b c : B} {f : a b} {g : a c} [HasAbsLeftKanExtension f g] {x : B} (h : c x) :
                            theorem CategoryTheory.Bicategory.LeftExtension.IsAbsKan.hasAbsLeftKanExtension {B : Type u} [Bicategory B] {a b c : B} {f : a b} {g : a c} {t : LeftExtension f g} (H : t.IsAbsKan) :
                            class CategoryTheory.Bicategory.HasLeftKanLift {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) :

                            The existence of a left kan lift of g along f.

                            Instances
                              theorem CategoryTheory.Bicategory.LeftLift.IsKan.hasLeftKanLift {B : Type u} [Bicategory B] {a b c : B} {f : b a} {g : c a} {t : LeftLift f g} (H : t.IsKan) :
                              def CategoryTheory.Bicategory.lanLiftLeftLift {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] :

                              The left Kan lift of g along f at the level of structured arrows.

                              Equations
                              Instances For
                                def CategoryTheory.Bicategory.lanLift {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] :
                                c b

                                The left Kan lift of g along f.

                                Equations
                                Instances For

                                  f₊ g is the left Kan lift of g along f.

                                              b
                                            ◹ |
                                     f₊ g /   |
                                        /     | f
                                      /       ▽
                                    c - - - ▷ a
                                         g
                                  
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    @[simp]
                                    theorem CategoryTheory.Bicategory.lanLiftLeftLift_lift {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] :
                                    (lanLiftLeftLift f g).lift = lanLift f g
                                    def CategoryTheory.Bicategory.lanLiftUnit {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] :

                                    The unit for the left Kan lift f₊ g.

                                    Equations
                                    Instances For
                                      @[simp]
                                      theorem CategoryTheory.Bicategory.lanLiftLeftLift_unit {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] :
                                      def CategoryTheory.Bicategory.lanLiftIsKan {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] :
                                      (lanLiftLeftLift f g).IsKan

                                      Evidence that the LanLift.lift f g is a Kan lift.

                                      Equations
                                      Instances For
                                        def CategoryTheory.Bicategory.lanLiftDesc {B : Type u} [Bicategory B] {a b c : B} {f : b a} {g : c a} [HasLeftKanLift f g] (s : LeftLift f g) :
                                        lanLift f g s.lift

                                        The family of 2-morphisms out of the left Kan lift f₊ g.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.Bicategory.lanLiftUnit_desc {B : Type u} [Bicategory B] {a b c : B} {f : b a} {g : c a} [HasLeftKanLift f g] (s : LeftLift f g) :
                                          @[simp]
                                          theorem CategoryTheory.Bicategory.lanLiftUnit_desc_assoc {B : Type u} [Bicategory B] {a b c : B} {f : b a} {g : c a} [HasLeftKanLift f g] (s : LeftLift f g) {Z : c a} (h : CategoryStruct.comp s.lift f Z) :
                                          @[simp]
                                          theorem CategoryTheory.Bicategory.lanLiftIsKan_desc {B : Type u} [Bicategory B] {a b c : B} {f : b a} {g : c a} [HasLeftKanLift f g] (s : LeftLift f g) :
                                          (lanLiftIsKan f g).desc s = lanLiftDesc s
                                          theorem CategoryTheory.Bicategory.LanLift.existsUnique {B : Type u} [Bicategory B] {a b c : B} {f : b a} {g : c a} [HasLeftKanLift f g] (s : LeftLift f g) :
                                          ∃! τ : lanLift f g s.lift, CategoryStruct.comp (lanLiftUnit f g) (whiskerRight τ f) = s.unit
                                          class CategoryTheory.Bicategory.LanLift.CommuteWith {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] {x : B} (h : x c) :

                                          We say that a 1-morphism h commutes with the left Kan lift f₊ g if the whiskered left lift for f₊ g by h is a Kan lift of h ≫ g along f.

                                          Instances
                                            theorem CategoryTheory.Bicategory.LanLift.CommuteWith.of_isKan_whisker {B : Type u} [Bicategory B] {a b c : B} {f : b a} {g : c a} [HasLeftKanLift f g] (t : LeftLift f g) {x : B} (h : x c) (H : (t.whisker h).IsKan) (i : t.whisker h (lanLiftLeftLift f g).whisker h) :
                                            def CategoryTheory.Bicategory.LanLift.CommuteWith.isKan {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] {x : B} (h : x c) [CommuteWith f g h] :
                                            ((lanLiftLeftLift f g).whisker h).IsKan

                                            Evidence that h commutes with the left Kan lift f₊ g.

                                            Equations
                                            Instances For
                                              def CategoryTheory.Bicategory.LanLift.CommuteWith.isKanWhisker {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] (t : LeftLift f g) (H : t.IsKan) {x : B} (h : x c) [CommuteWith f g h] :
                                              (t.whisker h).IsKan

                                              If h commutes with f₊ g and t is another left Kan lift of g along f, then t.whisker h is a left Kan lift of h ≫ g along f.

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                def CategoryTheory.Bicategory.LanLift.CommuteWith.lanLiftCompIsoWhisker {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] {x : B} (h : x c) [CommuteWith f g h] :

                                                The isomorphism f₊ (h ≫ g) ≅ h ≫ f₊ g at the level of structured arrows.

                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  @[simp]
                                                  theorem CategoryTheory.Bicategory.LanLift.CommuteWith.lanLiftCompIsoWhisker_hom_right {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] {x : B} (h : x c) [CommuteWith f g h] :
                                                  (lanLiftCompIsoWhisker f g h).hom.right = lanLiftDesc ((lanLiftLeftLift f g).whisker h)
                                                  @[simp]
                                                  theorem CategoryTheory.Bicategory.LanLift.CommuteWith.lanLiftCompIsoWhisker_inv_right {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] {x : B} (h : x c) [CommuteWith f g h] :
                                                  (lanLiftCompIsoWhisker f g h).inv.right = (isKan f g h).desc (lanLiftLeftLift f (CategoryStruct.comp h g))
                                                  @[simp]
                                                  theorem CategoryTheory.Bicategory.LanLift.CommuteWith.lanLiftCompIso_inv {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] {x : B} (h : x c) [CommuteWith f g h] :
                                                  (lanLiftCompIso f g h).inv = (isKan f g h).desc (lanLiftLeftLift f (CategoryStruct.comp h g))
                                                  @[simp]
                                                  theorem CategoryTheory.Bicategory.LanLift.CommuteWith.lanLiftCompIso_hom {B : Type u} [Bicategory B] {a b c : B} (f : b a) (g : c a) [HasLeftKanLift f g] {x : B} (h : x c) [CommuteWith f g h] :
                                                  (lanLiftCompIso f g h).hom = lanLiftDesc ((lanLiftLeftLift f g).whisker h)

                                                  We say that there exists an absolute left Kan lift of g along f if any 1-morphism h commutes with the left Kan lift f₊ g.

                                                  Instances
                                                    instance CategoryTheory.Bicategory.instCommuteWith_1 {B : Type u} [Bicategory B] {a b c : B} {f : b a} {g : c a} [HasAbsLeftKanLift f g] {x : B} (h : x c) :
                                                    theorem CategoryTheory.Bicategory.LeftLift.IsAbsKan.hasAbsLeftKanLift {B : Type u} [Bicategory B] {a b c : B} {f : b a} {g : c a} {t : LeftLift f g} (H : t.IsAbsKan) :