Documentation

Mathlib.CategoryTheory.Bicategory.Modification.Oplax

Modifications between transformations of oplax functors #

In this file we define modifications of oplax and strong transformations of oplax functors.

A modification Γ between oplax transformations η and θ (of oplax functors) consists of a family of 2-morphisms Γ.app a : η.app a ⟶ θ.app a, which for all 1-morphisms f : a ⟶ b satisfies the equation (F.map f ◁ app b) ≫ θ.naturality f = η.naturality f ≫ (app a ▷ G.map f).

Modifications between strong transformations are defined similarly.

Main definitions #

Given two oplax functors F and G, we define:

structure CategoryTheory.Oplax.OplaxTrans.Modification {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} (η θ : F G) :
Type (max u₁ w₂)

A modification Γ between oplax natural transformations η and θ consists of a family of 2-morphisms Γ.app a : η.app a ⟶ θ.app a, which satisfies the equation (F.map f ◁ app b) ≫ θ.naturality f = η.naturality f ≫ (app a ▷ G.map f) for each 1-morphism f : a ⟶ b.

Instances For
    theorem CategoryTheory.Oplax.OplaxTrans.Modification.ext_iff {B : Type u₁} {inst✝ : Bicategory B} {C : Type u₂} {inst✝¹ : Bicategory C} {F G : OplaxFunctor B C} {η θ : F G} {x y : Modification η θ} :
    x = y x.app = y.app
    theorem CategoryTheory.Oplax.OplaxTrans.Modification.ext {B : Type u₁} {inst✝ : Bicategory B} {C : Type u₂} {inst✝¹ : Bicategory C} {F G : OplaxFunctor B C} {η θ : F G} {x y : Modification η θ} (app : x.app = y.app) :
    x = y
    @[simp]
    theorem CategoryTheory.Oplax.OplaxTrans.Modification.naturality_assoc {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ : F G} (self : Modification η θ) {a b : B} (f : a b) {Z : F.obj a G.obj b} (h : CategoryStruct.comp (θ.app a) (G.map f) Z) :
    def CategoryTheory.Oplax.OplaxTrans.Modification.id {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} (η : F G) :

    The identity modification.

    Equations
    Instances For
      @[simp]
      theorem CategoryTheory.Oplax.OplaxTrans.Modification.id_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} (η : F G) (a : B) :
      (id η).app a = CategoryStruct.id (η.app a)
      def CategoryTheory.Oplax.OplaxTrans.Modification.vcomp {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ ι : F G} (Γ : Modification η θ) (Δ : Modification θ ι) :

      Vertical composition of modifications.

      Equations
      Instances For
        @[simp]
        theorem CategoryTheory.Oplax.OplaxTrans.Modification.vcomp_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ ι : F G} (Γ : Modification η θ) (Δ : Modification θ ι) (a : B) :
        (Γ.vcomp Δ).app a = CategoryStruct.comp (Γ.app a) (Δ.app a)

        Category structure on the oplax natural transformations between OplaxFunctors.

        Note that this a scoped instance in the Oplax.OplaxTrans namespace.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem CategoryTheory.Oplax.OplaxTrans.homCategory_id_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F G : OplaxFunctor B C) (η : F G) (a : B) :
          @[simp]
          theorem CategoryTheory.Oplax.OplaxTrans.homCategory_comp_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F G : OplaxFunctor B C) {X✝ Y✝ Z✝ : F G} (Γ : Modification X✝ Y✝) (Δ : Modification Y✝ Z✝) (a : B) :
          theorem CategoryTheory.Oplax.OplaxTrans.homCategory.ext {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {α β : F G} {m n : α β} (w : ∀ (b : B), m.app b = n.app b) :
          m = n
          theorem CategoryTheory.Oplax.OplaxTrans.homCategory.ext_iff {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {α β : F G} {m n : α β} :
          m = n ∀ (b : B), m.app b = n.app b
          @[simp]
          theorem CategoryTheory.Oplax.OplaxTrans.Modification.id_app' {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {X : B} {F G : OplaxFunctor B C} (α : F G) :

          Version of Modification.id_app using category notation

          @[simp]
          theorem CategoryTheory.Oplax.OplaxTrans.Modification.comp_app' {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {X : B} {F G : OplaxFunctor B C} {α β γ : F G} (m : α β) (n : β γ) :

          Version of Modification.comp_app using category notation

          def CategoryTheory.Oplax.OplaxTrans.isoMk {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ : F G} (app : (a : B) → η.app a θ.app a) (naturality : ∀ {a b : B} (f : a b), CategoryStruct.comp (Bicategory.whiskerLeft (F.map f) (app b).hom) (θ.naturality f) = CategoryStruct.comp (η.naturality f) (Bicategory.whiskerRight (app a).hom (G.map f)) := by cat_disch) :
          η θ

          Construct a modification isomorphism between oplax natural transformations by giving object level isomorphisms, and checking naturality only in the forward direction.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem CategoryTheory.Oplax.OplaxTrans.isoMk_hom_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ : F G} (app : (a : B) → η.app a θ.app a) (naturality : ∀ {a b : B} (f : a b), CategoryStruct.comp (Bicategory.whiskerLeft (F.map f) (app b).hom) (θ.naturality f) = CategoryStruct.comp (η.naturality f) (Bicategory.whiskerRight (app a).hom (G.map f)) := by cat_disch) (a : B) :
            (isoMk app naturality).hom.app a = (app a).hom
            @[simp]
            theorem CategoryTheory.Oplax.OplaxTrans.isoMk_inv_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ : F G} (app : (a : B) → η.app a θ.app a) (naturality : ∀ {a b : B} (f : a b), CategoryStruct.comp (Bicategory.whiskerLeft (F.map f) (app b).hom) (θ.naturality f) = CategoryStruct.comp (η.naturality f) (Bicategory.whiskerRight (app a).hom (G.map f)) := by cat_disch) (a : B) :
            (isoMk app naturality).inv.app a = (app a).inv
            @[deprecated CategoryTheory.Oplax.OplaxTrans.isoMk (since := "2025-11-11")]
            def CategoryTheory.Oplax.OplaxTrans.ModificationIso.ofComponents {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ : F G} (app : (a : B) → η.app a θ.app a) (naturality : ∀ {a b : B} (f : a b), CategoryStruct.comp (Bicategory.whiskerLeft (F.map f) (app b).hom) (θ.naturality f) = CategoryStruct.comp (η.naturality f) (Bicategory.whiskerRight (app a).hom (G.map f)) := by cat_disch) :
            η θ

            Alias of CategoryTheory.Oplax.OplaxTrans.isoMk.


            Construct a modification isomorphism between oplax natural transformations by giving object level isomorphisms, and checking naturality only in the forward direction.

            Equations
            Instances For
              structure CategoryTheory.Oplax.StrongTrans.Modification {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} (η θ : F G) :
              Type (max u₁ w₂)

              A modification Γ between strong natural transformations η and θ (between oplax functors) consists of a family of 2-morphisms Γ.app a : η.app a ⟶ θ.app a, which satisfies the equation (F.map f ◁ app b) ≫ (θ.naturality f).hom = (η.naturality f).hom ≫ (app a ▷ G.map f) for each 1-morphism f : a ⟶ b.

              Instances For
                theorem CategoryTheory.Oplax.StrongTrans.Modification.ext_iff {B : Type u₁} {inst✝ : Bicategory B} {C : Type u₂} {inst✝¹ : Bicategory C} {F G : OplaxFunctor B C} {η θ : F G} {x y : Modification η θ} :
                x = y x.app = y.app
                theorem CategoryTheory.Oplax.StrongTrans.Modification.ext {B : Type u₁} {inst✝ : Bicategory B} {C : Type u₂} {inst✝¹ : Bicategory C} {F G : OplaxFunctor B C} {η θ : F G} {x y : Modification η θ} (app : x.app = y.app) :
                x = y
                @[simp]
                theorem CategoryTheory.Oplax.StrongTrans.Modification.naturality_assoc {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ : F G} (self : Modification η θ) {a b : B} (f : a b) {Z : F.obj a G.obj b} (h : CategoryStruct.comp (θ.app a) (G.map f) Z) :

                The modification between the underlying strong transformations of oplax functors

                Equations
                • Γ.toOplax = { app := fun (a : B) => Γ.app a, naturality := }
                Instances For
                  @[simp]
                  theorem CategoryTheory.Oplax.StrongTrans.Modification.toOplax_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ : F G} (Γ : Modification η θ) (a : B) :
                  Γ.toOplax.app a = Γ.app a

                  The modification between strong transformations of oplax functors associated to a modification between the underlying oplax transformations.

                  Equations
                  Instances For

                    Modifications between strong transformations of oplax functors are equivalent to modifications between the underlying oplax transformations.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      def CategoryTheory.Oplax.StrongTrans.Modification.id {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} (η : F G) :

                      The identity modification.

                      Equations
                      Instances For
                        @[simp]
                        theorem CategoryTheory.Oplax.StrongTrans.Modification.id_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} (η : F G) (a : B) :
                        (id η).app a = CategoryStruct.id (η.app a)
                        def CategoryTheory.Oplax.StrongTrans.Modification.vcomp {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ ι : F G} (Γ : Modification η θ) (Δ : Modification θ ι) :

                        Vertical composition of modifications.

                        Equations
                        Instances For
                          @[simp]
                          theorem CategoryTheory.Oplax.StrongTrans.Modification.vcomp_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ ι : F G} (Γ : Modification η θ) (Δ : Modification θ ι) (a : B) :
                          (Γ.vcomp Δ).app a = CategoryStruct.comp (Γ.app a) (Δ.app a)

                          Category structure on the strong natural transformations between oplax functors.

                          Note that this a scoped instance in the Oplax.StrongTrans namespace.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            @[simp]
                            theorem CategoryTheory.Oplax.StrongTrans.homCategory_id_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} (η : F G) (a : B) :
                            @[simp]
                            theorem CategoryTheory.Oplax.StrongTrans.homCategory_comp_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {X✝ Y✝ Z✝ : F G} (Γ : Modification X✝ Y✝) (Δ : Modification Y✝ Z✝) (a : B) :
                            theorem CategoryTheory.Oplax.StrongTrans.homCategory.ext {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ : F G} {m n : η θ} (w : ∀ (b : B), m.app b = n.app b) :
                            m = n
                            theorem CategoryTheory.Oplax.StrongTrans.homCategory.ext_iff {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ : F G} {m n : η θ} :
                            m = n ∀ (b : B), m.app b = n.app b
                            def CategoryTheory.Oplax.StrongTrans.isoMk {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ : F G} (app : (a : B) → η.app a θ.app a) (naturality : ∀ {a b : B} (f : a b), CategoryStruct.comp (Bicategory.whiskerLeft (F.map f) (app b).hom) (θ.naturality f).hom = CategoryStruct.comp (η.naturality f).hom (Bicategory.whiskerRight (app a).hom (G.map f)) := by cat_disch) :
                            η θ

                            Construct a modification isomorphism between strong natural transformations (of oplax functors) by giving object level isomorphisms, and checking naturality only in the forward direction.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[simp]
                              theorem CategoryTheory.Oplax.StrongTrans.isoMk_hom_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ : F G} (app : (a : B) → η.app a θ.app a) (naturality : ∀ {a b : B} (f : a b), CategoryStruct.comp (Bicategory.whiskerLeft (F.map f) (app b).hom) (θ.naturality f).hom = CategoryStruct.comp (η.naturality f).hom (Bicategory.whiskerRight (app a).hom (G.map f)) := by cat_disch) (a : B) :
                              (isoMk app naturality).hom.app a = (app a).hom
                              @[simp]
                              theorem CategoryTheory.Oplax.StrongTrans.isoMk_inv_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {η θ : F G} (app : (a : B) → η.app a θ.app a) (naturality : ∀ {a b : B} (f : a b), CategoryStruct.comp (Bicategory.whiskerLeft (F.map f) (app b).hom) (θ.naturality f).hom = CategoryStruct.comp (η.naturality f).hom (Bicategory.whiskerRight (app a).hom (G.map f)) := by cat_disch) (a : B) :
                              (isoMk app naturality).inv.app a = (app a).inv