Documentation

Mathlib.CategoryTheory.Comma.Arrow

The category of arrows #

The category of arrows, with morphisms commutative squares. We set this up as a specialization of the comma category Comma L R, where L and R are both the identity functor.

Tags #

comma, arrow

The arrow category of T has as objects all morphisms in T and as morphisms commutative squares in T.

Equations
Instances For
    theorem CategoryTheory.Arrow.hom_ext {T : Type u} [CategoryTheory.Category.{v, u} T] {X Y : CategoryTheory.Arrow T} (f g : X Y) (h₁ : f.left = g.left) (h₂ : f.right = g.right) :
    f = g

    An object in the arrow category is simply a morphism in T.

    Equations
    Instances For
      @[simp]
      @[simp]
      @[simp]
      Equations
      • CategoryTheory.Arrow.instCoeOutHom = { coe := CategoryTheory.Arrow.mk }

      A morphism in the arrow category is a commutative square connecting two objects of the arrow category.

      Equations
      Instances For

        We can also build a morphism in the arrow category out of any commutative square in T.

        Equations
        Instances For
          @[simp]
          theorem CategoryTheory.Arrow.homMk'_right {T : Type u} [CategoryTheory.Category.{v, u} T] {X Y : T} {f : X Y} {P Q : T} {g : P Q} {u : X P} {v : Y Q} (w : CategoryTheory.CategoryStruct.comp u g = CategoryTheory.CategoryStruct.comp f v) :
          @[simp]
          theorem CategoryTheory.Arrow.homMk'_left {T : Type u} [CategoryTheory.Category.{v, u} T] {X Y : T} {f : X Y} {P Q : T} {g : P Q} {u : X P} {v : Y Q} (w : CategoryTheory.CategoryStruct.comp u g = CategoryTheory.CategoryStruct.comp f v) :
          def CategoryTheory.Arrow.isoMk {T : Type u} [CategoryTheory.Category.{v, u} T] {f g : CategoryTheory.Arrow T} (l : f.left g.left) (r : f.right g.right) (h : CategoryTheory.CategoryStruct.comp l.hom g.hom = CategoryTheory.CategoryStruct.comp f.hom r.hom := by aesop_cat) :
          f g

          Create an isomorphism between arrows, by providing isomorphisms between the domains and codomains, and a proof that the square commutes.

          Equations
          Instances For
            @[simp]
            theorem CategoryTheory.Arrow.isoMk_hom_left {T : Type u} [CategoryTheory.Category.{v, u} T] {f g : CategoryTheory.Arrow T} (l : f.left g.left) (r : f.right g.right) (h : CategoryTheory.CategoryStruct.comp l.hom g.hom = CategoryTheory.CategoryStruct.comp f.hom r.hom := by aesop_cat) :
            (CategoryTheory.Arrow.isoMk l r h).hom.left = l.hom
            @[simp]
            theorem CategoryTheory.Arrow.isoMk_hom_right {T : Type u} [CategoryTheory.Category.{v, u} T] {f g : CategoryTheory.Arrow T} (l : f.left g.left) (r : f.right g.right) (h : CategoryTheory.CategoryStruct.comp l.hom g.hom = CategoryTheory.CategoryStruct.comp f.hom r.hom := by aesop_cat) :
            (CategoryTheory.Arrow.isoMk l r h).hom.right = r.hom
            @[simp]
            theorem CategoryTheory.Arrow.isoMk_inv_right {T : Type u} [CategoryTheory.Category.{v, u} T] {f g : CategoryTheory.Arrow T} (l : f.left g.left) (r : f.right g.right) (h : CategoryTheory.CategoryStruct.comp l.hom g.hom = CategoryTheory.CategoryStruct.comp f.hom r.hom := by aesop_cat) :
            (CategoryTheory.Arrow.isoMk l r h).inv.right = r.inv
            @[simp]
            theorem CategoryTheory.Arrow.isoMk_inv_left {T : Type u} [CategoryTheory.Category.{v, u} T] {f g : CategoryTheory.Arrow T} (l : f.left g.left) (r : f.right g.right) (h : CategoryTheory.CategoryStruct.comp l.hom g.hom = CategoryTheory.CategoryStruct.comp f.hom r.hom := by aesop_cat) :
            (CategoryTheory.Arrow.isoMk l r h).inv.left = l.inv
            @[reducible, inline]
            abbrev CategoryTheory.Arrow.isoMk' {T : Type u} [CategoryTheory.Category.{v, u} T] {W X Y Z : T} (f : W X) (g : Y Z) (e₁ : W Y) (e₂ : X Z) (h : CategoryTheory.CategoryStruct.comp e₁.hom g = CategoryTheory.CategoryStruct.comp f e₂.hom := by aesop_cat) :

            A variant of Arrow.isoMk that creates an iso between two Arrow.mks with a better type signature.

            Equations
            Instances For
              theorem CategoryTheory.Arrow.hom.congr_left {T : Type u} [CategoryTheory.Category.{v, u} T] {f g : CategoryTheory.Arrow T} {φ₁ φ₂ : f g} (h : φ₁ = φ₂) :
              φ₁.left = φ₂.left
              @[simp]
              theorem CategoryTheory.Arrow.hom.congr_right {T : Type u} [CategoryTheory.Category.{v, u} T] {f g : CategoryTheory.Arrow T} {φ₁ φ₂ : f g} (h : φ₁ = φ₂) :
              φ₁.right = φ₂.right
              @[simp]

              Given a square from an arrow i to an isomorphism p, express the source part of sq in terms of the inverse of p.

              Given a square from an isomorphism i to an arrow p, express the target part of sq in terms of the inverse of i.

              A helper construction: given a square between i and f ≫ g, produce a square between i and g, whose top leg uses f: A → X ↓f ↓i Y --> A → Y ↓g ↓i ↓g B → Z B → Z

              Equations
              Instances For

                The functor sending an arrow to its source.

                Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.Arrow.leftFunc_map {C : Type u} [CategoryTheory.Category.{v, u} C] {X✝ Y✝ : CategoryTheory.Comma (CategoryTheory.Functor.id C) (CategoryTheory.Functor.id C)} (f : X✝ Y✝) :
                  CategoryTheory.Arrow.leftFunc.map f = f.left

                  The functor sending an arrow to its target.

                  Equations
                  Instances For
                    @[simp]
                    theorem CategoryTheory.Arrow.rightFunc_map {C : Type u} [CategoryTheory.Category.{v, u} C] {X✝ Y✝ : CategoryTheory.Comma (CategoryTheory.Functor.id C) (CategoryTheory.Functor.id C)} (f : X✝ Y✝) :
                    CategoryTheory.Arrow.rightFunc.map f = f.right
                    def CategoryTheory.Arrow.leftToRight {C : Type u} [CategoryTheory.Category.{v, u} C] :
                    CategoryTheory.Arrow.leftFunc CategoryTheory.Arrow.rightFunc

                    The natural transformation from leftFunc to rightFunc, given by the arrow itself.

                    Equations
                    • CategoryTheory.Arrow.leftToRight = { app := fun (f : CategoryTheory.Arrow C) => f.hom, naturality := }
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Arrow.leftToRight_app {C : Type u} [CategoryTheory.Category.{v, u} C] (f : CategoryTheory.Arrow C) :
                      CategoryTheory.Arrow.leftToRight.app f = f.hom

                      A functor C ⥤ D induces a functor between the corresponding arrow categories.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem CategoryTheory.Functor.mapArrow_map_left {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : CategoryTheory.Functor C D) {X✝ Y✝ : CategoryTheory.Arrow C} (f : X✝ Y✝) :
                        (F.mapArrow.map f).left = F.map f.left
                        @[simp]
                        theorem CategoryTheory.Functor.mapArrow_map_right {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : CategoryTheory.Functor C D) {X✝ Y✝ : CategoryTheory.Arrow C} (f : X✝ Y✝) :
                        (F.mapArrow.map f).right = F.map f.right

                        The functor (C ⥤ D) ⥤ (Arrow C ⥤ Arrow D) which sends a functor F : C ⥤ D to F.mapArrow.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          The equivalence of categories Arrow C ≌ Arrow D induced by an equivalence C ≌ D.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            instance CategoryTheory.Functor.isEquivalence_mapArrow {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : CategoryTheory.Functor C D) [F.IsEquivalence] :
                            F.mapArrow.IsEquivalence
                            Equations
                            • =
                            def CategoryTheory.Arrow.isoOfNatIso {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] {F G : CategoryTheory.Functor C D} (e : F G) (f : CategoryTheory.Arrow C) :
                            F.mapArrow.obj f G.mapArrow.obj f

                            The images of f : Arrow C by two isomorphic functors F : C ⥤ D are isomorphic arrows in D.

                            Equations
                            Instances For