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.obj { val := i, isLt := } F.obj { val := j, isLt := }

        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₁) :

                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.obj i G.obj i) (w : ∀ (i : ) (hi : i < n), CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' F i (i + 1) hi) (app { val := i + 1, isLt := }) = CategoryTheory.CategoryStruct.comp (app { val := i, isLt := }) (CategoryTheory.ComposableArrows.map' G i (i + 1) hi)) (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.obj i G.obj i) (w : ∀ (i : ) (hi : i < n), CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' F i (i + 1) hi) (app { val := i + 1, isLt := }) = CategoryTheory.CategoryStruct.comp (app { val := i, isLt := }) (CategoryTheory.ComposableArrows.map' G i (i + 1) hi)) :
                  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.obj i G.obj i) (w : ∀ (i : ) (hi : i < n), CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' F i (i + 1) hi) (app { val := i + 1, isLt := }).hom = CategoryTheory.CategoryStruct.comp (app { val := i, isLt := }).hom (CategoryTheory.ComposableArrows.map' G i (i + 1) hi)) :
                    (CategoryTheory.ComposableArrows.isoMk app w).inv = CategoryTheory.ComposableArrows.homMk (fun (i : Fin (n + 1)) => (app i).inv)
                    @[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.obj i G.obj i) (w : ∀ (i : ) (hi : i < n), CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' F i (i + 1) hi) (app { val := i + 1, isLt := }).hom = CategoryTheory.CategoryStruct.comp (app { val := i, isLt := }).hom (CategoryTheory.ComposableArrows.map' G i (i + 1) hi)) :
                    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.obj i G.obj i) (w : ∀ (i : ) (hi : i < n), CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' F i (i + 1) hi) (app { val := i + 1, isLt := }).hom = CategoryTheory.CategoryStruct.comp (app { val := i, isLt := }).hom (CategoryTheory.ComposableArrows.map' G i (i + 1) hi)) :
                    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

                      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_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

                          "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_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 Φ).map f = F.map (Φ.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 Φ).map f).app X_1 = f.app (Φ.obj X_1)
                                    @[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 Φ).obj F).map f = F.map (Φ.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) :
                                      @[simp]
                                      theorem Fin.succFunctor_map (n : ) {i : Fin n} {j : Fin n} (hij : i j) :

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

                                      Equations
                                      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.obj F).map f = F.map (CategoryTheory.homOfLE )
                                        @[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.obj F).obj X = F.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.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).map hij = hij
                                            @[simp]

                                            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.obj F).map f = F.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.obj F).obj X = F.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.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.map f = CategoryTheory.ComposableArrows.δ₀Functor.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₁

                                                      Constructor for morphisms in ComposableArrows C 3.

                                                      Equations
                                                      Instances For
                                                        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₂
                                                        def CategoryTheory.ComposableArrows.homMk₄ {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 )) :
                                                        f g

                                                        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 := } = 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 := } = 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 := } = 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 )) :
                                                          (CategoryTheory.ComposableArrows.isoMk₄ app₀ app₁ app₂ app₃ app₄ w₀ w₁ w₂ w₃).inv = CategoryTheory.ComposableArrows.homMk₄ app₀.inv app₁.inv app₂.inv app₃.inv app₄.inv
                                                          @[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₃
                                                          def CategoryTheory.ComposableArrows.isoMk₄ {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 )) :
                                                          f g

                                                          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 ))) (w₁ : CategoryTheory.ComposableArrows.map' f 1 2 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₁) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 1 2 ) (CategoryTheory.eqToHom ))) (w₂ : CategoryTheory.ComposableArrows.map' f 2 3 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₂) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 2 3 ) (CategoryTheory.eqToHom ))) (w₃ : CategoryTheory.ComposableArrows.map' f 3 4 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₃) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 3 4 ) (CategoryTheory.eqToHom ))) :
                                                            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 := } = 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 := } = 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 := } = 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 := } = 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 )) :
                                                              (CategoryTheory.ComposableArrows.isoMk₅ app₀ app₁ app₂ app₃ app₄ app₅ w₀ w₁ w₂ w₃ w₄).inv = CategoryTheory.ComposableArrows.homMk₅ app₀.inv app₁.inv app₂.inv app₃.inv app₄.inv app₅.inv
                                                              @[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 ))) (w₁ : CategoryTheory.ComposableArrows.map' f 1 2 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₁) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 1 2 ) (CategoryTheory.eqToHom ))) (w₂ : CategoryTheory.ComposableArrows.map' f 2 3 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₂) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 2 3 ) (CategoryTheory.eqToHom ))) (w₃ : CategoryTheory.ComposableArrows.map' f 3 4 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₃) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 3 4 ) (CategoryTheory.eqToHom ))) (w₄ : CategoryTheory.ComposableArrows.map' f 4 5 = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom h₄) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' g 4 5 ) (CategoryTheory.eqToHom ))) :
                                                                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.obj i obj i), ∀ (i : ) (hi : i < n), mapSucc { val := i, isLt := hi } = CategoryTheory.CategoryStruct.comp (e { val := i, isLt := }).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.ComposableArrows.map' F i (i + 1) hi) (e { val := i + 1, isLt := }).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
                                                                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)) :
                                                                  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) hi = mapSucc { val := i, isLt := hi }
                                                                  @[simp]
                                                                  @[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).map α).app X_1 = G.map (α.app X_1)