Documentation

Mathlib.CategoryTheory.ComposableArrows.Basic

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

New simprocs that run even in dsimp have caused breakages in this file.

(e.g. dsimp can now simplify 2 + 3 to 5)

For now, we just turn off the offending simprocs in this file.

However, hopefully it is possible to refactor the material here so that no disabling of simprocs is needed.

See issue https://github.com/leanprover-community/mathlib4/issues/27382.

@[reducible, inline]
abbrev CategoryTheory.ComposableArrows (C : Type u_1) [Category.{v_1, u_1} C] (n : ) :
Type (max v_1 u_1)

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

Instances For

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

    Instances For
      @[reducible, inline]
      abbrev CategoryTheory.ComposableArrows.obj' {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) (i : ) (hi : i n := by valid) :
      C

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

      Instances For
        @[reducible, inline]
        abbrev CategoryTheory.ComposableArrows.map' {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) (i j : ) (hij : i j := by valid) (hjn : j n := by valid) :
        F.obj i, F.obj j,

        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.

        Instances For
          theorem CategoryTheory.ComposableArrows.map'_self {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) (i : ) (hi : i n := by valid) :
          F.map' i i hi = CategoryStruct.id (F.obj i, )
          theorem CategoryTheory.ComposableArrows.map'_comp {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) (i j k : ) (hij : i j := by valid) (hjk : j k := by valid) (hk : k n := by valid) :
          F.map' i k hk = CategoryStruct.comp (F.map' i j hij ) (F.map' j k hjk hk)
          @[reducible, inline]

          The leftmost object of F : ComposableArrows C n.

          Instances For
            @[reducible, inline]

            The rightmost object of F : ComposableArrows C n.

            Instances For
              @[reducible, inline]

              The canonical map F.left ⟶ F.right for F : ComposableArrows C n.

              Instances For
                @[reducible, inline]
                abbrev CategoryTheory.ComposableArrows.app' {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C n} (φ : F G) (i : ) (hi : i n := by valid) :
                F.obj' i hi G.obj' i hi

                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.

                Instances For
                  theorem CategoryTheory.ComposableArrows.naturality' {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C n} (φ : F G) (i j : ) (hij : i j := by valid) (hj : j n := by valid) :
                  CategoryStruct.comp (F.map' i j hij hj) (app' φ j hj) = CategoryStruct.comp (app' φ i ) (G.map' i j hij hj)
                  theorem CategoryTheory.ComposableArrows.naturality'_assoc {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C n} (φ : F G) (i j : ) (hij : i j := by valid) (hj : j n := by valid) {Z : C} (h : G.obj' j hj Z) :
                  CategoryStruct.comp (F.map' i j hij hj) (CategoryStruct.comp (app' φ j hj) h) = CategoryStruct.comp (app' φ i ) (CategoryStruct.comp (G.map' i j hij hj) h)

                  Constructor for ComposableArrows C 0.

                  Instances For
                    @[simp]
                    theorem CategoryTheory.ComposableArrows.mk₀_map {C : Type u_1} [Category.{v_1, u_1} C] (X : C) {X✝ Y✝ : Fin 1} (x✝ : X✝ Y✝) :
                    @[simp]
                    theorem CategoryTheory.ComposableArrows.mk₀_obj {C : Type u_1} [Category.{v_1, u_1} C] (X : C) (x✝ : Fin 1) :
                    (mk₀ X).obj x✝ = X
                    def CategoryTheory.ComposableArrows.Mk₁.obj {C : Type u_1} (X₀ X₁ : C) :
                    Fin 2C

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

                    Instances For
                      def CategoryTheory.ComposableArrows.Mk₁.map {C : Type u_1} [Category.{v_1, u_1} C] {X₀ X₁ : C} (f : X₀ X₁) (i j : Fin 2) :
                      i j → (obj X₀ X₁ i obj X₀ X₁ j)

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

                      Instances For
                        theorem CategoryTheory.ComposableArrows.Mk₁.map_id {C : Type u_1} [Category.{v_1, u_1} C] {X₀ X₁ : C} (f : X₀ X₁) (i : Fin 2) :
                        map f i i = CategoryStruct.id (obj X₀ X₁ i)
                        theorem CategoryTheory.ComposableArrows.Mk₁.map_comp {C : Type u_1} [Category.{v_1, u_1} C] {X₀ X₁ : C} (f : X₀ X₁) {i j k : Fin 2} (hij : i j) (hjk : j k) :
                        map f i k = CategoryStruct.comp (map f i j hij) (map f j k hjk)
                        def CategoryTheory.ComposableArrows.mk₁ {C : Type u_1} [Category.{v_1, u_1} C] {X₀ X₁ : C} (f : X₀ X₁) :

                        Constructor for ComposableArrows C 1.

                        Instances For
                          @[simp]
                          theorem CategoryTheory.ComposableArrows.mk₁_map {C : Type u_1} [Category.{v_1, u_1} C] {X₀ X₁ : C} (f : X₀ X₁) {X✝ Y✝ : Fin (1 + 1)} (g : X✝ Y✝) :
                          (mk₁ f).map g = Mk₁.map f X✝ Y✝
                          @[simp]
                          theorem CategoryTheory.ComposableArrows.mk₁_obj {C : Type u_1} [Category.{v_1, u_1} C] {X₀ X₁ : C} (f : X₀ X₁) (a✝ : Fin 2) :
                          (mk₁ f).obj a✝ = Mk₁.obj X₀ X₁ a✝
                          def CategoryTheory.ComposableArrows.homMk {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C n} (app : (i : Fin (n + 1)) → F.obj i G.obj i) (w : ∀ (i : ) (hi : i < n), CategoryStruct.comp (F.map' i (i + 1) hi) (app i + 1, ) = CategoryStruct.comp (app i, ) (G.map' 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.

                          Instances For
                            @[simp]
                            theorem CategoryTheory.ComposableArrows.homMk_app {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C n} (app : (i : Fin (n + 1)) → F.obj i G.obj i) (w : ∀ (i : ) (hi : i < n), CategoryStruct.comp (F.map' i (i + 1) hi) (app i + 1, ) = CategoryStruct.comp (app i, ) (G.map' i (i + 1) hi)) (i : Fin (n + 1)) :
                            (homMk app w).app i = app i
                            def CategoryTheory.ComposableArrows.isoMk {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C n} (app : (i : Fin (n + 1)) → F.obj i G.obj i) (w : ∀ (i : ) (hi : i < n), CategoryStruct.comp (F.map' i (i + 1) hi) (app i + 1, ).hom = CategoryStruct.comp (app i, ).hom (G.map' 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.

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

                              Constructor for morphisms in ComposableArrows C 0.

                              Instances For
                                @[simp]
                                theorem CategoryTheory.ComposableArrows.homMk₀_app {C : Type u_1} [Category.{v_1, u_1} C] {F G : ComposableArrows C 0} (f : F.obj' 0 homMk₀._proof_1 G.obj' 0 homMk₀._proof_1) (i : Fin (0 + 1)) :
                                (homMk₀ f).app i = match i with | 0, isLt => f

                                Constructor for isomorphisms in ComposableArrows C 0.

                                Instances For
                                  @[simp]
                                  theorem CategoryTheory.ComposableArrows.isoMk₀_inv_app {C : Type u_1} [Category.{v_1, u_1} C] {F G : ComposableArrows C 0} (e : F.obj' 0 homMk₀._proof_1 G.obj' 0 homMk₀._proof_1) (i : Fin (0 + 1)) :
                                  (isoMk₀ e).inv.app i = match i with | 0, isLt => e.inv
                                  @[simp]
                                  theorem CategoryTheory.ComposableArrows.isoMk₀_hom_app {C : Type u_1} [Category.{v_1, u_1} C] {F G : ComposableArrows C 0} (e : F.obj' 0 homMk₀._proof_1 G.obj' 0 homMk₀._proof_1) (i : Fin (0 + 1)) :
                                  (isoMk₀ e).hom.app i = match i with | 0, isLt => e.hom
                                  @[simp]
                                  theorem CategoryTheory.ComposableArrows.homMk₁_app {C : Type u_1} [Category.{v_1, u_1} C] {F G : ComposableArrows C 1} (left : F.obj' 0 homMk₁._proof_4 G.obj' 0 homMk₁._proof_4) (right : F.obj' 1 homMk₁._proof_5 G.obj' 1 homMk₁._proof_5) (w : CategoryStruct.comp (F.map' 0 1 homMk₁._proof_4 homMk₁._proof_5) right = CategoryStruct.comp left (G.map' 0 1 homMk₁._proof_4 homMk₁._proof_5) := by cat_disch) (i : Fin (1 + 1)) :
                                  (homMk₁ left right w).app i = match i with | 0, isLt => left | 1, isLt => right
                                  @[simp]
                                  theorem CategoryTheory.ComposableArrows.isoMk₁_hom_app {C : Type u_1} [Category.{v_1, u_1} C] {F G : ComposableArrows C 1} (left : F.obj' 0 homMk₁._proof_4 G.obj' 0 homMk₁._proof_4) (right : F.obj' 1 homMk₁._proof_5 G.obj' 1 homMk₁._proof_5) (w : CategoryStruct.comp (F.map' 0 1 homMk₁._proof_4 homMk₁._proof_5) right.hom = CategoryStruct.comp left.hom (G.map' 0 1 homMk₁._proof_4 homMk₁._proof_5) := by cat_disch) (i : Fin (1 + 1)) :
                                  (isoMk₁ left right w).hom.app i = match i with | 0, isLt => left.hom | 1, isLt => right.hom
                                  @[simp]
                                  theorem CategoryTheory.ComposableArrows.isoMk₁_inv_app {C : Type u_1} [Category.{v_1, u_1} C] {F G : ComposableArrows C 1} (left : F.obj' 0 homMk₁._proof_4 G.obj' 0 homMk₁._proof_4) (right : F.obj' 1 homMk₁._proof_5 G.obj' 1 homMk₁._proof_5) (w : CategoryStruct.comp (F.map' 0 1 homMk₁._proof_4 homMk₁._proof_5) right.hom = CategoryStruct.comp left.hom (G.map' 0 1 homMk₁._proof_4 homMk₁._proof_5) := by cat_disch) (i : Fin (1 + 1)) :
                                  (isoMk₁ left right w).inv.app i = match i with | 0, isLt => left.inv | 1, isLt => right.inv
                                  theorem CategoryTheory.ComposableArrows.mk₁_surjective {C : Type u_1} [Category.{v_1, u_1} C] (X : ComposableArrows C 1) :
                                  ∃ (X₀ : C) (X₁ : C) (f : X₀ X₁), X = mk₁ f
                                  theorem CategoryTheory.ComposableArrows.mk₁_eqToHom_comp {C : Type u_1} [Category.{v_1, u_1} C] {X₀' X₀ X₁ : C} (h : X₀' = X₀) (f : X₀ X₁) :
                                  theorem CategoryTheory.ComposableArrows.mk₁_comp_eqToHom {C : Type u_1} [Category.{v_1, u_1} C] {X₀ X₁ X₁' : C} (f : X₀ X₁) (h : X₁ = X₁') :

                                  The bijection between ComposableArrows C 1 and Arrow C.

                                  Instances For
                                    def CategoryTheory.ComposableArrows.Precomp.obj {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) (X : C) :
                                    Fin (n + 1 + 1)C

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

                                    Instances For
                                      @[simp]
                                      @[simp]
                                      theorem CategoryTheory.ComposableArrows.Precomp.obj_one {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) (X : C) :
                                      obj F X 1 = F.obj' 0
                                      @[simp]
                                      theorem CategoryTheory.ComposableArrows.Precomp.obj_succ {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) (X : C) (i : ) (hi : i + 1 < n + 1 + 1) :
                                      obj F X i + 1, hi = F.obj' i
                                      def CategoryTheory.ComposableArrows.Precomp.map {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) {X : C} (f : X F.left) (i j : Fin (n + 1 + 1)) :
                                      i j → (obj F X i obj F X j)

                                      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.

                                      Instances For
                                        @[simp]
                                        @[simp]
                                        theorem CategoryTheory.ComposableArrows.Precomp.map_one_one {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) {X : C} (f : X F.left) :
                                        map F f 1 1 = F.map (CategoryStruct.id 0, )
                                        @[simp]
                                        theorem CategoryTheory.ComposableArrows.Precomp.map_zero_one {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) {X : C} (f : X F.left) :
                                        map F f 0 1 = f
                                        @[simp]
                                        theorem CategoryTheory.ComposableArrows.Precomp.map_zero_one' {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) {X : C} (f : X F.left) :
                                        map F f 0 0 + 1, = f
                                        @[simp]
                                        theorem CategoryTheory.ComposableArrows.Precomp.map_zero_succ_succ {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) {X : C} (f : X F.left) (j : ) (hj : j + 2 < n + 1 + 1) :
                                        map F f 0 j + 2, hj = CategoryStruct.comp f (F.map' 0 (j + 1) )
                                        @[simp]
                                        theorem CategoryTheory.ComposableArrows.Precomp.map_succ_succ {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) {X : C} (f : X F.left) (i j : ) (hi : i + 1 < n + 1 + 1) (hj : j + 1 < n + 1 + 1) (hij : i + 1 j + 1) :
                                        map F f i + 1, hi j + 1, hj hij = F.map' i j
                                        @[simp]
                                        theorem CategoryTheory.ComposableArrows.Precomp.map_one_succ {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) {X : C} (f : X F.left) (j : ) (hj : j + 1 < n + 1 + 1) :
                                        map F f 1 j + 1, hj = F.map' 0 j
                                        theorem CategoryTheory.ComposableArrows.Precomp.map_id {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) {X : C} (f : X F.left) (i : Fin (n + 1 + 1)) :
                                        map F f i i = CategoryStruct.id (obj F X i)
                                        theorem CategoryTheory.ComposableArrows.Precomp.map_comp {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) {X : C} (f : X F.left) {i j k : Fin (n + 1 + 1)} (hij : i j) (hjk : j k) :
                                        map F f i k = CategoryStruct.comp (map F f i j hij) (map F f j k hjk)

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

                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.ComposableArrows.precomp_map {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) {X : C} (f : X F.left) {X✝ Y✝ : Fin (n + 1 + 1)} (g : X✝ Y✝) :
                                          (F.precomp f).map g = Precomp.map F f X✝ Y✝
                                          @[simp]
                                          theorem CategoryTheory.ComposableArrows.precomp_obj {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) {X : C} (f : X F.left) (a✝ : Fin (n + 1 + 1)) :
                                          (F.precomp f).obj a✝ = Precomp.obj F X a✝
                                          @[reducible, inline]
                                          abbrev CategoryTheory.ComposableArrows.mk₂ {C : Type u_1} [Category.{v_1, u_1} C] {X₀ X₁ X₂ : C} (f : X₀ X₁) (g : X₁ X₂) :

                                          Constructor for ComposableArrows C 2.

                                          Instances For
                                            @[reducible, inline]
                                            abbrev CategoryTheory.ComposableArrows.mk₃ {C : Type u_1} [Category.{v_1, u_1} C] {X₀ X₁ X₂ X₃ : C} (f : X₀ X₁) (g : X₁ X₂) (h : X₂ X₃) :

                                            Constructor for ComposableArrows C 3.

                                            Instances For
                                              @[reducible, inline]
                                              abbrev CategoryTheory.ComposableArrows.mk₄ {C : Type u_1} [Category.{v_1, u_1} C] {X₀ X₁ X₂ X₃ X₄ : C} (f : X₀ X₁) (g : X₁ X₂) (h : X₂ X₃) (i : X₃ X₄) :

                                              Constructor for ComposableArrows C 4.

                                              Instances For
                                                @[reducible, inline]
                                                abbrev CategoryTheory.ComposableArrows.mk₅ {C : Type u_1} [Category.{v_1, u_1} C] {X₀ X₁ X₂ X₃ X₄ X₅ : C} (f : X₀ X₁) (g : X₁ X₂) (h : X₂ X₃) (i : X₃ X₄) (j : X₄ X₅) :

                                                Constructor for ComposableArrows C 5.

                                                Instances For

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

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

                                                  Instances For
                                                    @[simp]
                                                    theorem CategoryTheory.ComposableArrows.whiskerLeft_obj {C : Type u_1} [Category.{v_1, u_1} C] {n m : } (F : ComposableArrows C m) (Φ : Functor (Fin (n + 1)) (Fin (m + 1))) (X : Fin (n + 1)) :
                                                    (F.whiskerLeft Φ).obj X = F.obj (Φ.obj X)
                                                    @[simp]
                                                    theorem CategoryTheory.ComposableArrows.whiskerLeft_map {C : Type u_1} [Category.{v_1, u_1} C] {n m : } (F : ComposableArrows C m) (Φ : Functor (Fin (n + 1)) (Fin (m + 1))) {X✝ Y✝ : Fin (n + 1)} (f : X✝ Y✝) :
                                                    (F.whiskerLeft Φ).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).

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

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

                                                      Instances For
                                                        @[simp]
                                                        theorem Fin.succFunctor_obj (n : ) (i : Fin n) :
                                                        @[simp]
                                                        theorem Fin.succFunctor_map (n : ) {x✝ x✝¹ : Fin n} (hij : x✝ x✝¹) :

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

                                                        Instances For
                                                          @[simp]
                                                          theorem CategoryTheory.ComposableArrows.δ₀Functor_obj_map {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C (n + 1)) {X✝ Y✝ : Fin (n + 1)} (f : X✝ Y✝) :
                                                          @[simp]
                                                          theorem CategoryTheory.ComposableArrows.δ₀Functor_map_app {C : Type u_1} [Category.{v_1, u_1} C] {n : } {X✝ Y✝ : ComposableArrows C (n + 1)} (f : X✝ Y✝) (X : Fin (n + 1)) :
                                                          @[reducible, inline]

                                                          The ComposableArrows C n obtained by forgetting the first arrow.

                                                          Instances For
                                                            @[simp]
                                                            theorem CategoryTheory.ComposableArrows.precomp_δ₀ {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) {X : C} (f : X F.left) :
                                                            (F.precomp f).δ₀ = F

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

                                                            Instances For
                                                              @[simp]
                                                              theorem Fin.castSuccFunctor_map (n : ) {X✝ Y✝ : Fin n} (hij : X✝ Y✝) :
                                                              (castSuccFunctor n).map hij = hij
                                                              @[simp]

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

                                                              Instances For
                                                                @[simp]
                                                                theorem CategoryTheory.ComposableArrows.δlastFunctor_map_app {C : Type u_1} [Category.{v_1, u_1} C] {n : } {X✝ Y✝ : ComposableArrows C (n + 1)} (f : X✝ Y✝) (X : Fin (n + 1)) :
                                                                @[simp]
                                                                theorem CategoryTheory.ComposableArrows.δlastFunctor_obj_map {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C (n + 1)) {X✝ Y✝ : Fin (n + 1)} (f : X✝ Y✝) :
                                                                @[reducible, inline]

                                                                The ComposableArrows C n obtained by forgetting the first arrow.

                                                                Instances For
                                                                  def CategoryTheory.ComposableArrows.homMkSucc {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C (n + 1)} (α : F.obj' 0 G.obj' 0 ) (β : F.δ₀ G.δ₀) (w : CategoryStruct.comp (F.map' 0 1 homMk₁._proof_4 ) (app' β 0 ) = CategoryStruct.comp α (G.map' 0 1 homMk₁._proof_4 )) :
                                                                  F G

                                                                  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.

                                                                  Instances For
                                                                    @[simp]
                                                                    theorem CategoryTheory.ComposableArrows.homMkSucc_app_zero {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C (n + 1)} (α : F.obj' 0 G.obj' 0 ) (β : F.δ₀ G.δ₀) (w : CategoryStruct.comp (F.map' 0 1 homMk₁._proof_4 ) (app' β 0 ) = CategoryStruct.comp α (G.map' 0 1 homMk₁._proof_4 ) := by cat_disch) :
                                                                    (homMkSucc α β w).app 0 = α
                                                                    @[simp]
                                                                    theorem CategoryTheory.ComposableArrows.homMkSucc_app_succ {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C (n + 1)} (α : F.obj' 0 G.obj' 0 ) (β : F.δ₀ G.δ₀) (w : CategoryStruct.comp (F.map' 0 1 homMk₁._proof_4 ) (app' β 0 ) = CategoryStruct.comp α (G.map' 0 1 homMk₁._proof_4 ) := by cat_disch) (i : ) (hi : i + 1 < n + 1 + 1) :
                                                                    (homMkSucc α β w).app i + 1, hi = app' β i
                                                                    theorem CategoryTheory.ComposableArrows.hom_ext_succ {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C (n + 1)} {f g : F G} (h₀ : app' f 0 = app' g 0 ) (h₁ : δ₀Functor.map f = δ₀Functor.map g) :
                                                                    f = g
                                                                    def CategoryTheory.ComposableArrows.isoMkSucc {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C (n + 1)} (α : F.obj' 0 G.obj' 0 ) (β : F.δ₀ G.δ₀) (w : CategoryStruct.comp (F.map' 0 1 homMk₁._proof_4 ) (app' β.hom 0 ) = CategoryStruct.comp α.hom (G.map' 0 1 homMk₁._proof_4 )) :
                                                                    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.

                                                                    Instances For
                                                                      @[simp]
                                                                      theorem CategoryTheory.ComposableArrows.isoMkSucc_hom {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C (n + 1)} (α : F.obj' 0 G.obj' 0 ) (β : F.δ₀ G.δ₀) (w : CategoryStruct.comp (F.map' 0 1 homMk₁._proof_4 ) (app' β.hom 0 ) = CategoryStruct.comp α.hom (G.map' 0 1 homMk₁._proof_4 )) :
                                                                      (isoMkSucc α β w).hom = homMkSucc α.hom β.hom w
                                                                      @[simp]
                                                                      theorem CategoryTheory.ComposableArrows.isoMkSucc_inv {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C (n + 1)} (α : F.obj' 0 G.obj' 0 ) (β : F.δ₀ G.δ₀) (w : CategoryStruct.comp (F.map' 0 1 homMk₁._proof_4 ) (app' β.hom 0 ) = CategoryStruct.comp α.hom (G.map' 0 1 homMk₁._proof_4 )) :
                                                                      (isoMkSucc α β w).inv = homMkSucc α.inv β.inv
                                                                      theorem CategoryTheory.ComposableArrows.ext_succ {C : Type u_1} [Category.{v_1, u_1} C] {n : } {F G : ComposableArrows C (n + 1)} (h₀ : F.obj' 0 = G.obj' 0 ) (h : F.δ₀ = G.δ₀) (w : F.map' 0 1 homMk₁._proof_4 = CategoryStruct.comp (eqToHom h₀) (CategoryStruct.comp (G.map' 0 1 homMk₁._proof_4 ) (eqToHom ))) :
                                                                      F = G
                                                                      theorem CategoryTheory.ComposableArrows.precomp_surjective {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C (n + 1)) :
                                                                      ∃ (F₀ : ComposableArrows C n) (X₀ : C) (f₀ : X₀ F₀.left), F = F₀.precomp f₀
                                                                      theorem CategoryTheory.ComposableArrows.hom_ext₂ {C : Type u_1} [Category.{v_1, u_1} C] {f g : ComposableArrows C 2} {φ φ' : f g} (h₀ : app' φ 0 _proof_237✝ = app' φ' 0 _proof_237✝¹) (h₁ : app' φ 1 _proof_238✝ = app' φ' 1 _proof_238✝¹) (h₂ : app' φ 2 _proof_239✝ = app' φ' 2 _proof_239✝¹) :
                                                                      φ = φ'
                                                                      @[simp]
                                                                      theorem CategoryTheory.ComposableArrows.isoMk₂_hom {C : Type u_1} [Category.{v_1, u_1} C] {f g : ComposableArrows C 2} (app₀ : f.obj' 0 _proof_237✝ g.obj' 0 _proof_237✝¹) (app₁ : f.obj' 1 _proof_238✝ g.obj' 1 _proof_238✝¹) (app₂ : f.obj' 2 _proof_239✝ g.obj' 2 _proof_239✝¹) (w₀ : CategoryStruct.comp (f.map' 0 1 homMk₁._proof_4 _proof_238✝²) app₁.hom = CategoryStruct.comp app₀.hom (g.map' 0 1 homMk₁._proof_4 _proof_238✝³) := by cat_disch) (w₁ : CategoryStruct.comp (f.map' 1 2 _proof_238✝⁴ _proof_239✝²) app₂.hom = CategoryStruct.comp app₁.hom (g.map' 1 2 _proof_238✝⁵ _proof_239✝³) := by cat_disch) :
                                                                      (isoMk₂ app₀ app₁ app₂ w₀ w₁).hom = homMk₂ app₀.hom app₁.hom app₂.hom w₀ w₁
                                                                      @[simp]
                                                                      theorem CategoryTheory.ComposableArrows.isoMk₂_inv {C : Type u_1} [Category.{v_1, u_1} C] {f g : ComposableArrows C 2} (app₀ : f.obj' 0 _proof_237✝ g.obj' 0 _proof_237✝¹) (app₁ : f.obj' 1 _proof_238✝ g.obj' 1 _proof_238✝¹) (app₂ : f.obj' 2 _proof_239✝ g.obj' 2 _proof_239✝¹) (w₀ : CategoryStruct.comp (f.map' 0 1 homMk₁._proof_4 _proof_238✝²) app₁.hom = CategoryStruct.comp app₀.hom (g.map' 0 1 homMk₁._proof_4 _proof_238✝³) := by cat_disch) (w₁ : CategoryStruct.comp (f.map' 1 2 _proof_238✝⁴ _proof_239✝²) app₂.hom = CategoryStruct.comp app₁.hom (g.map' 1 2 _proof_238✝⁵ _proof_239✝³) := by cat_disch) :
                                                                      (isoMk₂ app₀ app₁ app₂ w₀ w₁).inv = homMk₂ app₀.inv app₁.inv app₂.inv
                                                                      theorem CategoryTheory.ComposableArrows.mk₂_surjective {C : Type u_1} [Category.{v_1, u_1} C] (X : ComposableArrows C 2) :
                                                                      ∃ (X₀ : C) (X₁ : C) (X₂ : C) (f₀ : X₀ X₁) (f₁ : X₁ X₂), X = mk₂ f₀ f₁
                                                                      @[simp]
                                                                      theorem CategoryTheory.ComposableArrows.hom_ext₃ {C : Type u_1} [Category.{v_1, u_1} C] {f g : ComposableArrows C 3} {φ φ' : f g} (h₀ : app' φ 0 _proof_289✝ = app' φ' 0 _proof_289✝¹) (h₁ : app' φ 1 _proof_290✝ = app' φ' 1 _proof_290✝¹) (h₂ : app' φ 2 _proof_291✝ = app' φ' 2 _proof_291✝¹) (h₃ : app' φ 3 _proof_292✝ = app' φ' 3 _proof_292✝¹) :
                                                                      φ = φ'
                                                                      theorem CategoryTheory.ComposableArrows.mk₃_surjective {C : Type u_1} [Category.{v_1, u_1} C] (X : ComposableArrows C 3) :
                                                                      ∃ (X₀ : C) (X₁ : C) (X₂ : C) (X₃ : C) (f₀ : X₀ X₁) (f₁ : X₁ X₂) (f₂ : X₂ X₃), X = mk₃ f₀ f₁ f₂
                                                                      @[simp]
                                                                      @[simp]
                                                                      theorem CategoryTheory.ComposableArrows.homMk₄_app_one {C : Type u_1} [Category.{v_1, u_1} C] {f g : ComposableArrows C 4} (app₀ : f.obj' 0 _proof_353✝ g.obj' 0 _proof_353✝¹) (app₁ : f.obj' 1 _proof_354✝ g.obj' 1 _proof_354✝¹) (app₂ : f.obj' 2 _proof_355✝ g.obj' 2 _proof_355✝¹) (app₃ : f.obj' 3 _proof_356✝ g.obj' 3 _proof_356✝¹) (app₄ : f.obj' 4 _proof_357✝ g.obj' 4 _proof_357✝¹) (w₀ : CategoryStruct.comp (f.map' 0 1 homMk₁._proof_4 _proof_354✝²) app₁ = CategoryStruct.comp app₀ (g.map' 0 1 homMk₁._proof_4 _proof_354✝³) := by cat_disch) (w₁ : CategoryStruct.comp (f.map' 1 2 _proof_238✝ _proof_355✝²) app₂ = CategoryStruct.comp app₁ (g.map' 1 2 _proof_238✝¹ _proof_355✝³) := by cat_disch) (w₂ : CategoryStruct.comp (f.map' 2 3 _proof_291✝ _proof_356✝²) app₃ = CategoryStruct.comp app₂ (g.map' 2 3 _proof_291✝¹ _proof_356✝³) := by cat_disch) (w₃ : CategoryStruct.comp (f.map' 3 4 _proof_356✝⁴ _proof_357✝²) app₄ = CategoryStruct.comp app₃ (g.map' 3 4 _proof_356✝⁵ _proof_357✝³) := by cat_disch) :
                                                                      (homMk₄ app₀ app₁ app₂ app₃ app₄ w₀ w₁ w₂ w₃).app 1 = app₁
                                                                      theorem CategoryTheory.ComposableArrows.hom_ext₄ {C : Type u_1} [Category.{v_1, u_1} C] {f g : ComposableArrows C 4} {φ φ' : f g} (h₀ : app' φ 0 _proof_353✝ = app' φ' 0 _proof_353✝¹) (h₁ : app' φ 1 _proof_354✝ = app' φ' 1 _proof_354✝¹) (h₂ : app' φ 2 _proof_355✝ = app' φ' 2 _proof_355✝¹) (h₃ : app' φ 3 _proof_356✝ = app' φ' 3 _proof_356✝¹) (h₄ : app' φ 4 _proof_357✝ = app' φ' 4 _proof_357✝¹) :
                                                                      φ = φ'
                                                                      theorem CategoryTheory.ComposableArrows.map'_inv_eq_inv_map' {C : Type u_1} [Category.{v_1, u_1} C] {n m : } (h : n + 1 m) {f g : ComposableArrows C m} (app : f.obj' n g.obj' n ) (app' : f.obj' (n + 1) h g.obj' (n + 1) h) (w : CategoryStruct.comp (f.map' n (n + 1) h) app'.hom = CategoryStruct.comp app.hom (g.map' n (n + 1) h)) :
                                                                      CategoryStruct.comp (g.map' n (n + 1) h) app'.inv = CategoryStruct.comp app.inv (f.map' n (n + 1) h)
                                                                      theorem CategoryTheory.ComposableArrows.mk₄_surjective {C : Type u_1} [Category.{v_1, u_1} C] (X : 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 = mk₄ f₀ f₁ f₂ f₃
                                                                      @[simp]
                                                                      theorem CategoryTheory.ComposableArrows.homMk₅_app_zero {C : Type u_1} [Category.{v_1, u_1} C] {f g : ComposableArrows C 5} (app₀ : f.obj' 0 _proof_441✝ g.obj' 0 _proof_441✝¹) (app₁ : f.obj' 1 _proof_442✝ g.obj' 1 _proof_442✝¹) (app₂ : f.obj' 2 _proof_443✝ g.obj' 2 _proof_443✝¹) (app₃ : f.obj' 3 _proof_444✝ g.obj' 3 _proof_444✝¹) (app₄ : f.obj' 4 _proof_445✝ g.obj' 4 _proof_445✝¹) (app₅ : f.obj' 5 _proof_446✝ g.obj' 5 _proof_446✝¹) (w₀ : CategoryStruct.comp (f.map' 0 1 homMk₁._proof_4 _proof_442✝²) app₁ = CategoryStruct.comp app₀ (g.map' 0 1 homMk₁._proof_4 _proof_442✝³) := by cat_disch) (w₁ : CategoryStruct.comp (f.map' 1 2 _proof_238✝ _proof_443✝²) app₂ = CategoryStruct.comp app₁ (g.map' 1 2 _proof_238✝¹ _proof_443✝³) := by cat_disch) (w₂ : CategoryStruct.comp (f.map' 2 3 _proof_291✝ _proof_444✝²) app₃ = CategoryStruct.comp app₂ (g.map' 2 3 _proof_291✝¹ _proof_444✝³) := by cat_disch) (w₃ : CategoryStruct.comp (f.map' 3 4 _proof_356✝ _proof_445✝²) app₄ = CategoryStruct.comp app₃ (g.map' 3 4 _proof_356✝¹ _proof_445✝³) := by cat_disch) (w₄ : CategoryStruct.comp (f.map' 4 5 _proof_445✝⁴ _proof_446✝²) app₅ = CategoryStruct.comp app₄ (g.map' 4 5 _proof_445✝⁵ _proof_446✝³) := by cat_disch) :
                                                                      (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} [Category.{v_1, u_1} C] {f g : ComposableArrows C 5} (app₀ : f.obj' 0 _proof_441✝ g.obj' 0 _proof_441✝¹) (app₁ : f.obj' 1 _proof_442✝ g.obj' 1 _proof_442✝¹) (app₂ : f.obj' 2 _proof_443✝ g.obj' 2 _proof_443✝¹) (app₃ : f.obj' 3 _proof_444✝ g.obj' 3 _proof_444✝¹) (app₄ : f.obj' 4 _proof_445✝ g.obj' 4 _proof_445✝¹) (app₅ : f.obj' 5 _proof_446✝ g.obj' 5 _proof_446✝¹) (w₀ : CategoryStruct.comp (f.map' 0 1 homMk₁._proof_4 _proof_442✝²) app₁ = CategoryStruct.comp app₀ (g.map' 0 1 homMk₁._proof_4 _proof_442✝³) := by cat_disch) (w₁ : CategoryStruct.comp (f.map' 1 2 _proof_238✝ _proof_443✝²) app₂ = CategoryStruct.comp app₁ (g.map' 1 2 _proof_238✝¹ _proof_443✝³) := by cat_disch) (w₂ : CategoryStruct.comp (f.map' 2 3 _proof_291✝ _proof_444✝²) app₃ = CategoryStruct.comp app₂ (g.map' 2 3 _proof_291✝¹ _proof_444✝³) := by cat_disch) (w₃ : CategoryStruct.comp (f.map' 3 4 _proof_356✝ _proof_445✝²) app₄ = CategoryStruct.comp app₃ (g.map' 3 4 _proof_356✝¹ _proof_445✝³) := by cat_disch) (w₄ : CategoryStruct.comp (f.map' 4 5 _proof_445✝⁴ _proof_446✝²) app₅ = CategoryStruct.comp app₄ (g.map' 4 5 _proof_445✝⁵ _proof_446✝³) := by cat_disch) :
                                                                      (homMk₅ app₀ app₁ app₂ app₃ app₄ app₅ w₀ w₁ w₂ w₃ w₄).app 1 = app₁
                                                                      theorem CategoryTheory.ComposableArrows.hom_ext₅ {C : Type u_1} [Category.{v_1, u_1} C] {f g : ComposableArrows C 5} {φ φ' : f g} (h₀ : app' φ 0 _proof_441✝ = app' φ' 0 _proof_441✝¹) (h₁ : app' φ 1 _proof_442✝ = app' φ' 1 _proof_442✝¹) (h₂ : app' φ 2 _proof_443✝ = app' φ' 2 _proof_443✝¹) (h₃ : app' φ 3 _proof_444✝ = app' φ' 3 _proof_444✝¹) (h₄ : app' φ 4 _proof_445✝ = app' φ' 4 _proof_445✝¹) (h₅ : app' φ 5 _proof_446✝ = app' φ' 5 _proof_446✝¹) :
                                                                      φ = φ'
                                                                      @[simp]
                                                                      @[simp]
                                                                      theorem CategoryTheory.ComposableArrows.mk₅_surjective {C : Type u_1} [Category.{v_1, u_1} C] (X : 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 = mk₅ f₀ f₁ f₂ f₃ f₄
                                                                      def CategoryTheory.ComposableArrows.arrow {C : Type u_1} [Category.{v_1, u_1} C] {n : } (F : ComposableArrows C n) (i : ) (hi : i < n := by valid) :

                                                                      The ith arrow of F : ComposableArrows C n.

                                                                      Instances For
                                                                        theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_exists {C : Type u_1} [Category.{v_1, u_1} C] {n : } (obj : Fin (n + 1)C) (mapSucc : (i : Fin n) → obj i.castSucc obj i.succ) :
                                                                        ∃ (F : ComposableArrows C n) (e : (i : Fin (n + 1)) → F.obj i obj i), ∀ (i : ) (hi : i < n), mapSucc i, hi = CategoryStruct.comp (e i, ).inv (CategoryStruct.comp (F.map' i (i + 1) hi) (e i + 1, ).hom)
                                                                        noncomputable def CategoryTheory.ComposableArrows.mkOfObjOfMapSucc {C : Type u_1} [Category.{v_1, u_1} C] {n : } (obj : Fin (n + 1)C) (mapSucc : (i : Fin n) → obj i.castSucc obj i.succ) :

                                                                        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⟩.

                                                                        Instances For
                                                                          @[simp]
                                                                          theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_obj {C : Type u_1} [Category.{v_1, u_1} C] {n : } (obj : Fin (n + 1)C) (mapSucc : (i : Fin n) → obj i.castSucc obj i.succ) (i : Fin (n + 1)) :
                                                                          (mkOfObjOfMapSucc obj mapSucc).obj i = obj i
                                                                          theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_map_succ {C : Type u_1} [Category.{v_1, u_1} C] {n : } (obj : Fin (n + 1)C) (mapSucc : (i : Fin n) → obj i.castSucc obj i.succ) (i : ) (hi : i < n := by valid) :
                                                                          (mkOfObjOfMapSucc obj mapSucc).map' i (i + 1) hi = mapSucc i, hi
                                                                          theorem CategoryTheory.ComposableArrows.mkOfObjOfMapSucc_arrow {C : Type u_1} [Category.{v_1, u_1} C] {n : } (obj : Fin (n + 1)C) (mapSucc : (i : Fin n) → obj i.castSucc obj i.succ) (i : ) (hi : i < n := by valid) :
                                                                          (mkOfObjOfMapSucc obj mapSucc).arrow i hi = mk₁ (mapSucc i, hi)

                                                                          The equivalence (ComposableArrows C n)ᵒᵖ ≌ ComposableArrows Cᵒᵖ n obtained by reversing the arrows.

                                                                          Instances For
                                                                            @[simp]
                                                                            theorem CategoryTheory.ComposableArrows.opEquivalence_functor_obj_map (C : Type u_1) [Category.{v_1, u_1} C] (n : ) (X : (Functor (Fin (n + 1)) C)ᵒᵖ) {X✝ Y✝ : Fin (n + 1)} (f : X✝ Y✝) :
                                                                            @[simp]
                                                                            theorem CategoryTheory.ComposableArrows.opEquivalence_functor_map_app (C : Type u_1) [Category.{v_1, u_1} C] (n : ) {X✝ Y✝ : (Functor (Fin (n + 1)) C)ᵒᵖ} (f : X✝ Y✝) (x✝ : Fin (n + 1)) :
                                                                            ((opEquivalence C n).functor.map f).app x✝ = (f.unop.app x✝.rev).op

                                                                            The functor ComposableArrows C n ⥤ ComposableArrows D n obtained by postcomposition with a functor C ⥤ D.

                                                                            Instances For
                                                                              @[simp]
                                                                              theorem CategoryTheory.Functor.mapComposableArrows_map_app {C : Type u_1} [Category.{v_1, u_1} C] {D : Type u_2} [Category.{v_2, u_2} D] (G : Functor C D) (n : ) {X✝ Y✝ : Functor (Fin (n + 1)) C} (α : X✝ Y✝) (X : Fin (n + 1)) :
                                                                              ((G.mapComposableArrows n).map α).app X = G.map (α.app X)
                                                                              @[simp]
                                                                              theorem CategoryTheory.Functor.mapComposableArrows_obj_map {C : Type u_1} [Category.{v_1, u_1} C] {D : Type u_2} [Category.{v_2, u_2} D] (G : Functor C D) (n : ) (F : Functor (Fin (n + 1)) C) {X✝ Y✝ : Fin (n + 1)} (f : X✝ Y✝) :
                                                                              ((G.mapComposableArrows n).obj F).map f = G.map (F.map f)
                                                                              @[simp]
                                                                              theorem CategoryTheory.Functor.mapComposableArrows_obj_obj {C : Type u_1} [Category.{v_1, u_1} C] {D : Type u_2} [Category.{v_2, u_2} D] (G : Functor C D) (n : ) (F : Functor (Fin (n + 1)) C) (X : Fin (n + 1)) :
                                                                              ((G.mapComposableArrows n).obj F).obj X = G.obj (F.obj X)

                                                                              The isomorphism between (G.mapComposableArrows 1).obj (.mk₁ f) and .mk₁ (G.map f).

                                                                              Instances For
                                                                                @[simp]
                                                                                theorem CategoryTheory.Functor.mapComposableArrowsObjMk₁Iso_hom_app {C : Type u_1} [Category.{v_1, u_1} C] {D : Type u_2} [Category.{v_2, u_2} D] (G : Functor C D) {X Y : C} (f : X Y) (i : Fin (1 + 1)) :
                                                                                (G.mapComposableArrowsObjMk₁Iso f).hom.app i = match i with | 0, isLt => CategoryStruct.id (G.obj X) | 1, isLt => CategoryStruct.id (G.obj Y)
                                                                                @[simp]
                                                                                theorem CategoryTheory.Functor.mapComposableArrowsObjMk₁Iso_inv_app {C : Type u_1} [Category.{v_1, u_1} C] {D : Type u_2} [Category.{v_2, u_2} D] (G : Functor C D) {X Y : C} (f : X Y) (i : Fin (1 + 1)) :
                                                                                (G.mapComposableArrowsObjMk₁Iso f).inv.app i = match i with | 0, isLt => CategoryStruct.id (G.obj X) | 1, isLt => CategoryStruct.id (G.obj Y)

                                                                                The isomorphism between (G.mapComposableArrows 2).obj (.mk₂ f g) and .mk₂ (G.map f) (G.map g).

                                                                                Instances For
                                                                                  @[simp]
                                                                                  theorem CategoryTheory.Functor.mapComposableArrowsObjMk₂Iso_hom_app {C : Type u_1} [Category.{v_1, u_1} C] {D : Type u_2} [Category.{v_2, u_2} D] (G : Functor C D) {X Y Z : C} (f : X Y) (g : Y Z) (i : Fin (1 + 1 + 1)) :
                                                                                  (G.mapComposableArrowsObjMk₂Iso f g).hom.app i = match i with | 0, isLt => CategoryStruct.id (G.obj X) | i.succ, hi => match i, with | 0, isLt => CategoryStruct.id (G.obj Y) | 1, isLt => CategoryStruct.id (G.obj Z)
                                                                                  @[simp]
                                                                                  theorem CategoryTheory.Functor.mapComposableArrowsObjMk₂Iso_inv_app {C : Type u_1} [Category.{v_1, u_1} C] {D : Type u_2} [Category.{v_2, u_2} D] (G : Functor C D) {X Y Z : C} (f : X Y) (g : Y Z) (i : Fin (1 + 1 + 1)) :
                                                                                  (G.mapComposableArrowsObjMk₂Iso f g).inv.app i = match i with | 0, isLt => CategoryStruct.id (G.obj X) | i.succ, hi => match i, with | 0, isLt => CategoryStruct.id (G.obj Y) | 1, isLt => CategoryStruct.id (G.obj Z)