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)
        structure CategoryTheory.Oplax.OplaxTrans.Hom {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} (η θ : F G) :
        Type (max u₁ w₂)

        Type-alias for modifications between oplax transformations of oplax functors. This is the type used for the 2-homomorphisms in the bicategory of oplax functors equipped with oplax transformations.

        • of :: (
          • as : Modification η θ

            The underlying modification of oplax transformations.

        • )
        Instances For
          theorem CategoryTheory.Oplax.OplaxTrans.Hom.ext_iff {B : Type u₁} {inst✝ : Bicategory B} {C : Type u₂} {inst✝¹ : Bicategory C} {F G : OplaxFunctor B C} {η θ : F G} {x y : Hom η θ} :
          x = y x.as = y.as
          theorem CategoryTheory.Oplax.OplaxTrans.Hom.ext {B : Type u₁} {inst✝ : Bicategory B} {C : Type u₂} {inst✝¹ : Bicategory C} {F G : OplaxFunctor B C} {η θ : F G} {x y : Hom η θ} (as : x.as = y.as) :
          x = y

          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_comp_as_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {X✝ Y✝ Z✝ : F G} (Γ : Hom X✝ Y✝) (Δ : Hom Y✝ Z✝) (a : B) :
            @[simp]
            theorem CategoryTheory.Oplax.OplaxTrans.homCategory_id_as_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} (Γ : F G) (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.as.app b = n.as.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.as.app b = n.as.app b
            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_as_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.as.app a = (app a).hom
              @[simp]
              theorem CategoryTheory.Oplax.OplaxTrans.isoMk_inv_as_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.as.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)
                            structure CategoryTheory.Oplax.StrongTrans.Hom {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} (η θ : F G) :
                            Type (max u₁ w₂)

                            Type-alias for modifications between strong transformations of oplax functors. This is the type used for the 2-homomorphisms in the bicategory of oplax functors equipped with strong transformations.

                            • of :: (
                              • as : Modification η θ

                                The underlying modification of strong transformations.

                            • )
                            Instances For
                              theorem CategoryTheory.Oplax.StrongTrans.Hom.ext {B : Type u₁} {inst✝ : Bicategory B} {C : Type u₂} {inst✝¹ : Bicategory C} {F G : OplaxFunctor B C} {η θ : F G} {x y : Hom η θ} (as : x.as = y.as) :
                              x = y
                              theorem CategoryTheory.Oplax.StrongTrans.Hom.ext_iff {B : Type u₁} {inst✝ : Bicategory B} {C : Type u₂} {inst✝¹ : Bicategory C} {F G : OplaxFunctor B C} {η θ : F G} {x y : Hom η θ} :
                              x = y x.as = y.as

                              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_comp_as_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} {X✝ Y✝ Z✝ : F G} (Γ : Hom X✝ Y✝) (Δ : Hom Y✝ Z✝) (a : B) :
                                @[simp]
                                theorem CategoryTheory.Oplax.StrongTrans.homCategory_id_as_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : OplaxFunctor B C} (Γ : F G) (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.as.app b = n.as.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.as.app b = n.as.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_as_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.as.app a = (app a).hom
                                  @[simp]
                                  theorem CategoryTheory.Oplax.StrongTrans.isoMk_inv_as_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.as.app a = (app a).inv