Documentation

Mathlib.CategoryTheory.ComposableArrows

Composable arrows #

If C is a category, the type of n-simplices in the nerve of C identifies to the type of functors Fin (n + 1) ⥤ C, which can be thought as families of n composable arrows in C. In this file, we introduce and study this category ComposableArrows C n of n composable arrows in C.

If F : ComposableArrows C n, we define F.left as the leftmost object, F.right as the rightmost object, and F.hom : F.left ⟶ F.right is the canonical map.

The most significant definition in this file is the constructor F.precomp f : ComposableArrows C (n + 1) for F : ComposableArrows C n and f : X ⟶ F.left: "it shifts F towards the right and inserts f on the left". This precomp has good definitional properties.

In the namespace CategoryTheory.ComposableArrows, we provide constructors like mk₁ f, mk₂ f g, mk₃ f g h for ComposableArrows C n for small n.

TODO (@joelriou):

@[inline, reducible]

ComposableArrows C n is the type of functors Fin (n + 1) ⥤ C.

Equations
Instances For

    A wrapper for omega which prefaces it with some quick and useful attempts

    Equations
    Instances For
      @[inline, reducible]

      The ith object (with i : ℕ such that i ≤ n) of F : ComposableArrows C n.

      Equations
      Instances For
        @[inline, reducible]
        abbrev CategoryTheory.ComposableArrows.map' {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } (F : CategoryTheory.ComposableArrows C n) (i : ) (j : ) (hij : autoParam (i j) _auto✝) (hjn : autoParam (j n) _auto✝) :
        F.toPrefunctor.obj { val := i, isLt := (_ : i < n + 1) } F.toPrefunctor.obj { val := j, isLt := (_ : j < n + 1) }

        The map F.obj' i ⟶ F.obj' j when F : ComposableArrows C n, and i and j are natural numbers such that i ≤ j ≤ n.

        Equations
        Instances For
          @[inline, reducible]

          The map F.obj' i ⟶ G.obj' i induced on ith objects by a morphism F ⟶ G in ComposableArrows C n when i is a natural number such that i ≤ n.

          Equations
          Instances For
            def CategoryTheory.ComposableArrows.Mk₁.obj {C : Type u_1} (X₀ : C) (X₁ : C) :
            Fin 2C

            The map which sends 0 : Fin 2 to X₀ and 1 to X₁.

            Equations
            Instances For

              The obvious map obj X₀ X₁ i ⟶ obj X₀ X₁ j whenever i j : Fin 2 satisfy i ≤ j.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem CategoryTheory.ComposableArrows.mk₁_map {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X₀ : C} {X₁ : C} (f : X₀ X₁) :
                ∀ {X Y : Fin (1 + 1)} (g : X Y), (CategoryTheory.ComposableArrows.mk₁ f).toPrefunctor.map g = CategoryTheory.ComposableArrows.Mk₁.map f X Y (_ : X Y)
                @[simp]
                theorem CategoryTheory.ComposableArrows.mk₁_obj {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X₀ : C} {X₁ : C} (f : X₀ X₁) :

                Constructor for ComposableArrows C 1.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem CategoryTheory.ComposableArrows.homMk_app {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } {F : CategoryTheory.ComposableArrows C n} {G : CategoryTheory.ComposableArrows C n} (app : (i : Fin (n + 1)) → F.toPrefunctor.obj i G.toPrefunctor.obj i) (w : ∀ (i : ) (hi : i < n), CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' F i (i + 1)) (app { val := i + 1, isLt := (_ : i + 1 < n + 1) }) = CategoryTheory.CategoryStruct.comp (app { val := i, isLt := (_ : i < n + 1) }) (CategoryTheory.ComposableArrows.map' G i (i + 1))) (i : Fin (n + 1)) :
                  def CategoryTheory.ComposableArrows.homMk {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } {F : CategoryTheory.ComposableArrows C n} {G : CategoryTheory.ComposableArrows C n} (app : (i : Fin (n + 1)) → F.toPrefunctor.obj i G.toPrefunctor.obj i) (w : ∀ (i : ) (hi : i < n), CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' F i (i + 1)) (app { val := i + 1, isLt := (_ : i + 1 < n + 1) }) = CategoryTheory.CategoryStruct.comp (app { val := i, isLt := (_ : i < n + 1) }) (CategoryTheory.ComposableArrows.map' G i (i + 1))) :
                  F G

                  Constructor for morphisms F ⟶ G in ComposableArrows C n which takes as inputs a family of morphisms F.obj i ⟶ G.obj i and the naturality condition only for the maps in Fin (n + 1) given by inequalities of the form i ≤ i + 1.

                  Equations
                  Instances For
                    @[simp]
                    theorem CategoryTheory.ComposableArrows.isoMk_inv {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } {F : CategoryTheory.ComposableArrows C n} {G : CategoryTheory.ComposableArrows C n} (app : (i : Fin (n + 1)) → F.toPrefunctor.obj i G.toPrefunctor.obj i) (w : ∀ (i : ) (hi : i < n), CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' F i (i + 1)) (app { val := i + 1, isLt := (_ : i + 1 < n + 1) }).hom = CategoryTheory.CategoryStruct.comp (app { val := i, isLt := (_ : i < n + 1) }).hom (CategoryTheory.ComposableArrows.map' G i (i + 1))) :
                    (CategoryTheory.ComposableArrows.isoMk app w).inv = CategoryTheory.ComposableArrows.homMk (fun (i : Fin (n + 1)) => (app i).inv) (_ : ∀ (i : ) (hi : i < n), CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' G i (i + 1)) ((fun (i : Fin (n + 1)) => (app i).inv) { val := i + 1, isLt := (_ : i + 1 < n + 1) }) = CategoryTheory.CategoryStruct.comp ((fun (i : Fin (n + 1)) => (app i).inv) { val := i, isLt := (_ : i < n + 1) }) (CategoryTheory.ComposableArrows.map' F i (i + 1)))
                    @[simp]
                    theorem CategoryTheory.ComposableArrows.isoMk_hom {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } {F : CategoryTheory.ComposableArrows C n} {G : CategoryTheory.ComposableArrows C n} (app : (i : Fin (n + 1)) → F.toPrefunctor.obj i G.toPrefunctor.obj i) (w : ∀ (i : ) (hi : i < n), CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' F i (i + 1)) (app { val := i + 1, isLt := (_ : i + 1 < n + 1) }).hom = CategoryTheory.CategoryStruct.comp (app { val := i, isLt := (_ : i < n + 1) }).hom (CategoryTheory.ComposableArrows.map' G i (i + 1))) :
                    def CategoryTheory.ComposableArrows.isoMk {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } {F : CategoryTheory.ComposableArrows C n} {G : CategoryTheory.ComposableArrows C n} (app : (i : Fin (n + 1)) → F.toPrefunctor.obj i G.toPrefunctor.obj i) (w : ∀ (i : ) (hi : i < n), CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' F i (i + 1)) (app { val := i + 1, isLt := (_ : i + 1 < n + 1) }).hom = CategoryTheory.CategoryStruct.comp (app { val := i, isLt := (_ : i < n + 1) }).hom (CategoryTheory.ComposableArrows.map' G i (i + 1))) :
                    F G

                    Constructor for isomorphisms F ≅ G in ComposableArrows C n which takes as inputs a family of isomorphisms F.obj i ≅ G.obj i and the naturality condition only for the maps in Fin (n + 1) given by inequalities of the form i ≤ i + 1.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      theorem CategoryTheory.ComposableArrows.ext {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } {F : CategoryTheory.ComposableArrows C n} {G : CategoryTheory.ComposableArrows C n} (h : ∀ (i : Fin (n + 1)), F.toPrefunctor.obj i = G.toPrefunctor.obj i) (w : ∀ (i : ) (hi : i < n), CategoryTheory.ComposableArrows.map' F i (i + 1) = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom (_ : F.toPrefunctor.obj { val := i, isLt := (_ : i < n + 1) } = G.toPrefunctor.obj { val := i, isLt := (_ : i < n + 1) })) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' G i (i + 1)) (CategoryTheory.eqToHom (_ : G.toPrefunctor.obj { val := i + 1, isLt := (_ : i + 1 < n + 1) } = F.toPrefunctor.obj { val := i + 1, isLt := (_ : i + 1 < n + 1) })))) :
                      F = G

                      Constructor for morphisms in ComposableArrows C 0.

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

                        The map Fin (n + 1 + 1) → C which "shifts" F.obj' to the right and inserts X in the zeroth position.

                        Equations
                        Instances For

                          Auxiliary definition for the action on maps of the functor F.precomp f. It sends 0 ≤ 1 to f and i + 1 ≤ j + 1 to F.map' i j.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            @[simp]
                            theorem CategoryTheory.ComposableArrows.Precomp.map_zero_one' {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } (F : CategoryTheory.ComposableArrows C n) {X : C} (f : X CategoryTheory.ComposableArrows.left F) :
                            CategoryTheory.ComposableArrows.Precomp.map F f 0 { val := 0 + 1, isLt := (_ : 0 + 1 < n + 1 + 1) } (_ : 0 { val := 0 + 1, isLt := (_ : 0 + 1 < n + 1 + 1) }) = f
                            @[simp]
                            theorem CategoryTheory.ComposableArrows.Precomp.map_succ_succ {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } (F : CategoryTheory.ComposableArrows C n) {X : C} (f : X CategoryTheory.ComposableArrows.left F) (i : ) (j : ) (hi : i + 1 < n + 1 + 1) (hj : j + 1 < n + 1 + 1) (hij : i + 1 j + 1) :
                            CategoryTheory.ComposableArrows.Precomp.map F f { val := i + 1, isLt := hi } { val := j + 1, isLt := hj } hij = CategoryTheory.ComposableArrows.map' F i j
                            @[simp]
                            theorem CategoryTheory.ComposableArrows.Precomp.map_one_succ {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } (F : CategoryTheory.ComposableArrows C n) {X : C} (f : X CategoryTheory.ComposableArrows.left F) (j : ) (hj : j + 1 < n + 1 + 1) :
                            CategoryTheory.ComposableArrows.Precomp.map F f 1 { val := j + 1, isLt := hj } (_ : 1 { val := j + 1, isLt := hj }) = CategoryTheory.ComposableArrows.map' F 0 j

                            "Precomposition" of F : ComposableArrows C n by a morphism f : X ⟶ F.left.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def CategoryTheory.ComposableArrows.mk₃ {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X₀ : C} {X₁ : C} {X₂ : C} {X₃ : C} (f : X₀ X₁) (g : X₁ X₂) (h : X₂ X₃) :

                              Constructor for ComposableArrows C 3.

                              Equations
                              Instances For
                                def CategoryTheory.ComposableArrows.mk₄ {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X₀ : C} {X₁ : C} {X₂ : C} {X₃ : C} {X₄ : C} (f : X₀ X₁) (g : X₁ X₂) (h : X₂ X₃) (i : X₃ X₄) :

                                Constructor for ComposableArrows C 4.

                                Equations
                                Instances For
                                  def CategoryTheory.ComposableArrows.mk₅ {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X₀ : C} {X₁ : C} {X₂ : C} {X₃ : C} {X₄ : C} {X₅ : C} (f : X₀ X₁) (g : X₁ X₂) (h : X₂ X₃) (i : X₃ X₄) (j : X₄ X₅) :

                                  Constructor for ComposableArrows C 5.

                                  Equations
                                  Instances For

                                    These examples are meant to test the good definitional properties of precomp, and that dsimp can see through.

                                    @[simp]
                                    theorem CategoryTheory.ComposableArrows.whiskerLeft_obj {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } {m : } (F : CategoryTheory.ComposableArrows C m) (Φ : CategoryTheory.Functor (Fin (n + 1)) (Fin (m + 1))) (X : Fin (n + 1)) :
                                    (CategoryTheory.ComposableArrows.whiskerLeft F Φ).toPrefunctor.obj X = F.toPrefunctor.obj (Φ.toPrefunctor.obj X)
                                    @[simp]
                                    theorem CategoryTheory.ComposableArrows.whiskerLeft_map {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } {m : } (F : CategoryTheory.ComposableArrows C m) (Φ : CategoryTheory.Functor (Fin (n + 1)) (Fin (m + 1))) :
                                    ∀ {X Y : Fin (n + 1)} (f : X Y), (CategoryTheory.ComposableArrows.whiskerLeft F Φ).toPrefunctor.map f = F.toPrefunctor.map (Φ.toPrefunctor.map f)

                                    The map ComposableArrows C m → ComposableArrows C n obtained by precomposition with a functor Fin (n + 1) ⥤ Fin (m + 1).

                                    Equations
                                    Instances For
                                      @[simp]
                                      theorem CategoryTheory.ComposableArrows.whiskerLeftFunctor_map_app {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } {m : } (Φ : CategoryTheory.Functor (Fin (n + 1)) (Fin (m + 1))) :
                                      ∀ {X Y : CategoryTheory.ComposableArrows C m} (f : X Y) (X_1 : Fin (n + 1)), ((CategoryTheory.ComposableArrows.whiskerLeftFunctor Φ).toPrefunctor.map f).app X_1 = f.app (Φ.toPrefunctor.obj X_1)
                                      @[simp]
                                      theorem CategoryTheory.ComposableArrows.whiskerLeftFunctor_obj_obj {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } {m : } (Φ : CategoryTheory.Functor (Fin (n + 1)) (Fin (m + 1))) (F : CategoryTheory.ComposableArrows C m) (X : Fin (n + 1)) :
                                      ((CategoryTheory.ComposableArrows.whiskerLeftFunctor Φ).toPrefunctor.obj F).toPrefunctor.obj X = F.toPrefunctor.obj (Φ.toPrefunctor.obj X)
                                      @[simp]
                                      theorem CategoryTheory.ComposableArrows.whiskerLeftFunctor_obj_map {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } {m : } (Φ : CategoryTheory.Functor (Fin (n + 1)) (Fin (m + 1))) (F : CategoryTheory.ComposableArrows C m) :
                                      ∀ {X Y : Fin (n + 1)} (f : X Y), ((CategoryTheory.ComposableArrows.whiskerLeftFunctor Φ).toPrefunctor.obj F).toPrefunctor.map f = F.toPrefunctor.map (Φ.toPrefunctor.map f)

                                      The functor ComposableArrows C m ⥤ ComposableArrows C n obtained by precomposition with a functor Fin (n + 1) ⥤ Fin (m + 1).

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        @[simp]
                                        theorem Fin.succFunctor_obj (n : ) (i : Fin n) :
                                        (Fin.succFunctor n).toPrefunctor.obj i = Fin.succ i
                                        @[simp]
                                        theorem Fin.succFunctor_map (n : ) {i : Fin n} {j : Fin n} (hij : i j) :
                                        (Fin.succFunctor n).toPrefunctor.map hij = CategoryTheory.homOfLE (_ : Fin.succ i Fin.succ j)

                                        The functor Fin n ⥤ Fin (n + 1) which sends i to i.succ.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.ComposableArrows.δ₀Functor_obj_map {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } (F : CategoryTheory.ComposableArrows C (n + 1)) :
                                          ∀ {X Y : Fin (n + 1)} (f : X Y), (CategoryTheory.ComposableArrows.δ₀Functor.toPrefunctor.obj F).toPrefunctor.map f = F.toPrefunctor.map (CategoryTheory.homOfLE (_ : Fin.succ X Fin.succ Y))
                                          @[simp]
                                          theorem CategoryTheory.ComposableArrows.δ₀Functor_obj_obj {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } (F : CategoryTheory.ComposableArrows C (n + 1)) (X : Fin (n + 1)) :
                                          (CategoryTheory.ComposableArrows.δ₀Functor.toPrefunctor.obj F).toPrefunctor.obj X = F.toPrefunctor.obj (Fin.succ X)
                                          @[simp]
                                          theorem CategoryTheory.ComposableArrows.δ₀Functor_map_app {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } :
                                          ∀ {X Y : CategoryTheory.ComposableArrows C (n + 1)} (f : X Y) (X_1 : Fin (n + 1)), (CategoryTheory.ComposableArrows.δ₀Functor.toPrefunctor.map f).app X_1 = f.app (Fin.succ X_1)

                                          The functor ComposableArrows C (n + 1) ⥤ ComposableArrows C n which forgets the first arrow.

                                          Equations
                                          Instances For
                                            @[inline, reducible]

                                            The ComposableArrows C n obtained by forgetting the first arrow.

                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem Fin.castSuccFunctor_map (n : ) :
                                              ∀ {X Y : Fin n} (hij : X Y), (Fin.castSuccFunctor n).toPrefunctor.map hij = hij
                                              @[simp]
                                              theorem Fin.castSuccFunctor_obj (n : ) (i : Fin n) :
                                              (Fin.castSuccFunctor n).toPrefunctor.obj i = Fin.castSucc i

                                              The functor Fin n ⥤ Fin (n + 1) which sends i to i.castSucc.

                                              Equations
                                              Instances For
                                                @[simp]
                                                theorem CategoryTheory.ComposableArrows.δlastFunctor_obj_map {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } (F : CategoryTheory.ComposableArrows C (n + 1)) :
                                                ∀ {X Y : Fin (n + 1)} (f : X Y), (CategoryTheory.ComposableArrows.δlastFunctor.toPrefunctor.obj F).toPrefunctor.map f = F.toPrefunctor.map f
                                                @[simp]
                                                theorem CategoryTheory.ComposableArrows.δlastFunctor_obj_obj {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } (F : CategoryTheory.ComposableArrows C (n + 1)) (X : Fin (n + 1)) :
                                                (CategoryTheory.ComposableArrows.δlastFunctor.toPrefunctor.obj F).toPrefunctor.obj X = F.toPrefunctor.obj (Fin.castSucc X)
                                                @[simp]
                                                theorem CategoryTheory.ComposableArrows.δlastFunctor_map_app {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } :
                                                ∀ {X Y : CategoryTheory.ComposableArrows C (n + 1)} (f : X Y) (X_1 : Fin (n + 1)), (CategoryTheory.ComposableArrows.δlastFunctor.toPrefunctor.map f).app X_1 = f.app (Fin.castSucc X_1)

                                                The functor ComposableArrows C (n + 1) ⥤ ComposableArrows C n which forgets the last arrow.

                                                Equations
                                                Instances For
                                                  @[inline, reducible]

                                                  The ComposableArrows C n obtained by forgetting the first arrow.

                                                  Equations
                                                  Instances For

                                                    Inductive construction of morphisms in ComposableArrows C (n + 1): in order to construct a morphism F ⟶ G, it suffices to provide α : F.obj' 0 ⟶ G.obj' 0 and β : F.δ₀ ⟶ G.δ₀ such that F.map' 0 1 ≫ app' β 0 = α ≫ G.map' 0 1.

                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For
                                                      theorem CategoryTheory.ComposableArrows.hom_ext_succ {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } {F : CategoryTheory.ComposableArrows C (n + 1)} {G : CategoryTheory.ComposableArrows C (n + 1)} {f : F G} {g : F G} (h₀ : CategoryTheory.ComposableArrows.app' f 0 = CategoryTheory.ComposableArrows.app' g 0) (h₁ : CategoryTheory.ComposableArrows.δ₀Functor.toPrefunctor.map f = CategoryTheory.ComposableArrows.δ₀Functor.toPrefunctor.map g) :
                                                      f = g

                                                      Inductive construction of isomorphisms in ComposableArrows C (n + 1): in order to construct an isomorphism F ≅ G, it suffices to provide α : F.obj' 0 ≅ G.obj' 0 and β : F.δ₀ ≅ G.δ₀ such that F.map' 0 1 ≫ app' β.hom 0 = α.hom ≫ G.map' 0 1.

                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        theorem CategoryTheory.ComposableArrows.mk₂_surjective {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] (X : CategoryTheory.ComposableArrows C 2) :
                                                        ∃ (X₀ : C) (X₁ : C) (X₂ : C) (f₀ : X₀ X₁) (f₁ : X₁ X₂), X = CategoryTheory.ComposableArrows.mk₂ f₀ f₁
                                                        @[simp]
                                                        theorem CategoryTheory.ComposableArrows.isoMk₃_inv {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 3} {g : CategoryTheory.ComposableArrows C 3} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁.hom = CategoryTheory.CategoryStruct.comp app₀.hom (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂.hom = CategoryTheory.CategoryStruct.comp app₁.hom (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃.hom = CategoryTheory.CategoryStruct.comp app₂.hom (CategoryTheory.ComposableArrows.map' g 2 3)) :
                                                        theorem CategoryTheory.ComposableArrows.ext₃ {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 3} {g : CategoryTheory.ComposableArrows C 3} (h₀ : CategoryTheory.ComposableArrows.obj' f 0 = CategoryTheory.ComposableArrows.obj' g 0) (h₁ : CategoryTheory.ComposableArrows.obj' f 1 = CategoryTheory.ComposableArrows.obj' g 1) (h₂ : CategoryTheory.ComposableArrows.obj' f 2 = CategoryTheory.ComposableArrows.obj' g 2) (h₃ : CategoryTheory.ComposableArrows.obj' f 3 = CategoryTheory.ComposableArrows.obj' g 3) (w₀ : CategoryTheory.ComposableArrows.map' f 0 1 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₀) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 0 1) (CategoryTheory.eqToHom (_ : CategoryTheory.ComposableArrows.obj' g 1 = CategoryTheory.ComposableArrows.obj' f 1)))) (w₁ : CategoryTheory.ComposableArrows.map' f 1 2 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₁) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 1 2) (CategoryTheory.eqToHom (_ : CategoryTheory.ComposableArrows.obj' g 2 = CategoryTheory.ComposableArrows.obj' f 2)))) (w₂ : CategoryTheory.ComposableArrows.map' f 2 3 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₂) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 2 3) (CategoryTheory.eqToHom (_ : CategoryTheory.ComposableArrows.obj' g 3 = CategoryTheory.ComposableArrows.obj' f 3)))) :
                                                        f = g
                                                        theorem CategoryTheory.ComposableArrows.mk₃_surjective {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] (X : CategoryTheory.ComposableArrows C 3) :
                                                        ∃ (X₀ : C) (X₁ : C) (X₂ : C) (X₃ : C) (f₀ : X₀ X₁) (f₁ : X₁ X₂) (f₂ : X₂ X₃), X = CategoryTheory.ComposableArrows.mk₃ f₀ f₁ f₂

                                                        Constructor for morphisms in ComposableArrows C 4.

                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          @[simp]
                                                          theorem CategoryTheory.ComposableArrows.homMk₄_app_zero {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 4} {g : CategoryTheory.ComposableArrows C 4} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁ = CategoryTheory.CategoryStruct.comp app₀ (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂ = CategoryTheory.CategoryStruct.comp app₁ (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃ = CategoryTheory.CategoryStruct.comp app₂ (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄ = CategoryTheory.CategoryStruct.comp app₃ (CategoryTheory.ComposableArrows.map' g 3 4)) :
                                                          (CategoryTheory.ComposableArrows.homMk₄ app₀ app₁ app₂ app₃ app₄ w₀ w₁ w₂ w₃).app 0 = app₀
                                                          @[simp]
                                                          theorem CategoryTheory.ComposableArrows.homMk₄_app_one {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 4} {g : CategoryTheory.ComposableArrows C 4} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁ = CategoryTheory.CategoryStruct.comp app₀ (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂ = CategoryTheory.CategoryStruct.comp app₁ (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃ = CategoryTheory.CategoryStruct.comp app₂ (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄ = CategoryTheory.CategoryStruct.comp app₃ (CategoryTheory.ComposableArrows.map' g 3 4)) :
                                                          (CategoryTheory.ComposableArrows.homMk₄ app₀ app₁ app₂ app₃ app₄ w₀ w₁ w₂ w₃).app 1 = app₁
                                                          @[simp]
                                                          theorem CategoryTheory.ComposableArrows.homMk₄_app_two {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 4} {g : CategoryTheory.ComposableArrows C 4} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁ = CategoryTheory.CategoryStruct.comp app₀ (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂ = CategoryTheory.CategoryStruct.comp app₁ (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃ = CategoryTheory.CategoryStruct.comp app₂ (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄ = CategoryTheory.CategoryStruct.comp app₃ (CategoryTheory.ComposableArrows.map' g 3 4)) :
                                                          (CategoryTheory.ComposableArrows.homMk₄ app₀ app₁ app₂ app₃ app₄ w₀ w₁ w₂ w₃).app { val := 2, isLt := (_ : 2 < 4 + 1) } = app₂
                                                          @[simp]
                                                          theorem CategoryTheory.ComposableArrows.homMk₄_app_three {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 4} {g : CategoryTheory.ComposableArrows C 4} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁ = CategoryTheory.CategoryStruct.comp app₀ (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂ = CategoryTheory.CategoryStruct.comp app₁ (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃ = CategoryTheory.CategoryStruct.comp app₂ (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄ = CategoryTheory.CategoryStruct.comp app₃ (CategoryTheory.ComposableArrows.map' g 3 4)) :
                                                          (CategoryTheory.ComposableArrows.homMk₄ app₀ app₁ app₂ app₃ app₄ w₀ w₁ w₂ w₃).app { val := 3, isLt := (_ : 3 < 4 + 1) } = app₃
                                                          @[simp]
                                                          theorem CategoryTheory.ComposableArrows.homMk₄_app_four {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 4} {g : CategoryTheory.ComposableArrows C 4} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁ = CategoryTheory.CategoryStruct.comp app₀ (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂ = CategoryTheory.CategoryStruct.comp app₁ (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃ = CategoryTheory.CategoryStruct.comp app₂ (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄ = CategoryTheory.CategoryStruct.comp app₃ (CategoryTheory.ComposableArrows.map' g 3 4)) :
                                                          (CategoryTheory.ComposableArrows.homMk₄ app₀ app₁ app₂ app₃ app₄ w₀ w₁ w₂ w₃).app { val := 4, isLt := (_ : 4 < 4 + 1) } = app₄
                                                          @[simp]
                                                          theorem CategoryTheory.ComposableArrows.isoMk₄_inv {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 4} {g : CategoryTheory.ComposableArrows C 4} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁.hom = CategoryTheory.CategoryStruct.comp app₀.hom (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂.hom = CategoryTheory.CategoryStruct.comp app₁.hom (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃.hom = CategoryTheory.CategoryStruct.comp app₂.hom (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄.hom = CategoryTheory.CategoryStruct.comp app₃.hom (CategoryTheory.ComposableArrows.map' g 3 4)) :
                                                          @[simp]
                                                          theorem CategoryTheory.ComposableArrows.isoMk₄_hom {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 4} {g : CategoryTheory.ComposableArrows C 4} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁.hom = CategoryTheory.CategoryStruct.comp app₀.hom (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂.hom = CategoryTheory.CategoryStruct.comp app₁.hom (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃.hom = CategoryTheory.CategoryStruct.comp app₂.hom (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄.hom = CategoryTheory.CategoryStruct.comp app₃.hom (CategoryTheory.ComposableArrows.map' g 3 4)) :
                                                          (CategoryTheory.ComposableArrows.isoMk₄ app₀ app₁ app₂ app₃ app₄ w₀ w₁ w₂ w₃).hom = CategoryTheory.ComposableArrows.homMk₄ app₀.hom app₁.hom app₂.hom app₃.hom app₄.hom w₀ w₁ w₂ w₃

                                                          Constructor for isomorphisms in ComposableArrows C 4.

                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            theorem CategoryTheory.ComposableArrows.ext₄ {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 4} {g : CategoryTheory.ComposableArrows C 4} (h₀ : CategoryTheory.ComposableArrows.obj' f 0 = CategoryTheory.ComposableArrows.obj' g 0) (h₁ : CategoryTheory.ComposableArrows.obj' f 1 = CategoryTheory.ComposableArrows.obj' g 1) (h₂ : CategoryTheory.ComposableArrows.obj' f 2 = CategoryTheory.ComposableArrows.obj' g 2) (h₃ : CategoryTheory.ComposableArrows.obj' f 3 = CategoryTheory.ComposableArrows.obj' g 3) (h₄ : CategoryTheory.ComposableArrows.obj' f 4 = CategoryTheory.ComposableArrows.obj' g 4) (w₀ : CategoryTheory.ComposableArrows.map' f 0 1 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₀) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 0 1) (CategoryTheory.eqToHom (_ : CategoryTheory.ComposableArrows.obj' g 1 = CategoryTheory.ComposableArrows.obj' f 1)))) (w₁ : CategoryTheory.ComposableArrows.map' f 1 2 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₁) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 1 2) (CategoryTheory.eqToHom (_ : CategoryTheory.ComposableArrows.obj' g 2 = CategoryTheory.ComposableArrows.obj' f 2)))) (w₂ : CategoryTheory.ComposableArrows.map' f 2 3 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₂) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 2 3) (CategoryTheory.eqToHom (_ : CategoryTheory.ComposableArrows.obj' g 3 = CategoryTheory.ComposableArrows.obj' f 3)))) (w₃ : CategoryTheory.ComposableArrows.map' f 3 4 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₃) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 3 4) (CategoryTheory.eqToHom (_ : CategoryTheory.ComposableArrows.obj' g 4 = CategoryTheory.ComposableArrows.obj' f 4)))) :
                                                            f = g
                                                            theorem CategoryTheory.ComposableArrows.mk₄_surjective {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] (X : CategoryTheory.ComposableArrows C 4) :
                                                            ∃ (X₀ : C) (X₁ : C) (X₂ : C) (X₃ : C) (X₄ : C) (f₀ : X₀ X₁) (f₁ : X₁ X₂) (f₂ : X₂ X₃) (f₃ : X₃ X₄), X = CategoryTheory.ComposableArrows.mk₄ f₀ f₁ f₂ f₃
                                                            def CategoryTheory.ComposableArrows.homMk₅ {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 5} {g : CategoryTheory.ComposableArrows C 5} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (app₅ : CategoryTheory.ComposableArrows.obj' f 5 CategoryTheory.ComposableArrows.obj' g 5) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁ = CategoryTheory.CategoryStruct.comp app₀ (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂ = CategoryTheory.CategoryStruct.comp app₁ (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃ = CategoryTheory.CategoryStruct.comp app₂ (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄ = CategoryTheory.CategoryStruct.comp app₃ (CategoryTheory.ComposableArrows.map' g 3 4)) (w₄ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 4 5) app₅ = CategoryTheory.CategoryStruct.comp app₄ (CategoryTheory.ComposableArrows.map' g 4 5)) :
                                                            f g

                                                            Constructor for morphisms in ComposableArrows C 5.

                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              @[simp]
                                                              theorem CategoryTheory.ComposableArrows.homMk₅_app_zero {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 5} {g : CategoryTheory.ComposableArrows C 5} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (app₅ : CategoryTheory.ComposableArrows.obj' f 5 CategoryTheory.ComposableArrows.obj' g 5) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁ = CategoryTheory.CategoryStruct.comp app₀ (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂ = CategoryTheory.CategoryStruct.comp app₁ (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃ = CategoryTheory.CategoryStruct.comp app₂ (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄ = CategoryTheory.CategoryStruct.comp app₃ (CategoryTheory.ComposableArrows.map' g 3 4)) (w₄ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 4 5) app₅ = CategoryTheory.CategoryStruct.comp app₄ (CategoryTheory.ComposableArrows.map' g 4 5)) :
                                                              (CategoryTheory.ComposableArrows.homMk₅ app₀ app₁ app₂ app₃ app₄ app₅ w₀ w₁ w₂ w₃ w₄).app 0 = app₀
                                                              @[simp]
                                                              theorem CategoryTheory.ComposableArrows.homMk₅_app_one {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 5} {g : CategoryTheory.ComposableArrows C 5} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (app₅ : CategoryTheory.ComposableArrows.obj' f 5 CategoryTheory.ComposableArrows.obj' g 5) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁ = CategoryTheory.CategoryStruct.comp app₀ (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂ = CategoryTheory.CategoryStruct.comp app₁ (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃ = CategoryTheory.CategoryStruct.comp app₂ (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄ = CategoryTheory.CategoryStruct.comp app₃ (CategoryTheory.ComposableArrows.map' g 3 4)) (w₄ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 4 5) app₅ = CategoryTheory.CategoryStruct.comp app₄ (CategoryTheory.ComposableArrows.map' g 4 5)) :
                                                              (CategoryTheory.ComposableArrows.homMk₅ app₀ app₁ app₂ app₃ app₄ app₅ w₀ w₁ w₂ w₃ w₄).app 1 = app₁
                                                              @[simp]
                                                              theorem CategoryTheory.ComposableArrows.homMk₅_app_two {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 5} {g : CategoryTheory.ComposableArrows C 5} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (app₅ : CategoryTheory.ComposableArrows.obj' f 5 CategoryTheory.ComposableArrows.obj' g 5) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁ = CategoryTheory.CategoryStruct.comp app₀ (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂ = CategoryTheory.CategoryStruct.comp app₁ (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃ = CategoryTheory.CategoryStruct.comp app₂ (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄ = CategoryTheory.CategoryStruct.comp app₃ (CategoryTheory.ComposableArrows.map' g 3 4)) (w₄ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 4 5) app₅ = CategoryTheory.CategoryStruct.comp app₄ (CategoryTheory.ComposableArrows.map' g 4 5)) :
                                                              (CategoryTheory.ComposableArrows.homMk₅ app₀ app₁ app₂ app₃ app₄ app₅ w₀ w₁ w₂ w₃ w₄).app { val := 2, isLt := (_ : 2 < 5 + 1) } = app₂
                                                              @[simp]
                                                              theorem CategoryTheory.ComposableArrows.homMk₅_app_three {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 5} {g : CategoryTheory.ComposableArrows C 5} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (app₅ : CategoryTheory.ComposableArrows.obj' f 5 CategoryTheory.ComposableArrows.obj' g 5) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁ = CategoryTheory.CategoryStruct.comp app₀ (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂ = CategoryTheory.CategoryStruct.comp app₁ (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃ = CategoryTheory.CategoryStruct.comp app₂ (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄ = CategoryTheory.CategoryStruct.comp app₃ (CategoryTheory.ComposableArrows.map' g 3 4)) (w₄ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 4 5) app₅ = CategoryTheory.CategoryStruct.comp app₄ (CategoryTheory.ComposableArrows.map' g 4 5)) :
                                                              (CategoryTheory.ComposableArrows.homMk₅ app₀ app₁ app₂ app₃ app₄ app₅ w₀ w₁ w₂ w₃ w₄).app { val := 3, isLt := (_ : 3 < 5 + 1) } = app₃
                                                              @[simp]
                                                              theorem CategoryTheory.ComposableArrows.homMk₅_app_four {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 5} {g : CategoryTheory.ComposableArrows C 5} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (app₅ : CategoryTheory.ComposableArrows.obj' f 5 CategoryTheory.ComposableArrows.obj' g 5) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁ = CategoryTheory.CategoryStruct.comp app₀ (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂ = CategoryTheory.CategoryStruct.comp app₁ (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃ = CategoryTheory.CategoryStruct.comp app₂ (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄ = CategoryTheory.CategoryStruct.comp app₃ (CategoryTheory.ComposableArrows.map' g 3 4)) (w₄ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 4 5) app₅ = CategoryTheory.CategoryStruct.comp app₄ (CategoryTheory.ComposableArrows.map' g 4 5)) :
                                                              (CategoryTheory.ComposableArrows.homMk₅ app₀ app₁ app₂ app₃ app₄ app₅ w₀ w₁ w₂ w₃ w₄).app { val := 4, isLt := (_ : 4 < 5 + 1) } = app₄
                                                              @[simp]
                                                              theorem CategoryTheory.ComposableArrows.homMk₅_app_five {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 5} {g : CategoryTheory.ComposableArrows C 5} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (app₅ : CategoryTheory.ComposableArrows.obj' f 5 CategoryTheory.ComposableArrows.obj' g 5) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁ = CategoryTheory.CategoryStruct.comp app₀ (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂ = CategoryTheory.CategoryStruct.comp app₁ (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃ = CategoryTheory.CategoryStruct.comp app₂ (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄ = CategoryTheory.CategoryStruct.comp app₃ (CategoryTheory.ComposableArrows.map' g 3 4)) (w₄ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 4 5) app₅ = CategoryTheory.CategoryStruct.comp app₄ (CategoryTheory.ComposableArrows.map' g 4 5)) :
                                                              (CategoryTheory.ComposableArrows.homMk₅ app₀ app₁ app₂ app₃ app₄ app₅ w₀ w₁ w₂ w₃ w₄).app { val := 5, isLt := (_ : 5 < 5 + 1) } = app₅
                                                              @[simp]
                                                              theorem CategoryTheory.ComposableArrows.isoMk₅_inv {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 5} {g : CategoryTheory.ComposableArrows C 5} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (app₅ : CategoryTheory.ComposableArrows.obj' f 5 CategoryTheory.ComposableArrows.obj' g 5) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁.hom = CategoryTheory.CategoryStruct.comp app₀.hom (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂.hom = CategoryTheory.CategoryStruct.comp app₁.hom (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃.hom = CategoryTheory.CategoryStruct.comp app₂.hom (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄.hom = CategoryTheory.CategoryStruct.comp app₃.hom (CategoryTheory.ComposableArrows.map' g 3 4)) (w₄ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 4 5) app₅.hom = CategoryTheory.CategoryStruct.comp app₄.hom (CategoryTheory.ComposableArrows.map' g 4 5)) :
                                                              @[simp]
                                                              theorem CategoryTheory.ComposableArrows.isoMk₅_hom {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 5} {g : CategoryTheory.ComposableArrows C 5} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (app₅ : CategoryTheory.ComposableArrows.obj' f 5 CategoryTheory.ComposableArrows.obj' g 5) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁.hom = CategoryTheory.CategoryStruct.comp app₀.hom (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂.hom = CategoryTheory.CategoryStruct.comp app₁.hom (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃.hom = CategoryTheory.CategoryStruct.comp app₂.hom (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄.hom = CategoryTheory.CategoryStruct.comp app₃.hom (CategoryTheory.ComposableArrows.map' g 3 4)) (w₄ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 4 5) app₅.hom = CategoryTheory.CategoryStruct.comp app₄.hom (CategoryTheory.ComposableArrows.map' g 4 5)) :
                                                              (CategoryTheory.ComposableArrows.isoMk₅ app₀ app₁ app₂ app₃ app₄ app₅ w₀ w₁ w₂ w₃ w₄).hom = CategoryTheory.ComposableArrows.homMk₅ app₀.hom app₁.hom app₂.hom app₃.hom app₄.hom app₅.hom w₀ w₁ w₂ w₃ w₄
                                                              def CategoryTheory.ComposableArrows.isoMk₅ {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 5} {g : CategoryTheory.ComposableArrows C 5} (app₀ : CategoryTheory.ComposableArrows.obj' f 0 CategoryTheory.ComposableArrows.obj' g 0) (app₁ : CategoryTheory.ComposableArrows.obj' f 1 CategoryTheory.ComposableArrows.obj' g 1) (app₂ : CategoryTheory.ComposableArrows.obj' f 2 CategoryTheory.ComposableArrows.obj' g 2) (app₃ : CategoryTheory.ComposableArrows.obj' f 3 CategoryTheory.ComposableArrows.obj' g 3) (app₄ : CategoryTheory.ComposableArrows.obj' f 4 CategoryTheory.ComposableArrows.obj' g 4) (app₅ : CategoryTheory.ComposableArrows.obj' f 5 CategoryTheory.ComposableArrows.obj' g 5) (w₀ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 0 1) app₁.hom = CategoryTheory.CategoryStruct.comp app₀.hom (CategoryTheory.ComposableArrows.map' g 0 1)) (w₁ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 1 2) app₂.hom = CategoryTheory.CategoryStruct.comp app₁.hom (CategoryTheory.ComposableArrows.map' g 1 2)) (w₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 2 3) app₃.hom = CategoryTheory.CategoryStruct.comp app₂.hom (CategoryTheory.ComposableArrows.map' g 2 3)) (w₃ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 3 4) app₄.hom = CategoryTheory.CategoryStruct.comp app₃.hom (CategoryTheory.ComposableArrows.map' g 3 4)) (w₄ : CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' f 4 5) app₅.hom = CategoryTheory.CategoryStruct.comp app₄.hom (CategoryTheory.ComposableArrows.map' g 4 5)) :
                                                              f g

                                                              Constructor for isomorphisms in ComposableArrows C 5.

                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                theorem CategoryTheory.ComposableArrows.ext₅ {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {f : CategoryTheory.ComposableArrows C 5} {g : CategoryTheory.ComposableArrows C 5} (h₀ : CategoryTheory.ComposableArrows.obj' f 0 = CategoryTheory.ComposableArrows.obj' g 0) (h₁ : CategoryTheory.ComposableArrows.obj' f 1 = CategoryTheory.ComposableArrows.obj' g 1) (h₂ : CategoryTheory.ComposableArrows.obj' f 2 = CategoryTheory.ComposableArrows.obj' g 2) (h₃ : CategoryTheory.ComposableArrows.obj' f 3 = CategoryTheory.ComposableArrows.obj' g 3) (h₄ : CategoryTheory.ComposableArrows.obj' f 4 = CategoryTheory.ComposableArrows.obj' g 4) (h₅ : CategoryTheory.ComposableArrows.obj' f 5 = CategoryTheory.ComposableArrows.obj' g 5) (w₀ : CategoryTheory.ComposableArrows.map' f 0 1 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₀) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 0 1) (CategoryTheory.eqToHom (_ : CategoryTheory.ComposableArrows.obj' g 1 = CategoryTheory.ComposableArrows.obj' f 1)))) (w₁ : CategoryTheory.ComposableArrows.map' f 1 2 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₁) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 1 2) (CategoryTheory.eqToHom (_ : CategoryTheory.ComposableArrows.obj' g 2 = CategoryTheory.ComposableArrows.obj' f 2)))) (w₂ : CategoryTheory.ComposableArrows.map' f 2 3 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₂) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 2 3) (CategoryTheory.eqToHom (_ : CategoryTheory.ComposableArrows.obj' g 3 = CategoryTheory.ComposableArrows.obj' f 3)))) (w₃ : CategoryTheory.ComposableArrows.map' f 3 4 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₃) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 3 4) (CategoryTheory.eqToHom (_ : CategoryTheory.ComposableArrows.obj' g 4 = CategoryTheory.ComposableArrows.obj' f 4)))) (w₄ : CategoryTheory.ComposableArrows.map' f 4 5 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₄) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 4 5) (CategoryTheory.eqToHom (_ : CategoryTheory.ComposableArrows.obj' g 5 = CategoryTheory.ComposableArrows.obj' f 5)))) :
                                                                f = g
                                                                theorem CategoryTheory.ComposableArrows.mk₅_surjective {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] (X : CategoryTheory.ComposableArrows C 5) :
                                                                ∃ (X₀ : C) (X₁ : C) (X₂ : C) (X₃ : C) (X₄ : C) (X₅ : C) (f₀ : X₀ X₁) (f₁ : X₁ X₂) (f₂ : X₂ X₃) (f₃ : X₃ X₄) (f₄ : X₄ X₅), X = CategoryTheory.ComposableArrows.mk₅ f₀ f₁ f₂ f₃ f₄
                                                                theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_exists {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } (obj : Fin (n + 1)C) (mapSucc : (i : Fin n) → obj (Fin.castSucc i) obj (Fin.succ i)) :
                                                                ∃ (F : CategoryTheory.ComposableArrows C n) (e : (i : Fin (n + 1)) → F.toPrefunctor.obj i obj i), ∀ (i : ) (hi : i < n), mapSucc { val := i, isLt := hi } = CategoryTheory.CategoryStruct.comp (e { val := i, isLt := (_ : i < n + 1) }).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' F i (i + 1)) (e { val := i + 1, isLt := (_ : i + 1 < n + 1) }).hom)
                                                                noncomputable def CategoryTheory.ComposableArrows.mkOfObjOfMapSucc {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } (obj : Fin (n + 1)C) (mapSucc : (i : Fin n) → obj (Fin.castSucc i) obj (Fin.succ i)) :

                                                                Given obj : Fin (n + 1) → C and mapSucc i : obj i.castSucc ⟶ obj i.succ for all i : Fin n, this is F : ComposableArrows C n such that F.obj i is definitionally equal to obj i and such that F.map' i (i + 1) = mapSucc ⟨i, hi⟩.

                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  @[simp]
                                                                  theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_obj {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } (obj : Fin (n + 1)C) (mapSucc : (i : Fin n) → obj (Fin.castSucc i) obj (Fin.succ i)) (i : Fin (n + 1)) :
                                                                  (CategoryTheory.ComposableArrows.mkOfObjOfMapSucc obj mapSucc).toPrefunctor.obj i = obj i
                                                                  theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_map_succ {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {n : } (obj : Fin (n + 1)C) (mapSucc : (i : Fin n) → obj (Fin.castSucc i) obj (Fin.succ i)) (i : ) (hi : autoParam (i < n) _auto✝) :
                                                                  CategoryTheory.ComposableArrows.map' (CategoryTheory.ComposableArrows.mkOfObjOfMapSucc obj mapSucc) i (i + 1) = mapSucc { val := i, isLt := hi }
                                                                  @[simp]
                                                                  theorem CategoryTheory.Functor.mapComposableArrows_obj_map {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_4, u_2} D] (G : CategoryTheory.Functor C D) (n : ) (F : CategoryTheory.Functor (Fin (n + 1)) C) :
                                                                  ∀ {X Y : Fin (n + 1)} (f : X Y), ((CategoryTheory.Functor.mapComposableArrows G n).toPrefunctor.obj F).toPrefunctor.map f = G.toPrefunctor.map (F.toPrefunctor.map f)
                                                                  @[simp]
                                                                  theorem CategoryTheory.Functor.mapComposableArrows_map_app {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_4, u_2} D] (G : CategoryTheory.Functor C D) (n : ) :
                                                                  ∀ {X Y : CategoryTheory.Functor (Fin (n + 1)) C} (α : X Y) (X_1 : Fin (n + 1)), ((CategoryTheory.Functor.mapComposableArrows G n).toPrefunctor.map α).app X_1 = G.toPrefunctor.map (α.app X_1)
                                                                  @[simp]
                                                                  theorem CategoryTheory.Functor.mapComposableArrows_obj_obj {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_4, u_2} D] (G : CategoryTheory.Functor C D) (n : ) (F : CategoryTheory.Functor (Fin (n + 1)) C) (X : Fin (n + 1)) :
                                                                  ((CategoryTheory.Functor.mapComposableArrows G n).toPrefunctor.obj F).toPrefunctor.obj X = G.toPrefunctor.obj (F.toPrefunctor.obj X)