Documentation

Mathlib.Algebra.Homology.HomotopyCategory.MappingCone

The mapping cone of a morphism of cochain complexes #

In this file, we study the homotopy cofiber HomologicalComplex.homotopyCofiber of a morphism φ : F ⟶ G of cochain complexes indexed by . In this case, we redefine it as CochainComplex.mappingCone φ. The API involves definitions

The mapping cone of a morphism of cochain complexes indexed by .

Equations
    Instances For

      The left inclusion in the mapping cone, as a cochain of degree -1.

      Equations
        Instances For

          The right inclusion in the mapping cone.

          Equations
            Instances For

              The first projection from the mapping cone, as a cocyle of degree 1.

              Equations
                Instances For

                  The second projection from the mapping cone, as a cochain of degree 0.

                  Equations
                    Instances For

                      In order to obtain identities of cochains involving inl, inr, fst and snd, it is often convenient to use an ext lemma, and use simp lemmas like inl_v_f_fst_v, but it is sometimes possible to get identities of cochains by using rewrites of identities of cochains like inl_fst. Then, similarly as in category theory, if we associate the compositions of cochains to the right as much as possible, it is also interesting to have reassoc variants of lemmas, like inl_fst_assoc.

                      @[simp]
                      theorem CochainComplex.mappingCone.inl_fst_assoc {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {d e : } (γ : HomComplex.Cochain F K d) (he : 1 + d = e) :
                      (inl φ).comp ((↑(fst φ)).comp γ he) = γ
                      @[simp]
                      theorem CochainComplex.mappingCone.inl_snd_assoc {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {d e f : } (γ : HomComplex.Cochain G K d) (he : 0 + d = e) (hf : -1 + e = f) :
                      (inl φ).comp ((snd φ).comp γ he) hf = 0
                      @[simp]
                      theorem CochainComplex.mappingCone.inr_fst_assoc {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {d e f : } (γ : HomComplex.Cochain F K d) (he : 1 + d = e) (hf : 0 + e = f) :
                      (HomComplex.Cochain.ofHom (inr φ)).comp ((↑(fst φ)).comp γ he) hf = 0
                      theorem CochainComplex.mappingCone.ext_to {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] (i j : ) (hij : i + 1 = j) {A : C} {f g : A (mappingCone φ).X i} (h₁ : CategoryTheory.CategoryStruct.comp f ((↑(fst φ)).v i j hij) = CategoryTheory.CategoryStruct.comp g ((↑(fst φ)).v i j hij)) (h₂ : CategoryTheory.CategoryStruct.comp f ((snd φ).v i i ) = CategoryTheory.CategoryStruct.comp g ((snd φ).v i i )) :
                      f = g
                      theorem CochainComplex.mappingCone.decomp_to {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {i : } {A : C} (f : A (mappingCone φ).X i) (j : ) (hij : i + 1 = j) :
                      ∃ (a : A F.X j) (b : A G.X i), f = CategoryTheory.CategoryStruct.comp a ((inl φ).v j i ) + CategoryTheory.CategoryStruct.comp b ((inr φ).f i)
                      theorem CochainComplex.mappingCone.decomp_from {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {j : } {A : C} (f : (mappingCone φ).X j A) (i : ) (hij : j + 1 = i) :
                      ∃ (a : F.X i A) (b : G.X j A), f = CategoryTheory.CategoryStruct.comp ((↑(fst φ)).v j i hij) a + CategoryTheory.CategoryStruct.comp ((snd φ).v j j ) b
                      theorem CochainComplex.mappingCone.ext_cochain_to_iff {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] (i j : ) (hij : i + 1 = j) {K : CochainComplex C } {γ₁ γ₂ : HomComplex.Cochain K (mappingCone φ) i} :
                      γ₁ = γ₂ γ₁.comp (↑(fst φ)) hij = γ₂.comp (↑(fst φ)) hij γ₁.comp (snd φ) = γ₂.comp (snd φ)
                      theorem CochainComplex.mappingCone.ext_cochain_from_iff {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] (i j : ) (hij : i + 1 = j) {K : CochainComplex C } {γ₁ γ₂ : HomComplex.Cochain (mappingCone φ) K j} :
                      γ₁ = γ₂ (inl φ).comp γ₁ = (inl φ).comp γ₂ (HomComplex.Cochain.ofHom (inr φ)).comp γ₁ = (HomComplex.Cochain.ofHom (inr φ)).comp γ₂
                      theorem CochainComplex.mappingCone.d_fst_v {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] (i j k : ) (hij : i + 1 = j) (hjk : j + 1 = k) :
                      CategoryTheory.CategoryStruct.comp ((mappingCone φ).d i j) ((↑(fst φ)).v j k hjk) = -CategoryTheory.CategoryStruct.comp ((↑(fst φ)).v i j hij) (F.d j k)
                      @[simp]

                      Given φ : F ⟶ G, this is the cochain in Cochain (mappingCone φ) K n that is constructed from two cochains α : Cochain F K m (with m + 1 = n) and β : Cochain F K n.

                      Equations
                        Instances For
                          @[simp]
                          theorem CochainComplex.mappingCone.inl_v_descCochain_v {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {n m : } (α : HomComplex.Cochain F K m) (β : HomComplex.Cochain G K n) (h : m + 1 = n) (p₁ p₂ p₃ : ) (h₁₂ : p₁ + -1 = p₂) (h₂₃ : p₂ + n = p₃) :
                          CategoryTheory.CategoryStruct.comp ((inl φ).v p₁ p₂ h₁₂) ((descCochain φ α β h).v p₂ p₃ h₂₃) = α.v p₁ p₃
                          @[simp]
                          theorem CochainComplex.mappingCone.inl_v_descCochain_v_assoc {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {n m : } (α : HomComplex.Cochain F K m) (β : HomComplex.Cochain G K n) (h : m + 1 = n) (p₁ p₂ p₃ : ) (h₁₂ : p₁ + -1 = p₂) (h₂₃ : p₂ + n = p₃) {Z : C} (h✝ : K.X p₃ Z) :
                          CategoryTheory.CategoryStruct.comp ((inl φ).v p₁ p₂ h₁₂) (CategoryTheory.CategoryStruct.comp ((descCochain φ α β h).v p₂ p₃ h₂₃) h✝) = CategoryTheory.CategoryStruct.comp (α.v p₁ p₃ ) h✝
                          @[simp]
                          theorem CochainComplex.mappingCone.inr_f_descCochain_v {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {n m : } (α : HomComplex.Cochain F K m) (β : HomComplex.Cochain G K n) (h : m + 1 = n) (p₁ p₂ : ) (h₁₂ : p₁ + n = p₂) :
                          CategoryTheory.CategoryStruct.comp ((inr φ).f p₁) ((descCochain φ α β h).v p₁ p₂ h₁₂) = β.v p₁ p₂ h₁₂
                          @[simp]
                          theorem CochainComplex.mappingCone.inr_f_descCochain_v_assoc {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {n m : } (α : HomComplex.Cochain F K m) (β : HomComplex.Cochain G K n) (h : m + 1 = n) (p₁ p₂ : ) (h₁₂ : p₁ + n = p₂) {Z : C} (h✝ : K.X p₂ Z) :
                          CategoryTheory.CategoryStruct.comp ((inr φ).f p₁) (CategoryTheory.CategoryStruct.comp ((descCochain φ α β h).v p₁ p₂ h₁₂) h✝) = CategoryTheory.CategoryStruct.comp (β.v p₁ p₂ h₁₂) h✝
                          theorem CochainComplex.mappingCone.δ_descCochain {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {n m : } (α : HomComplex.Cochain F K m) (β : HomComplex.Cochain G K n) (h : m + 1 = n) (n' : ) (hn' : n + 1 = n') :
                          HomComplex.δ n n' (descCochain φ α β h) = (↑(fst φ)).comp (HomComplex.δ m n α + n'.negOnePow (HomComplex.Cochain.ofHom φ).comp β ) + (snd φ).comp (HomComplex.δ n n' β)

                          Given φ : F ⟶ G, this is the cocycle in Cocycle (mappingCone φ) K n that is constructed from α : Cochain F K m (with m + 1 = n) and β : Cocycle F K n, when a suitable cocycle relation is satisfied.

                          Equations
                            Instances For
                              @[simp]

                              Given φ : F ⟶ G, this is the morphism mappingCone φ ⟶ K that is constructed from a cochain α : Cochain F K (-1) and a morphism β : G ⟶ K such that δ (-1) 0 α = Cochain.ofHom (φ ≫ β).

                              Equations
                                Instances For

                                  Constructor for homotopies between morphisms from a mapping cone.

                                  Equations
                                    Instances For

                                      Given φ : F ⟶ G, this is the cochain in Cochain (mappingCone φ) K n that is constructed from two cochains α : Cochain F K m (with m + 1 = n) and β : Cochain F K n.

                                      Equations
                                        Instances For
                                          @[simp]
                                          theorem CochainComplex.mappingCone.liftCochain_v_fst_v {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {n m : } (α : HomComplex.Cochain K F m) (β : HomComplex.Cochain K G n) (h : n + 1 = m) (p₁ p₂ p₃ : ) (h₁₂ : p₁ + n = p₂) (h₂₃ : p₂ + 1 = p₃) :
                                          CategoryTheory.CategoryStruct.comp ((liftCochain φ α β h).v p₁ p₂ h₁₂) ((↑(fst φ)).v p₂ p₃ h₂₃) = α.v p₁ p₃
                                          @[simp]
                                          theorem CochainComplex.mappingCone.liftCochain_v_fst_v_assoc {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {n m : } (α : HomComplex.Cochain K F m) (β : HomComplex.Cochain K G n) (h : n + 1 = m) (p₁ p₂ p₃ : ) (h₁₂ : p₁ + n = p₂) (h₂₃ : p₂ + 1 = p₃) {Z : C} (h✝ : F.X p₃ Z) :
                                          CategoryTheory.CategoryStruct.comp ((liftCochain φ α β h).v p₁ p₂ h₁₂) (CategoryTheory.CategoryStruct.comp ((↑(fst φ)).v p₂ p₃ h₂₃) h✝) = CategoryTheory.CategoryStruct.comp (α.v p₁ p₃ ) h✝
                                          @[simp]
                                          theorem CochainComplex.mappingCone.liftCochain_v_snd_v {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {n m : } (α : HomComplex.Cochain K F m) (β : HomComplex.Cochain K G n) (h : n + 1 = m) (p₁ p₂ : ) (h₁₂ : p₁ + n = p₂) :
                                          CategoryTheory.CategoryStruct.comp ((liftCochain φ α β h).v p₁ p₂ h₁₂) ((snd φ).v p₂ p₂ ) = β.v p₁ p₂ h₁₂
                                          @[simp]
                                          theorem CochainComplex.mappingCone.liftCochain_v_snd_v_assoc {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {n m : } (α : HomComplex.Cochain K F m) (β : HomComplex.Cochain K G n) (h : n + 1 = m) (p₁ p₂ : ) (h₁₂ : p₁ + n = p₂) {Z : C} (h✝ : G.X p₂ Z) :
                                          CategoryTheory.CategoryStruct.comp ((liftCochain φ α β h).v p₁ p₂ h₁₂) (CategoryTheory.CategoryStruct.comp ((snd φ).v p₂ p₂ ) h✝) = CategoryTheory.CategoryStruct.comp (β.v p₁ p₂ h₁₂) h✝

                                          Given φ : F ⟶ G, this is the cocycle in Cocycle K (mappingCone φ) n that is constructed from α : Cochain K F m (with n + 1 = m) and β : Cocycle K G n, when a suitable cocycle relation is satisfied.

                                          Equations
                                            Instances For
                                              @[simp]
                                              theorem CochainComplex.mappingCone.liftCocycle_coe {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } {n m : } (α : HomComplex.Cocycle K F m) (β : HomComplex.Cochain K G n) (h : n + 1 = m) (eq : HomComplex.δ n m β + (↑α).comp (HomComplex.Cochain.ofHom φ) = 0) :
                                              (liftCocycle φ α β h eq) = liftCochain φ (↑α) β h

                                              Given φ : F ⟶ G, this is the morphism K ⟶ mappingCone φ that is constructed from a cocycle α : Cochain K F 1 and a cochain β : Cochain K G 0 when a suitable cocycle relation is satisfied.

                                              Equations
                                                Instances For
                                                  @[simp]
                                                  theorem CochainComplex.mappingCone.lift_f_fst_v {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } (α : HomComplex.Cocycle K F 1) (β : HomComplex.Cochain K G 0) (eq : HomComplex.δ 0 1 β + (↑α).comp (HomComplex.Cochain.ofHom φ) = 0) (p q : ) (hpq : p + 1 = q) :
                                                  CategoryTheory.CategoryStruct.comp ((lift φ α β eq).f p) ((↑(fst φ)).v p q hpq) = (↑α).v p q hpq
                                                  @[simp]
                                                  @[simp]
                                                  theorem CochainComplex.mappingCone.lift_f_snd_v {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } (α : HomComplex.Cocycle K F 1) (β : HomComplex.Cochain K G 0) (eq : HomComplex.δ 0 1 β + (↑α).comp (HomComplex.Cochain.ofHom φ) = 0) (p q : ) (hpq : p + 0 = q) :
                                                  CategoryTheory.CategoryStruct.comp ((lift φ α β eq).f p) ((snd φ).v p q hpq) = β.v p q hpq
                                                  theorem CochainComplex.mappingCone.lift_f {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } (α : HomComplex.Cocycle K F 1) (β : HomComplex.Cochain K G 0) (eq : HomComplex.δ 0 1 β + (↑α).comp (HomComplex.Cochain.ofHom φ) = 0) (p q : ) (hpq : p + 1 = q) :
                                                  (lift φ α β eq).f p = CategoryTheory.CategoryStruct.comp ((↑α).v p q hpq) ((inl φ).v q p ) + CategoryTheory.CategoryStruct.comp (β.v p p ) ((inr φ).f p)
                                                  noncomputable def CochainComplex.mappingCone.liftHomotopy {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K : CochainComplex C } (f₁ f₂ : K mappingCone φ) (α : HomComplex.Cochain K F 0) (β : HomComplex.Cochain K G (-1)) (h₁ : (HomComplex.Cochain.ofHom f₁).comp (fst φ) = -HomComplex.δ 0 1 α + (HomComplex.Cochain.ofHom f₂).comp (fst φ) ) (h₂ : (HomComplex.Cochain.ofHom f₁).comp (snd φ) = HomComplex.δ (-1) 0 β + α.comp (HomComplex.Cochain.ofHom φ) + (HomComplex.Cochain.ofHom f₂).comp (snd φ) ) :
                                                  Homotopy f₁ f₂

                                                  Constructor for homotopies between morphisms to a mapping cone.

                                                  Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem CochainComplex.mappingCone.liftCochain_descCochain {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K L : CochainComplex C } {n m : } (α : HomComplex.Cochain K F m) (β : HomComplex.Cochain K G n) {n' m' : } (α' : HomComplex.Cochain F L m') (β' : HomComplex.Cochain G L n') (h : n + 1 = m) (h' : m' + 1 = n') (p : ) (hp : n + n' = p) :
                                                      (liftCochain φ α β h).comp (descCochain φ α' β' h') hp = α.comp α' + β.comp β' hp
                                                      theorem CochainComplex.mappingCone.liftCochain_v_descCochain_v {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K L : CochainComplex C } {n m : } (α : HomComplex.Cochain K F m) (β : HomComplex.Cochain K G n) {n' m' : } (α' : HomComplex.Cochain F L m') (β' : HomComplex.Cochain G L n') (h : n + 1 = m) (h' : m' + 1 = n') (p : ) (hp : n + n' = p) (p₁ p₂ p₃ : ) (h₁₂ : p₁ + n = p₂) (h₂₃ : p₂ + n' = p₃) (q : ) (hq : p₁ + m = q) :
                                                      CategoryTheory.CategoryStruct.comp ((liftCochain φ α β h).v p₁ p₂ h₁₂) ((descCochain φ α' β' h').v p₂ p₃ h₂₃) = CategoryTheory.CategoryStruct.comp (α.v p₁ q hq) (α'.v q p₃ ) + CategoryTheory.CategoryStruct.comp (β.v p₁ p₂ h₁₂) (β'.v p₂ p₃ h₂₃)
                                                      theorem CochainComplex.mappingCone.lift_desc_f {C : Type u_1} [CategoryTheory.Category.{v, u_1} C] [CategoryTheory.Preadditive C] {F G : CochainComplex C } (φ : F G) [HomologicalComplex.HasHomotopyCofiber φ] {K L : CochainComplex C } (α : HomComplex.Cocycle K F 1) (β : HomComplex.Cochain K G 0) (eq : HomComplex.δ 0 1 β + (↑α).comp (HomComplex.Cochain.ofHom φ) = 0) (α' : HomComplex.Cochain F L (-1)) (β' : G L) (eq' : HomComplex.δ (-1) 0 α' = HomComplex.Cochain.ofHom (CategoryTheory.CategoryStruct.comp φ β')) (n n' : ) (hnn' : n + 1 = n') :
                                                      CategoryTheory.CategoryStruct.comp ((lift φ α β eq).f n) ((desc φ α' β' eq').f n) = CategoryTheory.CategoryStruct.comp ((↑α).v n n' hnn') (α'.v n' n ) + CategoryTheory.CategoryStruct.comp (β.v n n ) (β'.f n)

                                                      If H : C ⥤ D is an additive functor and φ is a morphism of cochain complexes in C, this is the comparison isomorphism (in each degree n) between the image by H of mappingCone φ and the mapping cone of the image by H of φ. It is an auxiliary definition for mapHomologicalComplexXIso and mapHomologicalComplexIso. This definition takes an extra parameter m : ℤ such that n + 1 = m which may help getting better definitional properties. See also the equational lemma mapHomologicalComplexXIso_eq.

                                                      Equations
                                                        Instances For

                                                          If H : C ⥤ D is an additive functor and φ is a morphism of cochain complexes in C, this is the comparison isomorphism (in each degree) between the image by H of mappingCone φ and the mapping cone of the image by H of φ.

                                                          Equations
                                                            Instances For

                                                              If H : C ⥤ D is an additive functor and φ is a morphism of cochain complexes in C, this is the comparison isomorphism between the image by H of mappingCone φ and the mapping cone of the image by H of φ.

                                                              Equations
                                                                Instances For