ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.ShortComplex.Splitting.rightHomologyData_H
@[simps]
noncomputable def rightHomologyData [HasZeroObject C] (s : S.Splitting) :
    RightHomologyData S 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Limits.HasZeroObject C] (s : S.Splitting)
Goal: s.rightHomologyData.H = 0
-- CategoryTheory.ShortComplex.Splitting.rightHomologyData_p
@[simps]
noncomputable def rightHomologyData [HasZeroObject C] (s : S.Splitting) :
    RightHomologyData S 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Limits.HasZeroObject C] (s : S.Splitting)
Goal: s.rightHomologyData.p = S.g
-- CategoryTheory.ShortComplex.Splitting.rightHomologyData_Q
@[simps]
noncomputable def rightHomologyData [HasZeroObject C] (s : S.Splitting) :
    RightHomologyData S 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Limits.HasZeroObject C] (s : S.Splitting)
Goal: s.rightHomologyData.Q = S.X₃
-- CategoryTheory.ShortComplex.Splitting.rightHomologyData_ι
@[simps]
noncomputable def rightHomologyData [HasZeroObject C] (s : S.Splitting) :
    RightHomologyData S 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Limits.HasZeroObject C] (s : S.Splitting)
Goal: s.rightHomologyData.ι = 0
-- CategoryTheory.ShortComplex.Splitting.homologyData_right
@[simps]
noncomputable def homologyData [HasZeroObject C] (s : S.Splitting) : S.HomologyData 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Limits.HasZeroObject C] (s : S.Splitting)
Goal: s.homologyData.right = s.rightHomologyData
-- CategoryTheory.ShortComplex.Splitting.homologyData_iso
@[simps]
noncomputable def homologyData [HasZeroObject C] (s : S.Splitting) : S.HomologyData 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Limits.HasZeroObject C] (s : S.Splitting)
Goal: s.homologyData.iso = CategoryTheory.Iso.refl 0
-- CategoryTheory.ShortComplex.Splitting.homologyData_left
@[simps]
noncomputable def homologyData [HasZeroObject C] (s : S.Splitting) : S.HomologyData 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Limits.HasZeroObject C] (s : S.Splitting)
Goal: s.homologyData.left = s.leftHomologyData
-- CategoryTheory.ShortComplex.Splitting.exact
lemma exact [HasZeroObject C] (s : S.Splitting) : S.Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Limits.HasZeroObject C] (s : S.Splitting)
Goal: S.Exact
-- CategoryTheory.ShortComplex.Splitting.map_r
@[simps]
def map (s : S.Splitting) (F : C ⥤ D) [F.Additive] : (S.map F).Splitting 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] [CategoryTheory.Preadditive C] [CategoryTheory.Preadditive D] {S : CategoryTheory.ShortComplex C} (s : S.Splitting) (F : CategoryTheory.Functor C D) [F.Additive]
Goal: (s.map F).r = F.map s.r
-- CategoryTheory.ShortComplex.Splitting.map_s
@[simps]
def map (s : S.Splitting) (F : C ⥤ D) [F.Additive] : (S.map F).Splitting 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] [CategoryTheory.Preadditive C] [CategoryTheory.Preadditive D] {S : CategoryTheory.ShortComplex C} (s : S.Splitting) (F : CategoryTheory.Functor C D) [F.Additive]
Goal: (s.map F).s = F.map s.s
-- CategoryTheory.ShortComplex.Splitting.ofIso_r
@[simps]
def ofIso {S₁ S₂ : ShortComplex C} (s : S₁.Splitting) (e : S₁ ≅ S₂) : S₂.Splitting 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S₁ S₂ : CategoryTheory.ShortComplex C} (s : S₁.Splitting) (e : S₁ ≅ S₂)
Goal: (s.ofIso e).r = CategoryTheory.CategoryStruct.comp e.inv.τ₂ (CategoryTheory.CategoryStruct.comp s.r e.hom.τ₁)
-- CategoryTheory.ShortComplex.Splitting.ofIso_s
@[simps]
def ofIso {S₁ S₂ : ShortComplex C} (s : S₁.Splitting) (e : S₁ ≅ S₂) : S₂.Splitting 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S₁ S₂ : CategoryTheory.ShortComplex C} (s : S₁.Splitting) (e : S₁ ≅ S₂)
Goal: (s.ofIso e).s = CategoryTheory.CategoryStruct.comp e.inv.τ₃ (CategoryTheory.CategoryStruct.comp s.s e.hom.τ₂)
-- CategoryTheory.ShortComplex.Splitting.op_r
@[simps]
def op (h : Splitting S) : Splitting S.op 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (h : S.Splitting)
Goal: h.op.r = h.s.op
-- CategoryTheory.ShortComplex.Splitting.op_s
@[simps]
def op (h : Splitting S) : Splitting S.op 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (h : S.Splitting)
Goal: h.op.s = h.r.op
-- CategoryTheory.ShortComplex.Splitting.unop_s
@[simps]
def unop {S : ShortComplex Cᵒᵖ} (h : Splitting S) : Splitting S.unop 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex Cᵒᵖ} (h : S.Splitting)
Goal: h.unop.s = h.r.unop
-- CategoryTheory.ShortComplex.Splitting.unop_r
@[simps]
def unop {S : ShortComplex Cᵒᵖ} (h : Splitting S) : Splitting S.unop 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex Cᵒᵖ} (h : S.Splitting)
Goal: h.unop.r = h.s.unop
-- CategoryTheory.ShortComplex.Splitting.isoBinaryBiproduct_inv
@[simps]
noncomputable def isoBinaryBiproduct (h : Splitting S) [HasBinaryBiproduct S.X₁ S.X₃] :
    S.X₂ ≅ S.X₁ ⊞ S.X₃ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (h : S.Splitting) [CategoryTheory.Limits.HasBinaryBiproduct S.X₁ S.X₃]
Goal: h.isoBinaryBiproduct.inv = CategoryTheory.Limits.biprod.desc S.f h.s
-- CategoryTheory.ShortComplex.Splitting.isoBinaryBiproduct_hom
@[simps]
noncomputable def isoBinaryBiproduct (h : Splitting S) [HasBinaryBiproduct S.X₁ S.X₃] :
    S.X₂ ≅ S.X₁ ⊞ S.X₃ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (h : S.Splitting) [CategoryTheory.Limits.HasBinaryBiproduct S.X₁ S.X₃]
Goal: h.isoBinaryBiproduct.hom = CategoryTheory.Limits.biprod.lift h.r S.g
-- CategoryTheory.ShortComplex.Exact.isIso_f'
lemma isIso_f' (hS : S.Exact) (h : S.LeftHomologyData) [Mono S.f] :
    IsIso h.f' 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Balanced C] (hS : S.Exact) (h : S.LeftHomologyData) [CategoryTheory.Mono S.f]
Goal: CategoryTheory.IsIso h.f'
-- CategoryTheory.ShortComplex.Exact.isIso_toCycles
lemma isIso_toCycles (hS : S.Exact) [Mono S.f] [S.HasLeftHomology]:
    IsIso S.toCycles 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Balanced C] (hS : S.Exact) [CategoryTheory.Mono S.f] [S.HasLeftHomology]
Goal: CategoryTheory.IsIso S.toCycles
-- CategoryTheory.ShortComplex.Exact.isIso_g'
lemma isIso_g' (hS : S.Exact) (h : S.RightHomologyData) [Epi S.g] :
    IsIso h.g' 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Balanced C] (hS : S.Exact) (h : S.RightHomologyData) [CategoryTheory.Epi S.g]
Goal: CategoryTheory.IsIso h.g'
-- CategoryTheory.ShortComplex.Exact.isIso_fromOpcycles
lemma isIso_fromOpcycles (hS : S.Exact) [Epi S.g] [S.HasRightHomology] :
    IsIso S.fromOpcycles 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Balanced C] (hS : S.Exact) [CategoryTheory.Epi S.g] [S.HasRightHomology]
Goal: CategoryTheory.IsIso S.fromOpcycles
-- CategoryTheory.ShortComplex.Exact.map_of_mono_of_preservesKernel
lemma map_of_mono_of_preservesKernel (hS : S.Exact) (F : C ⥤ D)
    [F.PreservesZeroMorphisms] [(S.map F).HasHomology] (_ : Mono S.f)
    (_ : PreservesLimit (parallelPair S.g 0) F) :
    (S.map F).Exact 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] [CategoryTheory.Preadditive C] [CategoryTheory.Preadditive D] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Balanced C] (hS : S.Exact) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [(S.map F).HasHomology]
Goal: CategoryTheory.Mono S.f →
  CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.parallelPair S.g 0) F → (S.map F).Exact
-- CategoryTheory.ShortComplex.Exact.map_of_epi_of_preservesCokernel
lemma map_of_epi_of_preservesCokernel (hS : S.Exact) (F : C ⥤ D)
    [F.PreservesZeroMorphisms] [(S.map F).HasHomology] (_ : Epi S.g)
    (_ : PreservesColimit (parallelPair S.f 0) F) :
    (S.map F).Exact 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] [CategoryTheory.Preadditive C] [CategoryTheory.Preadditive D] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Balanced C] (hS : S.Exact) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [(S.map F).HasHomology]
Goal: CategoryTheory.Epi S.g →
  CategoryTheory.Limits.PreservesColimit (CategoryTheory.Limits.parallelPair S.f 0) F → (S.map F).Exact
-- CategoryTheory.ShortComplex.Exact.lift_f
@[reassoc (attr := simp)]
lemma lift_f (hS : S.Exact) {A : C} (k : A ⟶ S.X₂) (hk : k ≫ S.g = 0) [Mono S.f] :
    hS.lift k hk ≫ S.f = k 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Balanced C] (hS : S.Exact) {A : C} (k : A ⟶ S.X₂) (hk : CategoryTheory.CategoryStruct.comp k S.g = 0) [CategoryTheory.Mono S.f]
Goal: CategoryTheory.CategoryStruct.comp (hS.lift k hk) S.f = k
-- CategoryTheory.ShortComplex.Exact.lift'
lemma lift' (hS : S.Exact) {A : C} (k : A ⟶ S.X₂) (hk : k ≫ S.g = 0) [Mono S.f] :
    ∃ (l : A ⟶ S.X₁), l ≫ S.f = k 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Balanced C] (hS : S.Exact) {A : C} (k : A ⟶ S.X₂) (hk : CategoryTheory.CategoryStruct.comp k S.g = 0) [CategoryTheory.Mono S.f]
Goal: ∃ l, CategoryTheory.CategoryStruct.comp l S.f = k
-- CategoryTheory.ShortComplex.Exact.g_desc
@[reassoc (attr := simp)]
lemma g_desc (hS : S.Exact) {A : C} (k : S.X₂ ⟶ A) (hk : S.f ≫ k = 0) [Epi S.g] :
    S.g ≫ hS.desc k hk = k 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Balanced C] (hS : S.Exact) {A : C} (k : S.X₂ ⟶ A) (hk : CategoryTheory.CategoryStruct.comp S.f k = 0) [CategoryTheory.Epi S.g]
Goal: CategoryTheory.CategoryStruct.comp S.g (hS.desc k hk) = k
-- CategoryTheory.ShortComplex.Exact.desc'
lemma desc' (hS : S.Exact) {A : C} (k : S.X₂ ⟶ A) (hk : S.f ≫ k = 0) [Epi S.g] :
    ∃ (l : S.X₃ ⟶ A), S.g ≫ l = k 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [CategoryTheory.Balanced C] (hS : S.Exact) {A : C} (k : S.X₂ ⟶ A) (hk : CategoryTheory.CategoryStruct.comp S.f k = 0) [CategoryTheory.Epi S.g]
Goal: ∃ l, CategoryTheory.CategoryStruct.comp S.g l = k
-- CategoryTheory.ShortComplex.mono_τ₂_of_exact_of_mono
lemma mono_τ₂_of_exact_of_mono {S₁ S₂ : ShortComplex C} (φ : S₁ ⟶ S₂)
    (h₁ : S₁.Exact) [Mono S₁.f] [Mono S₂.f] [Mono φ.τ₁] [Mono φ.τ₃] : Mono φ.τ₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Balanced C] {S₁ S₂ : CategoryTheory.ShortComplex C} (φ : S₁ ⟶ S₂) (h₁ : S₁.Exact) [CategoryTheory.Mono S₁.f] [CategoryTheory.Mono S₂.f] [CategoryTheory.Mono φ.τ₁] [CategoryTheory.Mono φ.τ₃]
Goal: CategoryTheory.Mono φ.τ₂
-- CategoryTheory.ShortComplex.epi_τ₂_of_exact_of_epi
lemma epi_τ₂_of_exact_of_epi {S₁ S₂ : ShortComplex C} (φ : S₁ ⟶ S₂)
    (h₂ : S₂.Exact) [Epi S₁.g] [Epi S₂.g] [Epi φ.τ₁] [Epi φ.τ₃] : Epi φ.τ₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Balanced C] {S₁ S₂ : CategoryTheory.ShortComplex C} (φ : S₁ ⟶ S₂) (h₂ : S₂.Exact) [CategoryTheory.Epi S₁.g] [CategoryTheory.Epi S₂.g] [CategoryTheory.Epi φ.τ₁] [CategoryTheory.Epi φ.τ₃]
Goal: CategoryTheory.Epi φ.τ₂
-- CategoryTheory.ShortComplex.exact_and_mono_f_iff_f_is_kernel
lemma exact_and_mono_f_iff_f_is_kernel [S.HasHomology] :
    S.Exact ∧ Mono S.f ↔ Nonempty (IsLimit (KernelFork.ofι S.f S.zero)) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Balanced C] [S.HasHomology]
Goal: S.Exact ∧ CategoryTheory.Mono S.f ↔
  Nonempty (CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.KernelFork.ofι S.f ⋯))
-- CategoryTheory.ShortComplex.exact_and_epi_g_iff_g_is_cokernel
lemma exact_and_epi_g_iff_g_is_cokernel [S.HasHomology] :
    S.Exact ∧ Epi S.g ↔ Nonempty (IsColimit (CokernelCofork.ofπ S.g S.zero)) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Balanced C] [S.HasHomology]
Goal: S.Exact ∧ CategoryTheory.Epi S.g ↔
  Nonempty (CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.CokernelCofork.ofπ S.g ⋯))
-- CategoryTheory.ShortComplex.quasiIso_iff_of_zeros
lemma quasiIso_iff_of_zeros {S₁ S₂ : ShortComplex C} (φ : S₁ ⟶ S₂)
    (hf₁ : S₁.f = 0) (hg₁ : S₁.g = 0) (hf₂ : S₂.f = 0) :
    QuasiIso φ ↔
      (ShortComplex.mk φ.τ₂ S₂.g (by rw [φ.comm₂₃, hg₁, zero_comp])).Exact ∧ Mono φ.τ₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ : CategoryTheory.ShortComplex C} (φ : S₁ ⟶ S₂) (hf₁ : S₁.f = 0) (hg₁ : S₁.g = 0) (hf₂ : S₂.f = 0)
Goal: CategoryTheory.ShortComplex.QuasiIso φ ↔ (CategoryTheory.ShortComplex.mk φ.τ₂ S₂.g ⋯).Exact ∧ CategoryTheory.Mono φ.τ₂
-- CategoryTheory.ShortComplex.quasiIso_iff_of_zeros'
lemma quasiIso_iff_of_zeros' {S₁ S₂ : ShortComplex C} (φ : S₁ ⟶ S₂)
    (hg₁ : S₁.g = 0) (hf₂ : S₂.f = 0) (hg₂ : S₂.g = 0) :
    QuasiIso φ ↔
      (ShortComplex.mk S₁.f φ.τ₂ (by rw [← φ.comm₁₂, hf₂, comp_zero])).Exact ∧ Epi φ.τ₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ : CategoryTheory.ShortComplex C} (φ : S₁ ⟶ S₂) (hg₁ : S₁.g = 0) (hf₂ : S₂.f = 0) (hg₂ : S₂.g = 0)
Goal: CategoryTheory.ShortComplex.QuasiIso φ ↔ (CategoryTheory.ShortComplex.mk S₁.f φ.τ₂ ⋯).Exact ∧ CategoryTheory.Epi φ.τ₂
-- CategoryTheory.ShortComplex.Exact.comp_descToInjective
@[reassoc (attr := simp, nolint unusedHavesSuffices)]
lemma Exact.comp_descToInjective
    (hS : S.Exact) {J : C} (f : S.X₂ ⟶ J) [Injective J] (hf : S.f ≫ f = 0) :
    S.g ≫ hS.descToInjective f hf = f 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Abelian C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) {J : C} (f : S.X₂ ⟶ J) [CategoryTheory.Injective J] (hf : CategoryTheory.CategoryStruct.comp S.f f = 0)
Goal: CategoryTheory.CategoryStruct.comp S.g (hS.descToInjective f hf) = f
-- CategoryTheory.ShortComplex.Exact.liftFromProjective_comp
@[reassoc (attr := simp, nolint unusedHavesSuffices)]
lemma Exact.liftFromProjective_comp
    (hS : S.Exact) {P : C} (f : P ⟶ S.X₂) [Projective P] (hf : f ≫ S.g = 0) :
    hS.liftFromProjective f hf ≫ S.f = f 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Abelian C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) {P : C} (f : P ⟶ S.X₂) [CategoryTheory.Projective P] (hf : CategoryTheory.CategoryStruct.comp f S.g = 0)
Goal: CategoryTheory.CategoryStruct.comp (hS.liftFromProjective f hf) S.f = f
-- CategoryTheory.ShortComplex.HomologyData.comm
structure HomologyData where
    left : S.LeftHomologyData
    right : S.RightHomologyData
    iso : left.H ≅ right.H
    comm : left.π ≫ iso.hom ≫ right.ι = left.i ≫ right.p := by aesop_cat
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S : CategoryTheory.ShortComplex C} (self : S.HomologyData)
Goal: CategoryTheory.CategoryStruct.comp self.left.π (CategoryTheory.CategoryStruct.comp self.iso.hom self.right.ι) =
  CategoryTheory.CategoryStruct.comp self.left.i self.right.p
-- CategoryTheory.ShortComplex.HomologyMapData.comm
@[reassoc]
lemma comm (h : HomologyMapData φ h₁ h₂) :
    h.left.φH ≫ h₂.iso.hom = h₁.iso.hom ≫ h.right.φH 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex C} {φ : S₁ ⟶ S₂} {h₁ : S₁.HomologyData} {h₂ : S₂.HomologyData} (h : CategoryTheory.ShortComplex.HomologyMapData φ h₁ h₂)
Goal: CategoryTheory.CategoryStruct.comp h.left.φH h₂.iso.hom = CategoryTheory.CategoryStruct.comp h₁.iso.hom h.right.φH
-- CategoryTheory.ShortComplex.HomologyMapData.congr_left_φH
lemma congr_left_φH {γ₁ γ₂ : HomologyMapData φ h₁ h₂} (eq : γ₁ = γ₂) :
    γ₁.left.φH = γ₂.left.φH 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex C} {φ : S₁ ⟶ S₂} {h₁ : S₁.HomologyData} {h₂ : S₂.HomologyData} {γ₁ γ₂ : CategoryTheory.ShortComplex.HomologyMapData φ h₁ h₂} (eq : γ₁ = γ₂)
Goal: γ₁.left.φH = γ₂.left.φH
-- CategoryTheory.ShortComplex.HomologyData.ofIsLimitKernelFork_right
@[simps]
def ofIsLimitKernelFork (hf : S.f = 0) (c : KernelFork S.g) (hc : IsLimit c) :
    S.HomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hf : S.f = 0) (c : CategoryTheory.Limits.KernelFork S.g) (hc : CategoryTheory.Limits.IsLimit c)
Goal: (CategoryTheory.ShortComplex.HomologyData.ofIsLimitKernelFork S hf c hc).right =
  CategoryTheory.ShortComplex.RightHomologyData.ofIsLimitKernelFork S hf c hc
-- CategoryTheory.ShortComplex.HomologyData.ofIsLimitKernelFork_iso
@[simps]
def ofIsLimitKernelFork (hf : S.f = 0) (c : KernelFork S.g) (hc : IsLimit c) :
    S.HomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hf : S.f = 0) (c : CategoryTheory.Limits.KernelFork S.g) (hc : CategoryTheory.Limits.IsLimit c)
Goal: (CategoryTheory.ShortComplex.HomologyData.ofIsLimitKernelFork S hf c hc).iso =
  CategoryTheory.Iso.refl (CategoryTheory.ShortComplex.LeftHomologyData.ofIsLimitKernelFork S hf c hc).H
-- CategoryTheory.ShortComplex.HomologyData.ofIsLimitKernelFork_left
@[simps]
def ofIsLimitKernelFork (hf : S.f = 0) (c : KernelFork S.g) (hc : IsLimit c) :
    S.HomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hf : S.f = 0) (c : CategoryTheory.Limits.KernelFork S.g) (hc : CategoryTheory.Limits.IsLimit c)
Goal: (CategoryTheory.ShortComplex.HomologyData.ofIsLimitKernelFork S hf c hc).left =
  CategoryTheory.ShortComplex.LeftHomologyData.ofIsLimitKernelFork S hf c hc
-- CategoryTheory.ShortComplex.HomologyData.ofHasKernel_iso
@[simps]
noncomputable def ofHasKernel (hf : S.f = 0) [HasKernel S.g] :
    S.HomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hf : S.f = 0) [CategoryTheory.Limits.HasKernel S.g]
Goal: (CategoryTheory.ShortComplex.HomologyData.ofHasKernel S hf).iso =
  CategoryTheory.Iso.refl (CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernel S hf).H
-- CategoryTheory.ShortComplex.HomologyData.ofHasKernel_right
@[simps]
noncomputable def ofHasKernel (hf : S.f = 0) [HasKernel S.g] :
    S.HomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hf : S.f = 0) [CategoryTheory.Limits.HasKernel S.g]
Goal: (CategoryTheory.ShortComplex.HomologyData.ofHasKernel S hf).right =
  CategoryTheory.ShortComplex.RightHomologyData.ofHasKernel S hf
-- CategoryTheory.ShortComplex.HomologyData.ofHasKernel_left
@[simps]
noncomputable def ofHasKernel (hf : S.f = 0) [HasKernel S.g] :
    S.HomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hf : S.f = 0) [CategoryTheory.Limits.HasKernel S.g]
Goal: (CategoryTheory.ShortComplex.HomologyData.ofHasKernel S hf).left =
  CategoryTheory.ShortComplex.LeftHomologyData.ofHasKernel S hf
-- CategoryTheory.ShortComplex.HomologyData.ofIsColimitCokernelCofork_right
@[simps]
def ofIsColimitCokernelCofork (hg : S.g = 0) (c : CokernelCofork S.f) (hc : IsColimit c) :
    S.HomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hg : S.g = 0) (c : CategoryTheory.Limits.CokernelCofork S.f) (hc : CategoryTheory.Limits.IsColimit c)
Goal: (CategoryTheory.ShortComplex.HomologyData.ofIsColimitCokernelCofork S hg c hc).right =
  CategoryTheory.ShortComplex.RightHomologyData.ofIsColimitCokernelCofork S hg c hc
-- CategoryTheory.ShortComplex.HomologyData.ofIsColimitCokernelCofork_iso
@[simps]
def ofIsColimitCokernelCofork (hg : S.g = 0) (c : CokernelCofork S.f) (hc : IsColimit c) :
    S.HomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hg : S.g = 0) (c : CategoryTheory.Limits.CokernelCofork S.f) (hc : CategoryTheory.Limits.IsColimit c)
Goal: (CategoryTheory.ShortComplex.HomologyData.ofIsColimitCokernelCofork S hg c hc).iso =
  CategoryTheory.Iso.refl (CategoryTheory.ShortComplex.LeftHomologyData.ofIsColimitCokernelCofork S hg c hc).H
-- CategoryTheory.ShortComplex.HomologyData.ofIsColimitCokernelCofork_left
@[simps]
def ofIsColimitCokernelCofork (hg : S.g = 0) (c : CokernelCofork S.f) (hc : IsColimit c) :
    S.HomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hg : S.g = 0) (c : CategoryTheory.Limits.CokernelCofork S.f) (hc : CategoryTheory.Limits.IsColimit c)
Goal: (CategoryTheory.ShortComplex.HomologyData.ofIsColimitCokernelCofork S hg c hc).left =
  CategoryTheory.ShortComplex.LeftHomologyData.ofIsColimitCokernelCofork S hg c hc
-- CategoryTheory.ShortComplex.HomologyData.ofHasCokernel_left
@[simps]
noncomputable def ofHasCokernel (hg : S.g = 0) [HasCokernel S.f] :
    S.HomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hg : S.g = 0) [CategoryTheory.Limits.HasCokernel S.f]
Goal: (CategoryTheory.ShortComplex.HomologyData.ofHasCokernel S hg).left =
  CategoryTheory.ShortComplex.LeftHomologyData.ofHasCokernel S hg
-- CategoryTheory.ShortComplex.HomologyData.ofHasCokernel_right
@[simps]
noncomputable def ofHasCokernel (hg : S.g = 0) [HasCokernel S.f] :
    S.HomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) (hg : S.g = 0) [CategoryTheory.Limits.HasCokernel S.f]
Goal: (CategoryTheory.ShortComplex.HomologyData.ofHasCokernel S hg).right =
  CategoryTheory.ShortComplex.RightHomologyData.ofHasCokernel S hg