Documentation

Mathlib.CategoryTheory.CatCommSq

2-commutative squares of functors #

Similarly as CommSq.lean defines the notion of commutative squares, this file introduces the notion of 2-commutative squares of functors.

If T : C₁ ⥤ C₂, L : C₁ ⥤ C₃, R : C₂ ⥤ C₄, B : C₃ ⥤ C₄ are functors, then [CatCommSq T L R B] contains the datum of an isomorphism T ⋙ R ≅ L ⋙ B.

Future work: using this notion in the development of the localization of categories (e.g. localization of adjunctions).

class CategoryTheory.CatCommSq {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] (T : Functor C₁ C₂) (L : Functor C₁ C₃) (R : Functor C₂ C₄) (B : Functor C₃ C₄) :
Type (max u_1 u_10)

CatCommSq T L R B expresses that there is a 2-commutative square of functors, where the functors T, L, R and B are respectively the left, top, right and bottom functors of the square.

  • iso' : T.comp R L.comp B

    the isomorphism corresponding to a 2-commutative diagram

Instances
    theorem CategoryTheory.CatCommSq.ext {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {inst✝ : Category.{u_7, u_1} C₁} {inst✝¹ : Category.{u_8, u_2} C₂} {inst✝² : Category.{u_9, u_3} C₃} {inst✝³ : Category.{u_10, u_4} C₄} {T : Functor C₁ C₂} {L : Functor C₁ C₃} {R : Functor C₂ C₄} {B : Functor C₃ C₄} {x y : CatCommSq T L R B} (iso' : iso' = iso') :
    x = y
    def CategoryTheory.CatCommSq.iso {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] (T : Functor C₁ C₂) (L : Functor C₁ C₃) (R : Functor C₂ C₄) (B : Functor C₃ C₄) [h : CatCommSq T L R B] :
    T.comp R L.comp B

    Assuming [CatCommSq T L R B], iso T L R B is the isomorphism T ⋙ R ≅ L ⋙ B given by the 2-commutative square.

    Equations
    Instances For
      def CategoryTheory.CatCommSq.hComp {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {C₅ : Type u_5} {C₆ : Type u_6} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] [Category.{u_11, u_5} C₅] [Category.{u_12, u_6} C₆] (T₁ : Functor C₁ C₂) (T₂ : Functor C₂ C₃) (V₁ : Functor C₁ C₄) (V₂ : Functor C₂ C₅) (V₃ : Functor C₃ C₆) (B₁ : Functor C₄ C₅) (B₂ : Functor C₅ C₆) [CatCommSq T₁ V₁ V₂ B₁] [CatCommSq T₂ V₂ V₃ B₂] :
      CatCommSq (T₁.comp T₂) V₁ V₃ (B₁.comp B₂)

      Horizontal composition of 2-commutative squares

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem CategoryTheory.CatCommSq.hComp_iso'_inv_app {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {C₅ : Type u_5} {C₆ : Type u_6} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] [Category.{u_11, u_5} C₅] [Category.{u_12, u_6} C₆] (T₁ : Functor C₁ C₂) (T₂ : Functor C₂ C₃) (V₁ : Functor C₁ C₄) (V₂ : Functor C₂ C₅) (V₃ : Functor C₃ C₆) (B₁ : Functor C₄ C₅) (B₂ : Functor C₅ C₆) [CatCommSq T₁ V₁ V₂ B₁] [CatCommSq T₂ V₂ V₃ B₂] (X : C₁) :
        iso'.inv.app X = CategoryStruct.comp (B₂.map ((iso T₁ V₁ V₂ B₁).inv.app X)) ((iso T₂ V₂ V₃ B₂).inv.app (T₁.obj X))
        @[simp]
        theorem CategoryTheory.CatCommSq.hComp_iso'_hom_app {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {C₅ : Type u_5} {C₆ : Type u_6} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] [Category.{u_11, u_5} C₅] [Category.{u_12, u_6} C₆] (T₁ : Functor C₁ C₂) (T₂ : Functor C₂ C₃) (V₁ : Functor C₁ C₄) (V₂ : Functor C₂ C₅) (V₃ : Functor C₃ C₆) (B₁ : Functor C₄ C₅) (B₂ : Functor C₅ C₆) [CatCommSq T₁ V₁ V₂ B₁] [CatCommSq T₂ V₂ V₃ B₂] (X : C₁) :
        iso'.hom.app X = CategoryStruct.comp ((iso T₂ V₂ V₃ B₂).hom.app (T₁.obj X)) (B₂.map ((iso T₁ V₁ V₂ B₁).hom.app X))
        def CategoryTheory.CatCommSq.vComp {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {C₅ : Type u_5} {C₆ : Type u_6} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] [Category.{u_11, u_5} C₅] [Category.{u_12, u_6} C₆] (L₁ : Functor C₁ C₂) (L₂ : Functor C₂ C₃) (H₁ : Functor C₁ C₄) (H₂ : Functor C₂ C₅) (H₃ : Functor C₃ C₆) (R₁ : Functor C₄ C₅) (R₂ : Functor C₅ C₆) [CatCommSq H₁ L₁ R₁ H₂] [CatCommSq H₂ L₂ R₂ H₃] :
        CatCommSq H₁ (L₁.comp L₂) (R₁.comp R₂) H₃

        Vertical composition of 2-commutative squares

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem CategoryTheory.CatCommSq.vComp_iso'_inv_app {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {C₅ : Type u_5} {C₆ : Type u_6} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] [Category.{u_11, u_5} C₅] [Category.{u_12, u_6} C₆] (L₁ : Functor C₁ C₂) (L₂ : Functor C₂ C₃) (H₁ : Functor C₁ C₄) (H₂ : Functor C₂ C₅) (H₃ : Functor C₃ C₆) (R₁ : Functor C₄ C₅) (R₂ : Functor C₅ C₆) [CatCommSq H₁ L₁ R₁ H₂] [CatCommSq H₂ L₂ R₂ H₃] (X : C₁) :
          iso'.inv.app X = CategoryStruct.comp ((iso H₂ L₂ R₂ H₃).inv.app (L₁.obj X)) (R₂.map ((iso H₁ L₁ R₁ H₂).inv.app X))
          @[simp]
          theorem CategoryTheory.CatCommSq.vComp_iso'_hom_app {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} {C₅ : Type u_5} {C₆ : Type u_6} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] [Category.{u_11, u_5} C₅] [Category.{u_12, u_6} C₆] (L₁ : Functor C₁ C₂) (L₂ : Functor C₂ C₃) (H₁ : Functor C₁ C₄) (H₂ : Functor C₂ C₅) (H₃ : Functor C₃ C₆) (R₁ : Functor C₄ C₅) (R₂ : Functor C₅ C₆) [CatCommSq H₁ L₁ R₁ H₂] [CatCommSq H₂ L₂ R₂ H₃] (X : C₁) :
          iso'.hom.app X = CategoryStruct.comp (R₂.map ((iso H₁ L₁ R₁ H₂).hom.app X)) ((iso H₂ L₂ R₂ H₃).hom.app (L₁.obj X))
          def CategoryTheory.CatCommSq.hInv {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] (T : C₁ C₂) (L : Functor C₁ C₃) (R : Functor C₂ C₄) (B : C₃ C₄) :
          CatCommSq T.functor L R B.functorCatCommSq T.inverse R L B.inverse

          Horizontal inverse of a 2-commutative square

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem CategoryTheory.CatCommSq.hInv_iso'_hom_app {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] (T : C₁ C₂) (L : Functor C₁ C₃) (R : Functor C₂ C₄) (B : C₃ C₄) (x✝ : CatCommSq T.functor L R B.functor) (X : C₂) :
            iso'.hom.app X = CategoryStruct.comp (B.unitIso.hom.app (L.obj (T.inverse.obj X))) (CategoryStruct.comp (B.inverse.map ((iso T.functor L R B.functor).inv.app (T.inverse.obj X))) (B.inverse.map (R.map (T.counitIso.hom.app X))))
            @[simp]
            theorem CategoryTheory.CatCommSq.hInv_iso'_inv_app {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] (T : C₁ C₂) (L : Functor C₁ C₃) (R : Functor C₂ C₄) (B : C₃ C₄) (x✝ : CatCommSq T.functor L R B.functor) (X : C₂) :
            iso'.inv.app X = CategoryStruct.comp (B.inverse.map (R.map (T.counitIso.inv.app X))) (CategoryStruct.comp (B.inverse.map ((iso T.functor L R B.functor).hom.app (T.inverse.obj X))) (B.unitIso.inv.app (L.obj (T.inverse.obj X))))
            theorem CategoryTheory.CatCommSq.hInv_hInv {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} [Category.{u_8, u_1} C₁] [Category.{u_9, u_2} C₂] [Category.{u_10, u_3} C₃] [Category.{u_7, u_4} C₄] (T : C₁ C₂) (L : Functor C₁ C₃) (R : Functor C₂ C₄) (B : C₃ C₄) (h : CatCommSq T.functor L R B.functor) :
            hInv T.symm R L B.symm (hInv T L R B h) = h
            def CategoryTheory.CatCommSq.hInvEquiv {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] (T : C₁ C₂) (L : Functor C₁ C₃) (R : Functor C₂ C₄) (B : C₃ C₄) :
            CatCommSq T.functor L R B.functor CatCommSq T.inverse R L B.inverse

            In a square of categories, when the top and bottom functors are part of equivalence of categories, it is equivalent to show 2-commutativity for the functors of these equivalences or for their inverses.

            Equations
            Instances For
              def CategoryTheory.CatCommSq.vInv {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] (T : Functor C₁ C₂) (L : C₁ C₃) (R : C₂ C₄) (B : Functor C₃ C₄) :
              CatCommSq T L.functor R.functor BCatCommSq B L.inverse R.inverse T

              Vertical inverse of a 2-commutative square

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem CategoryTheory.CatCommSq.vInv_iso'_hom_app {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] (T : Functor C₁ C₂) (L : C₁ C₃) (R : C₂ C₄) (B : Functor C₃ C₄) (x✝ : CatCommSq T L.functor R.functor B) (X : C₃) :
                iso'.hom.app X = CategoryStruct.comp (R.inverse.map (B.map (L.counitIso.inv.app X))) (CategoryStruct.comp (R.inverse.map ((iso T L.functor R.functor B).inv.app (L.inverse.obj X))) (R.unitIso.inv.app (T.obj (L.inverse.obj X))))
                @[simp]
                theorem CategoryTheory.CatCommSq.vInv_iso'_inv_app {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] (T : Functor C₁ C₂) (L : C₁ C₃) (R : C₂ C₄) (B : Functor C₃ C₄) (x✝ : CatCommSq T L.functor R.functor B) (X : C₃) :
                iso'.inv.app X = CategoryStruct.comp (R.unitIso.hom.app (T.obj (L.inverse.obj X))) (CategoryStruct.comp (R.inverse.map ((iso T L.functor R.functor B).hom.app (L.inverse.obj X))) (R.inverse.map (B.map (L.counitIso.hom.app X))))
                theorem CategoryTheory.CatCommSq.vInv_vInv {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} [Category.{u_8, u_1} C₁] [Category.{u_9, u_2} C₂] [Category.{u_10, u_3} C₃] [Category.{u_7, u_4} C₄] (T : Functor C₁ C₂) (L : C₁ C₃) (R : C₂ C₄) (B : Functor C₃ C₄) (h : CatCommSq T L.functor R.functor B) :
                vInv B L.symm R.symm T (vInv T L R B h) = h
                def CategoryTheory.CatCommSq.vInvEquiv {C₁ : Type u_1} {C₂ : Type u_2} {C₃ : Type u_3} {C₄ : Type u_4} [Category.{u_7, u_1} C₁] [Category.{u_8, u_2} C₂] [Category.{u_9, u_3} C₃] [Category.{u_10, u_4} C₄] (T : Functor C₁ C₂) (L : C₁ C₃) (R : C₂ C₄) (B : Functor C₃ C₄) :
                CatCommSq T L.functor R.functor B CatCommSq B L.inverse R.inverse T

                In a square of categories, when the left and right functors are part of equivalence of categories, it is equivalent to show 2-commutativity for the functors of these equivalences or for their inverses.

                Equations
                Instances For