Documentation

Mathlib.Algebra.Homology.ShortComplex.LeftHomology

Left Homology of short complexes #

Given a short complex S : ShortComplex C, which consists of two composable maps f : X₁ ⟶ X₂ and g : X₂ ⟶ X₃ such that f ≫ g = 0, we shall define here the "left homology" S.leftHomology of S. For this, we introduce the notion of "left homology data". Such an h : S.LeftHomologyData consists of the data of morphisms i : K ⟶ X₂ and π : KH such that i identifies K with the kernel of g : X₂ ⟶ X₃, and that π identifies H with the cokernel of the induced map f' : X₁ ⟶ K.

When such a S.LeftHomologyData exists, we shall say that [S.HasLeftHomology] and we define S.leftHomology to be the H field of a chosen left homology data. Similarly, we define S.cycles to be the K field.

The dual notion is defined in RightHomologyData.lean. In Homology.lean, when S has two compatible left and right homology data (i.e. they give the same H up to a canonical isomorphism), we shall define [S.HasHomology] and S.homology.

A left homology data for a short complex S consists of morphisms i : K ⟶ S.X₂ and π : KH such that i identifies K to the kernel of g : S.X₂ ⟶ S.X₃, and that π identifies H to the cokernel of the induced map f' : S.X₁ ⟶ K

Instances For

    Any morphism k : A ⟶ S.X₂ that is a cycle (i.e. k ≫ S.g = 0) lifts to a morphism A ⟶ K

    Instances For

      The (left) homology class A ⟶ H attached to a cycle k : A ⟶ S.X₂

      Instances For

        Given h : LeftHomologyData S, this is morphism S.X₁ ⟶ h.K induced by S.f : S.X₁ ⟶ S.X₂ and the fact that h.K is a kernel of S.g : S.X₂ ⟶ S.X₃.

        Instances For

          For h : S.LeftHomologyData, this is a restatement of h., saying that π : h.K ⟶ h.H is a cokernel of h.f' : S.X₁ ⟶ h.K.

          Instances For

            The morphism H ⟶ A induced by a morphism k : K ⟶ A such that f' ≫ k = 0

            Instances For

              When the second map S.g is zero, this is the left homology data on S given by any colimit cokernel cofork of S.f

              Instances For

                When the second map S.g is zero, this is the left homology data on S given by the chosen cokernel S.f

                Instances For

                  When the first map S.f is zero, this is the left homology data on S given by any limit kernel fork of S.g

                  Instances For

                    When the first map S.f is zero, this is the left homology data on S given by the chosen kernel S.g

                    Instances For

                      When both S.f and S.g are zero, the middle object S.X₂ gives a left homology data on S

                      Instances For

                        Given a left homology data h of a short complex S, we can construct another left homology data by choosing another kernel and cokernel that are isomorphic to the ones in h.

                        Instances For
                          @[simp]
                          theorem CategoryTheory.ShortComplex.LeftHomologyData.copy_H {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S : ShortComplex C} (h : S.LeftHomologyData) {K' H' : C} (eK : K' h.K) (eH : H' h.H) :
                          (h.copy eK eH).H = H'
                          @[simp]
                          theorem CategoryTheory.ShortComplex.LeftHomologyData.copy_i {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S : ShortComplex C} (h : S.LeftHomologyData) {K' H' : C} (eK : K' h.K) (eH : H' h.H) :
                          (h.copy eK eH).i = CategoryStruct.comp eK.hom h.i
                          @[simp]
                          theorem CategoryTheory.ShortComplex.LeftHomologyData.copy_K {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S : ShortComplex C} (h : S.LeftHomologyData) {K' H' : C} (eK : K' h.K) (eH : H' h.H) :
                          (h.copy eK eH).K = K'

                          A short complex S has left homology when there exists a S.LeftHomologyData

                          Instances

                            A chosen S.LeftHomologyData for a short complex S that has left homology

                            Instances For
                              instance CategoryTheory.ShortComplex.HasLeftHomology.of_hasCokernel {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {X Y : C} (f : X Y) (Z : C) [Limits.HasCokernel f] :
                              { X₁ := X, X₂ := Y, X₃ := Z, f := f, g := 0, zero := }.HasLeftHomology
                              instance CategoryTheory.ShortComplex.HasLeftHomology.of_hasKernel {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {Y Z : C} (g : Y Z) (X : C) [Limits.HasKernel g] :
                              { X₁ := X, X₂ := Y, X₃ := Z, f := 0, g := g, zero := }.HasLeftHomology
                              instance CategoryTheory.ShortComplex.HasLeftHomology.of_zeros {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] (X Y Z : C) :
                              { X₁ := X, X₂ := Y, X₃ := Z, f := 0, g := 0, zero := }.HasLeftHomology
                              structure CategoryTheory.ShortComplex.LeftHomologyMapData {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) :
                              Type v_1

                              Given left homology data h₁ and h₂ for two short complexes S₁ and S₂, a LeftHomologyMapData for a morphism φ : S₁ ⟶ S₂ consists of a description of the induced morphisms on the K (cycles) and H (left homology) fields of h₁ and h₂.

                              Instances For
                                @[simp]
                                theorem CategoryTheory.ShortComplex.LeftHomologyMapData.commi_assoc {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} {φ : S₁ S₂} {h₁ : S₁.LeftHomologyData} {h₂ : S₂.LeftHomologyData} (self : LeftHomologyMapData φ h₁ h₂) {Z : C} (h : S₂.X₂ Z) :

                                commutation with i

                                @[simp]
                                theorem CategoryTheory.ShortComplex.LeftHomologyMapData.commf'_assoc {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} {φ : S₁ S₂} {h₁ : S₁.LeftHomologyData} {h₂ : S₂.LeftHomologyData} (self : LeftHomologyMapData φ h₁ h₂) {Z : C} (h : h₂.K Z) :

                                commutation with f'

                                @[simp]
                                theorem CategoryTheory.ShortComplex.LeftHomologyMapData.commπ_assoc {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} {φ : S₁ S₂} {h₁ : S₁.LeftHomologyData} {h₂ : S₂.LeftHomologyData} (self : LeftHomologyMapData φ h₁ h₂) {Z : C} (h : h₂.H Z) :

                                commutation with π

                                The left homology map data associated to the zero morphism between two short complexes.

                                Instances For

                                  The left homology map data associated to the identity morphism of a short complex.

                                  Instances For
                                    def CategoryTheory.ShortComplex.LeftHomologyMapData.comp {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ S₃ : ShortComplex C} {φ : S₁ S₂} {φ' : S₂ S₃} {h₁ : S₁.LeftHomologyData} {h₂ : S₂.LeftHomologyData} {h₃ : S₃.LeftHomologyData} (ψ : LeftHomologyMapData φ h₁ h₂) (ψ' : LeftHomologyMapData φ' h₂ h₃) :

                                    The composition of left homology map data.

                                    Instances For
                                      @[simp]
                                      theorem CategoryTheory.ShortComplex.LeftHomologyMapData.comp_φK {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ S₃ : ShortComplex C} {φ : S₁ S₂} {φ' : S₂ S₃} {h₁ : S₁.LeftHomologyData} {h₂ : S₂.LeftHomologyData} {h₃ : S₃.LeftHomologyData} (ψ : LeftHomologyMapData φ h₁ h₂) (ψ' : LeftHomologyMapData φ' h₂ h₃) :
                                      (ψ.comp ψ').φK = CategoryStruct.comp ψ.φK ψ'.φK
                                      @[simp]
                                      theorem CategoryTheory.ShortComplex.LeftHomologyMapData.comp_φH {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ S₃ : ShortComplex C} {φ : S₁ S₂} {φ' : S₂ S₃} {h₁ : S₁.LeftHomologyData} {h₂ : S₂.LeftHomologyData} {h₃ : S₃.LeftHomologyData} (ψ : LeftHomologyMapData φ h₁ h₂) (ψ' : LeftHomologyMapData φ' h₂ h₃) :
                                      (ψ.comp ψ').φH = CategoryStruct.comp ψ.φH ψ'.φH
                                      @[implicit_reducible]
                                      instance CategoryTheory.ShortComplex.LeftHomologyMapData.instInhabited {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) :
                                      Inhabited (LeftHomologyMapData φ h₁ h₂)
                                      @[implicit_reducible]
                                      theorem CategoryTheory.ShortComplex.LeftHomologyMapData.congr_φH {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} {φ : S₁ S₂} {h₁ : S₁.LeftHomologyData} {h₂ : S₂.LeftHomologyData} {γ₁ γ₂ : LeftHomologyMapData φ h₁ h₂} (eq : γ₁ = γ₂) :
                                      γ₁.φH = γ₂.φH
                                      theorem CategoryTheory.ShortComplex.LeftHomologyMapData.congr_φK {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} {φ : S₁ S₂} {h₁ : S₁.LeftHomologyData} {h₂ : S₂.LeftHomologyData} {γ₁ γ₂ : LeftHomologyMapData φ h₁ h₂} (eq : γ₁ = γ₂) :
                                      γ₁.φK = γ₂.φK
                                      def CategoryTheory.ShortComplex.LeftHomologyMapData.ofZeros {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (hf₁ : S₁.f = 0) (hg₁ : S₁.g = 0) (hf₂ : S₂.f = 0) (hg₂ : S₂.g = 0) :

                                      When S₁.f, S₁.g, S₂.f and S₂.g are all zero, the action on left homology of a morphism φ : S₁ ⟶ S₂ is given by the action φ.τ₂ on the middle objects.

                                      Instances For
                                        @[simp]
                                        theorem CategoryTheory.ShortComplex.LeftHomologyMapData.ofZeros_φK {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (hf₁ : S₁.f = 0) (hg₁ : S₁.g = 0) (hf₂ : S₂.f = 0) (hg₂ : S₂.g = 0) :
                                        (ofZeros φ hf₁ hg₁ hf₂ hg₂).φK = φ.τ₂
                                        @[simp]
                                        theorem CategoryTheory.ShortComplex.LeftHomologyMapData.ofZeros_φH {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (hf₁ : S₁.f = 0) (hg₁ : S₁.g = 0) (hf₂ : S₂.f = 0) (hg₂ : S₂.g = 0) :
                                        (ofZeros φ hf₁ hg₁ hf₂ hg₂).φH = φ.τ₂
                                        def CategoryTheory.ShortComplex.LeftHomologyMapData.ofIsColimitCokernelCofork {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (hg₁ : S₁.g = 0) (c₁ : Limits.CokernelCofork S₁.f) (hc₁ : Limits.IsColimit c₁) (hg₂ : S₂.g = 0) (c₂ : Limits.CokernelCofork S₂.f) (hc₂ : Limits.IsColimit c₂) (f : c₁.pt c₂.pt) (comm : CategoryStruct.comp φ.τ₂ (Limits.Cofork.π c₂) = CategoryStruct.comp (Limits.Cofork.π c₁) f) :

                                        When S₁.g and S₂.g are zero and we have chosen colimit cokernel coforks c₁ and c₂ for S₁.f and S₂.f respectively, the action on left homology of a morphism φ : S₁ ⟶ S₂ of short complexes is given by the unique morphism f : c₁.pt ⟶ c₂.pt such that φ.τ₂ ≫ c₂.π = c₁.π ≫ f.

                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.ShortComplex.LeftHomologyMapData.ofIsColimitCokernelCofork_φH {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (hg₁ : S₁.g = 0) (c₁ : Limits.CokernelCofork S₁.f) (hc₁ : Limits.IsColimit c₁) (hg₂ : S₂.g = 0) (c₂ : Limits.CokernelCofork S₂.f) (hc₂ : Limits.IsColimit c₂) (f : c₁.pt c₂.pt) (comm : CategoryStruct.comp φ.τ₂ (Limits.Cofork.π c₂) = CategoryStruct.comp (Limits.Cofork.π c₁) f) :
                                          (ofIsColimitCokernelCofork φ hg₁ c₁ hc₁ hg₂ c₂ hc₂ f comm).φH = f
                                          @[simp]
                                          theorem CategoryTheory.ShortComplex.LeftHomologyMapData.ofIsColimitCokernelCofork_φK {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (hg₁ : S₁.g = 0) (c₁ : Limits.CokernelCofork S₁.f) (hc₁ : Limits.IsColimit c₁) (hg₂ : S₂.g = 0) (c₂ : Limits.CokernelCofork S₂.f) (hc₂ : Limits.IsColimit c₂) (f : c₁.pt c₂.pt) (comm : CategoryStruct.comp φ.τ₂ (Limits.Cofork.π c₂) = CategoryStruct.comp (Limits.Cofork.π c₁) f) :
                                          (ofIsColimitCokernelCofork φ hg₁ c₁ hc₁ hg₂ c₂ hc₂ f comm).φK = φ.τ₂
                                          def CategoryTheory.ShortComplex.LeftHomologyMapData.ofIsLimitKernelFork {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (hf₁ : S₁.f = 0) (c₁ : Limits.KernelFork S₁.g) (hc₁ : Limits.IsLimit c₁) (hf₂ : S₂.f = 0) (c₂ : Limits.KernelFork S₂.g) (hc₂ : Limits.IsLimit c₂) (f : c₁.pt c₂.pt) (comm : CategoryStruct.comp (Limits.Fork.ι c₁) φ.τ₂ = CategoryStruct.comp f (Limits.Fork.ι c₂)) :

                                          When S₁.f and S₂.f are zero and we have chosen limit kernel forks c₁ and c₂ for S₁.g and S₂.g respectively, the action on left homology of a morphism φ : S₁ ⟶ S₂ of short complexes is given by the unique morphism f : c₁.pt ⟶ c₂.pt such that c₁.ι ≫ φ.τ₂ = f ≫ c₂.ι.

                                          Instances For
                                            @[simp]
                                            theorem CategoryTheory.ShortComplex.LeftHomologyMapData.ofIsLimitKernelFork_φH {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (hf₁ : S₁.f = 0) (c₁ : Limits.KernelFork S₁.g) (hc₁ : Limits.IsLimit c₁) (hf₂ : S₂.f = 0) (c₂ : Limits.KernelFork S₂.g) (hc₂ : Limits.IsLimit c₂) (f : c₁.pt c₂.pt) (comm : CategoryStruct.comp (Limits.Fork.ι c₁) φ.τ₂ = CategoryStruct.comp f (Limits.Fork.ι c₂)) :
                                            (ofIsLimitKernelFork φ hf₁ c₁ hc₁ hf₂ c₂ hc₂ f comm).φH = f
                                            @[simp]
                                            theorem CategoryTheory.ShortComplex.LeftHomologyMapData.ofIsLimitKernelFork_φK {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (hf₁ : S₁.f = 0) (c₁ : Limits.KernelFork S₁.g) (hc₁ : Limits.IsLimit c₁) (hf₂ : S₂.f = 0) (c₂ : Limits.KernelFork S₂.g) (hc₂ : Limits.IsLimit c₂) (f : c₁.pt c₂.pt) (comm : CategoryStruct.comp (Limits.Fork.ι c₁) φ.τ₂ = CategoryStruct.comp f (Limits.Fork.ι c₂)) :
                                            (ofIsLimitKernelFork φ hf₁ c₁ hc₁ hf₂ c₂ hc₂ f comm).φK = f

                                            When both maps S.f and S.g of a short complex S are zero, this is the left homology map data (for the identity of S) which relates the left homology data ofZeros and ofIsColimitCokernelCofork.

                                            Instances For

                                              When both maps S.f and S.g of a short complex S are zero, this is the left homology map data (for the identity of S) which relates the left homology data LeftHomologyData.ofIsLimitKernelFork and ofZeros .

                                              Instances For

                                                The left homology of a short complex, given by the H field of a chosen left homology data.

                                                Instances For

                                                  The cycles of a short complex, given by the K field of a chosen left homology data.

                                                  Instances For

                                                    The inclusion S.cycles ⟶ S.X₂.

                                                    Instances For

                                                      The "boundaries" map S.X₁ ⟶ S.cycles. (Note that in this homology API, we make no use of the "image" of this morphism, which under some categorical assumptions would be a subobject of S.X₂ contained in S.cycles.)

                                                      Instances For

                                                        When S.g = 0, this is the canonical isomorphism S.cycles ≅ S.X₂ induced by S.iCycles.

                                                        Instances For

                                                          When S.f = 0, this is the canonical isomorphism S.cycles ≅ S.leftHomology induced by S.leftHomologyπ.

                                                          Instances For

                                                            The (unique) left homology map data associated to a morphism of short complexes that are both equipped with left homology data.

                                                            Instances For
                                                              def CategoryTheory.ShortComplex.leftHomologyMap' {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) :
                                                              h₁.H h₂.H

                                                              Given a morphism φ : S₁ ⟶ S₂ of short complexes and left homology data h₁ and h₂ for S₁ and S₂ respectively, this is the induced left homology map h₁.H ⟶ h₁.H.

                                                              Instances For
                                                                def CategoryTheory.ShortComplex.cyclesMap' {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) :
                                                                h₁.K h₂.K

                                                                Given a morphism φ : S₁ ⟶ S₂ of short complexes and left homology data h₁ and h₂ for S₁ and S₂ respectively, this is the induced morphism h₁.K ⟶ h₁.K on cycles.

                                                                Instances For
                                                                  @[simp]
                                                                  theorem CategoryTheory.ShortComplex.cyclesMap'_i {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) :
                                                                  @[simp]
                                                                  theorem CategoryTheory.ShortComplex.cyclesMap'_i_assoc {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) {Z : C} (h : S₂.X₂ Z) :
                                                                  @[simp]
                                                                  theorem CategoryTheory.ShortComplex.f'_cyclesMap' {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) :
                                                                  @[simp]
                                                                  theorem CategoryTheory.ShortComplex.f'_cyclesMap'_assoc {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) {Z : C} (h : h₂.K Z) :

                                                                  The (left) homology map S₁.leftHomology ⟶ S₂.leftHomology induced by a morphism S₁ ⟶ S₂ of short complexes.

                                                                  Instances For
                                                                    noncomputable def CategoryTheory.ShortComplex.cyclesMap {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} [S₁.HasLeftHomology] [S₂.HasLeftHomology] (φ : S₁ S₂) :
                                                                    S₁.cycles S₂.cycles

                                                                    The morphism S₁.cycles ⟶ S₂.cycles induced by a morphism S₁ ⟶ S₂ of short complexes.

                                                                    Instances For
                                                                      theorem CategoryTheory.ShortComplex.LeftHomologyMapData.cyclesMap'_eq {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} {φ : S₁ S₂} {h₁ : S₁.LeftHomologyData} {h₂ : S₂.LeftHomologyData} (γ : LeftHomologyMapData φ h₁ h₂) :
                                                                      cyclesMap' φ h₁ h₂ = γ.φK
                                                                      theorem CategoryTheory.ShortComplex.leftHomologyMap'_comp {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ S₃ : ShortComplex C} (φ₁ : S₁ S₂) (φ₂ : S₂ S₃) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) (h₃ : S₃.LeftHomologyData) :
                                                                      leftHomologyMap' (CategoryStruct.comp φ₁ φ₂) h₁ h₃ = CategoryStruct.comp (leftHomologyMap' φ₁ h₁ h₂) (leftHomologyMap' φ₂ h₂ h₃)
                                                                      theorem CategoryTheory.ShortComplex.leftHomologyMap'_comp_assoc {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ S₃ : ShortComplex C} (φ₁ : S₁ S₂) (φ₂ : S₂ S₃) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) (h₃ : S₃.LeftHomologyData) {Z : C} (h : h₃.H Z) :
                                                                      theorem CategoryTheory.ShortComplex.cyclesMap'_comp {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ S₃ : ShortComplex C} (φ₁ : S₁ S₂) (φ₂ : S₂ S₃) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) (h₃ : S₃.LeftHomologyData) :
                                                                      cyclesMap' (CategoryStruct.comp φ₁ φ₂) h₁ h₃ = CategoryStruct.comp (cyclesMap' φ₁ h₁ h₂) (cyclesMap' φ₂ h₂ h₃)
                                                                      theorem CategoryTheory.ShortComplex.cyclesMap'_comp_assoc {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ S₃ : ShortComplex C} (φ₁ : S₁ S₂) (φ₂ : S₂ S₃) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) (h₃ : S₃.LeftHomologyData) {Z : C} (h : h₃.K Z) :
                                                                      CategoryStruct.comp (cyclesMap' (CategoryStruct.comp φ₁ φ₂) h₁ h₃) h = CategoryStruct.comp (cyclesMap' φ₁ h₁ h₂) (CategoryStruct.comp (cyclesMap' φ₂ h₂ h₃) h)
                                                                      @[simp]
                                                                      theorem CategoryTheory.ShortComplex.cyclesMap_comp {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ S₃ : ShortComplex C} [S₁.HasLeftHomology] [S₂.HasLeftHomology] [S₃.HasLeftHomology] (φ₁ : S₁ S₂) (φ₂ : S₂ S₃) :
                                                                      def CategoryTheory.ShortComplex.leftHomologyMapIso' {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (e : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) :
                                                                      h₁.H h₂.H

                                                                      An isomorphism of short complexes S₁ ≅ S₂ induces an isomorphism on the H fields of left homology data of S₁ and S₂.

                                                                      Instances For
                                                                        @[simp]
                                                                        theorem CategoryTheory.ShortComplex.leftHomologyMapIso'_inv {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (e : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) :
                                                                        (leftHomologyMapIso' e h₁ h₂).inv = leftHomologyMap' e.inv h₂ h₁
                                                                        @[simp]
                                                                        theorem CategoryTheory.ShortComplex.leftHomologyMapIso'_hom {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (e : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) :
                                                                        (leftHomologyMapIso' e h₁ h₂).hom = leftHomologyMap' e.hom h₁ h₂
                                                                        def CategoryTheory.ShortComplex.cyclesMapIso' {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (e : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) :
                                                                        h₁.K h₂.K

                                                                        An isomorphism of short complexes S₁ ≅ S₂ induces an isomorphism on the K fields of left homology data of S₁ and S₂.

                                                                        Instances For
                                                                          @[simp]
                                                                          theorem CategoryTheory.ShortComplex.cyclesMapIso'_hom {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (e : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) :
                                                                          (cyclesMapIso' e h₁ h₂).hom = cyclesMap' e.hom h₁ h₂
                                                                          @[simp]
                                                                          theorem CategoryTheory.ShortComplex.cyclesMapIso'_inv {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (e : S₁ S₂) (h₁ : S₁.LeftHomologyData) (h₂ : S₂.LeftHomologyData) :
                                                                          (cyclesMapIso' e h₁ h₂).inv = cyclesMap' e.inv h₂ h₁

                                                                          The isomorphism S₁.leftHomology ≅ S₂.leftHomology induced by an isomorphism of short complexes S₁ ≅ S₂.

                                                                          Instances For
                                                                            noncomputable def CategoryTheory.ShortComplex.cyclesMapIso {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (e : S₁ S₂) [S₁.HasLeftHomology] [S₂.HasLeftHomology] :
                                                                            S₁.cycles S₂.cycles

                                                                            The isomorphism S₁.cycles ≅ S₂.cycles induced by an isomorphism of short complexes S₁ ≅ S₂.

                                                                            Instances For

                                                                              The isomorphism S.leftHomology ≅ h.H induced by a left homology data h for a short complex S.

                                                                              Instances For

                                                                                The isomorphism S.cycles ≅ h.K induced by a left homology data h for a short complex S.

                                                                                Instances For

                                                                                  The left homology functor ShortComplex C ⥤ C, where the left homology of a short complex S is understood as a cokernel of the obvious map S.toCycles : S.X₁ ⟶ S.cycles where S.cycles is a kernel of S.g : S.X₂ ⟶ S.X₃.

                                                                                  Instances For

                                                                                    The cycles functor ShortComplex C ⥤ C which sends a short complex S to S.cycles which is a kernel of S.g : S.X₂ ⟶ S.X₃.

                                                                                    Instances For

                                                                                      The natural transformation S.cycles ⟶ S.X₂ for all short complexes S.

                                                                                      Instances For

                                                                                        The natural transformation S.X₁ ⟶ S.cycles for all short complexes S.

                                                                                        Instances For

                                                                                          If φ : S₁ ⟶ S₂ is a morphism of short complexes such that φ.τ₁ is epi, φ.τ₂ is an iso and φ.τ₃ is mono, then a left homology data for S₁ induces a left homology data for S₂ with the same K and H fields. The inverse construction is ofEpiOfIsIsoOfMono'.

                                                                                          Instances For

                                                                                            If φ : S₁ ⟶ S₂ is a morphism of short complexes such that φ.τ₁ is epi, φ.τ₂ is an iso and φ.τ₃ is mono, then a left homology data for S₂ induces a left homology data for S₁ with the same K and H fields. The inverse construction is ofEpiOfIsIsoOfMono.

                                                                                            Instances For

                                                                                              If e : S₁ ≅ S₂ is an isomorphism of short complexes and h₁ : LeftHomologyData S₁, this is the left homology data for S₂ deduced from the isomorphism.

                                                                                              Instances For

                                                                                                This left homology map data expresses compatibilities of the left homology data constructed by LeftHomologyData.ofEpiOfIsIsoOfMono

                                                                                                Instances For

                                                                                                  This left homology map data expresses compatibilities of the left homology data constructed by LeftHomologyData.ofEpiOfIsIsoOfMono'

                                                                                                  Instances For

                                                                                                    If a morphism of short complexes φ : S₁ ⟶ S₂ is such that φ.τ₁ is epi, φ.τ₂ is an iso, and φ.τ₃ is mono, then the induced morphism on left homology is an isomorphism.

                                                                                                    A morphism k : A ⟶ S.X₂ such that k ≫ S.g = 0 lifts to a morphism A ⟶ S.cycles.

                                                                                                    Instances For

                                                                                                      Via S.iCycles : S.cycles ⟶ S.X₂, the object S.cycles identifies to the kernel of S.g : S.X₂ ⟶ S.X₃.

                                                                                                      Instances For

                                                                                                        The canonical isomorphism S.cycles ≅ kernel S.g.

                                                                                                        Instances For

                                                                                                          The isomorphism from the point of a limit kernel fork of S.g to S.cycles.

                                                                                                          Instances For

                                                                                                            The morphism A ⟶ S.leftHomology obtained from a morphism k : A ⟶ S.X₂ such that k ≫ S.g = 0.

                                                                                                            Instances For

                                                                                                              The left homology of a short complex S identifies to the cokernel of the canonical morphism S.X₁ ⟶ kernel S.g.

                                                                                                              Instances For

                                                                                                                The following lemmas and instance gives a sufficient condition for a morphism of short complexes to induce an isomorphism on cycles.

                                                                                                                theorem CategoryTheory.ShortComplex.isIso_cyclesMap'_of_isIso_of_mono {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasZeroMorphisms C] {S₁ S₂ : ShortComplex C} (φ : S₁ S₂) (h₂ : IsIso φ.τ₂) (h₃ : Mono φ.τ₃) (h₁ : S₁.LeftHomologyData) (h₂✝ : S₂.LeftHomologyData) :
                                                                                                                IsIso (cyclesMap' φ h₁ h₂✝)