Documentation

Mathlib.Algebra.Homology.HomotopyCofiber

The homotopy cofiber of a morphism of homological complexes

In this file, we construct the homotopy cofiber of a morphism φ : F ⟶ G between homological complexes in HomologicalComplex C c. In degree i, it is isomorphic to (F.X j) ⊞ (G.X i) if there is a j such that c.Rel i j, and G.X i otherwise. (This is also known as the mapping cone of φ. Under the name CochainComplex.mappingCone, a specific API shall be developed for the case of cochain complexes indexed by .)

When we assume hc : ∀ j, ∃ i, c.Rel i j (which holds in the case of chain complexes, or cochain complexes indexed by ), then for any homological complex K, there is a bijection HomologicalComplex.homotopyCofiber.descEquiv φ K hc between homotopyCofiber φ ⟶ K and the tuples (α, hα) with α : G ⟶ K and hα : Homotopy (φ ≫ α) 0.

We shall also study the cylinder of a homological complex K: this is the homotopy cofiber of the morphism biprod.lift (𝟙 K) (-𝟙 K) : K ⟶ K ⊞ K. Then, a morphism K.cylinder ⟶ M is determined by the data of two morphisms φ₀ φ₁ : K ⟶ M and a homotopy h : Homotopy φ₀ φ₁, see cylinder.desc. There is also a homotopy equivalence cylinder.homotopyEquiv K : HomotopyEquiv K.cylinder K. From the construction of the cylinder, we deduce the lemma Homotopy.map_eq_of_inverts_homotopyEquivalences which assert that if a functor inverts homotopy equivalences, then the image of two homotopic maps are equal.

A morphism of homological complexes φ : F ⟶ G has a homotopy cofiber if for all indices i and j such that c.Rel i j, the binary biproduct F.X j ⊞ G.X i exists.

Instances
    noncomputable def HomologicalComplex.homotopyCofiber.X {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i : ι) :
    C

    The X field of the homological complex homotopyCofiber φ.

    Equations
    Instances For
      noncomputable def HomologicalComplex.homotopyCofiber.XIsoBiprod {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j : ι) (hij : c.Rel i j) [CategoryTheory.Limits.HasBinaryBiproduct (F.X j) (G.X i)] :
      X φ i F.X j G.X i

      The canonical isomorphism (homotopyCofiber φ).X i ≅ F.X j ⊞ G.X i when c.Rel i j.

      Equations
      Instances For
        noncomputable def HomologicalComplex.homotopyCofiber.XIso {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i : ι) (hi : ¬c.Rel i (c.next i)) :
        X φ i G.X i

        The canonical isomorphism (homotopyCofiber φ).X i ≅ G.X i when ¬ c.Rel i (c.next i).

        Equations
        Instances For
          noncomputable def HomologicalComplex.homotopyCofiber.sndX {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i : ι) :
          X φ i G.X i

          The second projection (homotopyCofiber φ).X i ⟶ G.X i.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            noncomputable def HomologicalComplex.homotopyCofiber.inrX {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i : ι) :
            G.X i X φ i

            The right inclusion G.X i ⟶ (homotopyCofiber φ).X i.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              noncomputable def HomologicalComplex.homotopyCofiber.fstX {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j : ι) (hij : c.Rel i j) :
              X φ i F.X j

              The first projection (homotopyCofiber φ).X i ⟶ F.X j when c.Rel i j.

              Equations
              Instances For
                noncomputable def HomologicalComplex.homotopyCofiber.inlX {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j : ι) (hij : c.Rel j i) :
                F.X i X φ j

                The left inclusion F.X i ⟶ (homotopyCofiber φ).X j when c.Rel j i.

                Equations
                Instances For
                  @[simp]
                  theorem HomologicalComplex.homotopyCofiber.inlX_fstX_assoc {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j : ι) (hij : c.Rel j i) {Z : C} (h : F.X i Z) :
                  @[simp]
                  theorem HomologicalComplex.homotopyCofiber.inlX_sndX {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j : ι) (hij : c.Rel j i) :
                  @[simp]
                  theorem HomologicalComplex.homotopyCofiber.inrX_fstX {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j : ι) (hij : c.Rel i j) :
                  noncomputable def HomologicalComplex.homotopyCofiber.d {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j : ι) :
                  X φ i X φ j

                  The d field of the homological complex homotopyCofiber φ.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem HomologicalComplex.homotopyCofiber.ext_to_X {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j : ι) (hij : c.Rel i j) {A : C} {f g : A X φ i} (h₁ : CategoryTheory.CategoryStruct.comp f (fstX φ i j hij) = CategoryTheory.CategoryStruct.comp g (fstX φ i j hij)) (h₂ : CategoryTheory.CategoryStruct.comp f (sndX φ i) = CategoryTheory.CategoryStruct.comp g (sndX φ i)) :
                    f = g
                    theorem HomologicalComplex.homotopyCofiber.ext_to_X' {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i : ι) (hi : ¬c.Rel i (c.next i)) {A : C} {f g : A X φ i} (h : CategoryTheory.CategoryStruct.comp f (sndX φ i) = CategoryTheory.CategoryStruct.comp g (sndX φ i)) :
                    f = g
                    theorem HomologicalComplex.homotopyCofiber.ext_from_X' {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i : ι) (hi : ¬c.Rel i (c.next i)) {A : C} {f g : X φ i A} (h : CategoryTheory.CategoryStruct.comp (inrX φ i) f = CategoryTheory.CategoryStruct.comp (inrX φ i) g) :
                    f = g
                    theorem HomologicalComplex.homotopyCofiber.d_fstX {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j k : ι) (hij : c.Rel i j) (hjk : c.Rel j k) :
                    theorem HomologicalComplex.homotopyCofiber.d_fstX_assoc {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j k : ι) (hij : c.Rel i j) (hjk : c.Rel j k) {Z : C} (h : F.X k Z) :
                    theorem HomologicalComplex.homotopyCofiber.inlX_d {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j k : ι) (hij : c.Rel i j) (hjk : c.Rel j k) :
                    theorem HomologicalComplex.homotopyCofiber.inlX_d' {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j : ι) (hij : c.Rel i j) (hj : ¬c.Rel j (c.next j)) :
                    theorem HomologicalComplex.homotopyCofiber.shape {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (i j : ι) (hij : ¬c.Rel i j) :
                    d φ i j = 0

                    The homotopy cofiber of a morphism of homological complexes, also known as the mapping cone.

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

                      The right inclusion G ⟶ homotopyCofiber φ.

                      Equations
                      Instances For
                        @[simp]
                        noncomputable def HomologicalComplex.homotopyCofiber.inrCompHomotopy {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (hc : ∀ (j : ι), ∃ (i : ι), c.Rel i j) :

                        The composition φ ≫ mappingCone.inr φ is homotopic to 0.

                        Equations
                        Instances For
                          theorem HomologicalComplex.homotopyCofiber.inrCompHomotopy_hom {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (hc : ∀ (j : ι), ∃ (i : ι), c.Rel i j) (i j : ι) (hij : c.Rel j i) :
                          (inrCompHomotopy φ hc).hom i j = inlX φ i j hij
                          theorem HomologicalComplex.homotopyCofiber.inrCompHomotopy_hom_eq_zero {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (hc : ∀ (j : ι), ∃ (i : ι), c.Rel i j) (i j : ι) (hij : ¬c.Rel j i) :
                          (inrCompHomotopy φ hc).hom i j = 0

                          The morphism homotopyCofiber φ ⟶ K that is induced by a morphism α : G ⟶ K and a homotopy hα : Homotopy (φ ≫ α) 0.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            theorem HomologicalComplex.homotopyCofiber.desc_f {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G K : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (α : G K) (hα : Homotopy (CategoryTheory.CategoryStruct.comp φ α) 0) (j k : ι) (hjk : c.Rel j k) :
                            (desc φ α ).f j = CategoryTheory.CategoryStruct.comp (fstX φ j k hjk) (.hom k j) + CategoryTheory.CategoryStruct.comp (sndX φ j) (α.f j)
                            theorem HomologicalComplex.homotopyCofiber.desc_f' {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G K : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (α : G K) (hα : Homotopy (CategoryTheory.CategoryStruct.comp φ α) 0) (j : ι) (hj : ¬c.Rel j (c.next j)) :
                            (desc φ α ).f j = CategoryTheory.CategoryStruct.comp (sndX φ j) (α.f j)
                            @[simp]
                            theorem HomologicalComplex.homotopyCofiber.inlX_desc_f {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G K : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (α : G K) (hα : Homotopy (CategoryTheory.CategoryStruct.comp φ α) 0) (i j : ι) (hjk : c.Rel j i) :
                            CategoryTheory.CategoryStruct.comp (inlX φ i j hjk) ((desc φ α ).f j) = .hom i j
                            @[simp]
                            theorem HomologicalComplex.homotopyCofiber.inlX_desc_f_assoc {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G K : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (α : G K) (hα : Homotopy (CategoryTheory.CategoryStruct.comp φ α) 0) (i j : ι) (hjk : c.Rel j i) {Z : C} (h : K.X j Z) :
                            @[simp]
                            theorem HomologicalComplex.homotopyCofiber.inrCompHomotopy_hom_desc_hom {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G K : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (α : G K) (hα : Homotopy (CategoryTheory.CategoryStruct.comp φ α) 0) (hc : ∀ (j : ι), ∃ (i : ι), c.Rel i j) (i j : ι) :
                            CategoryTheory.CategoryStruct.comp ((inrCompHomotopy φ hc).hom i j) ((desc φ α ).f j) = .hom i j
                            @[simp]
                            theorem HomologicalComplex.homotopyCofiber.inrCompHomotopy_hom_desc_hom_assoc {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G K : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (α : G K) (hα : Homotopy (CategoryTheory.CategoryStruct.comp φ α) 0) (hc : ∀ (j : ι), ∃ (i : ι), c.Rel i j) (i j : ι) {Z : C} (h : K.X j Z) :
                            theorem HomologicalComplex.homotopyCofiber.eq_desc {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G K : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (f : homotopyCofiber φ K) (hc : ∀ (j : ι), ∃ (i : ι), c.Rel i j) :
                            f = desc φ (CategoryTheory.CategoryStruct.comp (inr φ) f) ((Homotopy.ofEq ).trans (((inrCompHomotopy φ hc).compRight f).trans (Homotopy.ofEq )))
                            theorem HomologicalComplex.homotopyCofiber.descSigma_ext_iff {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} [DecidableRel c.Rel] {φ : F G} {K : HomologicalComplex C c} (x y : (α : G K) × Homotopy (CategoryTheory.CategoryStruct.comp φ α) 0) :
                            x = y x.fst = y.fst ∀ (i j : ι), c.Rel j ix.snd.hom i j = y.snd.hom i j
                            noncomputable def HomologicalComplex.homotopyCofiber.descEquiv {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {ι : Type u_2} {c : ComplexShape ι} {F G : HomologicalComplex C c} (φ : F G) [HasHomotopyCofiber φ] [DecidableRel c.Rel] (K : HomologicalComplex C c) (hc : ∀ (j : ι), ∃ (i : ι), c.Rel i j) :

                            Morphisms homotopyCofiber φ ⟶ K are uniquely determined by a morphism α : G ⟶ K and a homotopy from φ ≫ α to 0.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[reducible, inline]

                              The cylinder object of a homological complex K is the homotopy cofiber of the morphism biprod.lift (𝟙 K) (-𝟙 K) : K ⟶ K ⊞ K.

                              Equations
                              Instances For

                                The left inclusion K ⟶ K.cylinder.

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

                                  The right inclusion K ⟶ K.cylinder.

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

                                    The morphism K.cylinder ⟶ F that is induced by two morphisms φ₀ φ₁ : K ⟶ F and a homotopy h : Homotopy φ₀ φ₁.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      @[reducible, inline]

                                      The left inclusion K.X i ⟶ K.cylinder.X j when c.Rel j i.

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

                                        A null homotopic map K.cylinder ⟶ K.cylinder which identifies to π K ≫ ι₀ K - 𝟙 _, see nullHomotopicMap_eq.

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

                                          The obvious homotopy from nullHomotopicMap K to zero.

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

                                            The homotopy equivalence between K.cylinder and K.

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

                                              The homotopy between cylinder.ι₀ K and cylinder.ι₁ K.

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

                                                If a functor inverts homotopy equivalences, it sends homotopic maps to the same map.