ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.ShortComplex.exact_op_iff
@[simp]
lemma exact_op_iff : S.op.Exact ↔ S.Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C)
Goal: S.op.Exact ↔ S.Exact
-- CategoryTheory.ShortComplex.exact_unop_iff
@[simp]
lemma exact_unop_iff (S : ShortComplex Cᵒᵖ) : S.unop.Exact ↔ S.Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex Cᵒᵖ)
Goal: S.unop.Exact ↔ S.Exact
-- CategoryTheory.ShortComplex.LeftHomologyData.exact_map_iff
lemma LeftHomologyData.exact_map_iff (h : S.LeftHomologyData) (F : C ⥤ D)
    [F.PreservesZeroMorphisms] [h.IsPreservedBy F] [(S.map F).HasHomology] :
    (S.map F).Exact ↔ IsZero (F.obj h.H) 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (h : S.LeftHomologyData) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [h.IsPreservedBy F] [(S.map F).HasHomology]
Goal: (S.map F).Exact ↔ CategoryTheory.Limits.IsZero (F.obj h.H)
-- CategoryTheory.ShortComplex.RightHomologyData.exact_map_iff
lemma RightHomologyData.exact_map_iff (h : S.RightHomologyData) (F : C ⥤ D)
    [F.PreservesZeroMorphisms] [h.IsPreservedBy F] [(S.map F).HasHomology] :
    (S.map F).Exact ↔ IsZero (F.obj h.H) 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (h : S.RightHomologyData) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [h.IsPreservedBy F] [(S.map F).HasHomology]
Goal: (S.map F).Exact ↔ CategoryTheory.Limits.IsZero (F.obj h.H)
-- CategoryTheory.ShortComplex.Exact.map_of_preservesLeftHomologyOf
lemma Exact.map_of_preservesLeftHomologyOf (h : S.Exact) (F : C ⥤ D)
    [F.PreservesZeroMorphisms] [F.PreservesLeftHomologyOf S]
    [(S.map F).HasHomology] : (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.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (h : S.Exact) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [F.PreservesLeftHomologyOf S] [(S.map F).HasHomology]
Goal: (S.map F).Exact
-- CategoryTheory.ShortComplex.Exact.map_of_preservesRightHomologyOf
lemma Exact.map_of_preservesRightHomologyOf (h : S.Exact) (F : C ⥤ D)
    [F.PreservesZeroMorphisms] [F.PreservesRightHomologyOf S]
    [(S.map F).HasHomology] : (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.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (h : S.Exact) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [F.PreservesRightHomologyOf S] [(S.map F).HasHomology]
Goal: (S.map F).Exact
-- CategoryTheory.ShortComplex.Exact.map
lemma Exact.map (h : S.Exact) (F : C ⥤ D)
    [F.PreservesZeroMorphisms] [F.PreservesLeftHomologyOf S]
    [F.PreservesRightHomologyOf S] : (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.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (h : S.Exact) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [F.PreservesLeftHomologyOf S] [F.PreservesRightHomologyOf S]
Goal: (S.map F).Exact
-- CategoryTheory.ShortComplex.exact_map_iff_of_faithful
lemma exact_map_iff_of_faithful [S.HasHomology]
    (F : C ⥤ D) [F.PreservesZeroMorphisms] [F.PreservesLeftHomologyOf S]
    [F.PreservesRightHomologyOf S] [F.Faithful] :
    (S.map F).Exact ↔ S.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.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] (S : CategoryTheory.ShortComplex C) [S.HasHomology] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [F.PreservesLeftHomologyOf S] [F.PreservesRightHomologyOf S] [F.Faithful]
Goal: (S.map F).Exact ↔ S.Exact
-- CategoryTheory.ShortComplex.Exact.comp_eq_zero
@[reassoc]
lemma Exact.comp_eq_zero (h : S.Exact) {X Y : C} {a : X ⟶ S.X₂} (ha : a ≫ S.g = 0)
    {b : S.X₂ ⟶ Y} (hb : S.f ≫ b = 0) : a ≫ b = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S : CategoryTheory.ShortComplex C} (h : S.Exact) {X Y : C} {a : X ⟶ S.X₂} (ha : CategoryTheory.CategoryStruct.comp a S.g = 0) {b : S.X₂ ⟶ Y} (hb : CategoryTheory.CategoryStruct.comp S.f b = 0)
Goal: CategoryTheory.CategoryStruct.comp a b = 0
-- CategoryTheory.ShortComplex.Exact.isZero_of_both_zeros
lemma Exact.isZero_of_both_zeros (ex : S.Exact) (hf : S.f = 0) (hg : S.g = 0) :
    IsZero S.X₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S : CategoryTheory.ShortComplex C} (ex : S.Exact) (hf : S.f = 0) (hg : S.g = 0)
Goal: CategoryTheory.Limits.IsZero S.X₂
-- CategoryTheory.ShortComplex.exact_iff_mono
lemma exact_iff_mono [HasZeroObject C] (hf : S.f = 0) :
    S.Exact ↔ Mono S.g 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasZeroObject C] (hf : S.f = 0)
Goal: S.Exact ↔ CategoryTheory.Mono S.g
-- CategoryTheory.ShortComplex.exact_iff_epi
lemma exact_iff_epi [HasZeroObject C] (hg : S.g = 0) :
    S.Exact ↔ Epi S.f 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] (S : CategoryTheory.ShortComplex C) [CategoryTheory.Limits.HasZeroObject C] (hg : S.g = 0)
Goal: S.Exact ↔ CategoryTheory.Epi S.f
-- CategoryTheory.ShortComplex.Exact.epi_f'
lemma Exact.epi_f' (hS : S.Exact) (h : LeftHomologyData S) : Epi h.f' 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) (h : S.LeftHomologyData)
Goal: CategoryTheory.Epi h.f'
-- CategoryTheory.ShortComplex.Exact.mono_g'
lemma Exact.mono_g' (hS : S.Exact) (h : RightHomologyData S) : Mono h.g' 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) (h : S.RightHomologyData)
Goal: CategoryTheory.Mono h.g'
-- CategoryTheory.ShortComplex.Exact.epi_toCycles
lemma Exact.epi_toCycles (hS : S.Exact) [S.HasLeftHomology] : Epi S.toCycles 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) [S.HasLeftHomology]
Goal: CategoryTheory.Epi S.toCycles
-- CategoryTheory.ShortComplex.Exact.mono_fromOpcycles
lemma Exact.mono_fromOpcycles (hS : S.Exact) [S.HasRightHomology] : Mono S.fromOpcycles 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) [S.HasRightHomology]
Goal: CategoryTheory.Mono S.fromOpcycles
-- CategoryTheory.ShortComplex.LeftHomologyData.exact_iff_epi_f'
lemma LeftHomologyData.exact_iff_epi_f' [S.HasHomology] (h : LeftHomologyData S) :
    S.Exact ↔ Epi h.f' 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [S.HasHomology] (h : S.LeftHomologyData)
Goal: S.Exact ↔ CategoryTheory.Epi h.f'
-- CategoryTheory.ShortComplex.RightHomologyData.exact_iff_mono_g'
lemma RightHomologyData.exact_iff_mono_g' [S.HasHomology] (h : RightHomologyData S) :
    S.Exact ↔ Mono h.g' 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} [S.HasHomology] (h : S.RightHomologyData)
Goal: S.Exact ↔ CategoryTheory.Mono h.g'
-- CategoryTheory.ShortComplex.Exact.leftHomologyDataOfIsLimitKernelFork_i
@[simps]
noncomputable def Exact.leftHomologyDataOfIsLimitKernelFork
    (hS : S.Exact) [HasZeroObject C] (kf : KernelFork S.g) (hkf : IsLimit kf) :
    S.LeftHomologyData 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) [CategoryTheory.Limits.HasZeroObject C] (kf : CategoryTheory.Limits.KernelFork S.g) (hkf : CategoryTheory.Limits.IsLimit kf)
Goal: (hS.leftHomologyDataOfIsLimitKernelFork kf hkf).i = CategoryTheory.Limits.Fork.ι kf
-- CategoryTheory.ShortComplex.Exact.leftHomologyDataOfIsLimitKernelFork_π
@[simps]
noncomputable def Exact.leftHomologyDataOfIsLimitKernelFork
    (hS : S.Exact) [HasZeroObject C] (kf : KernelFork S.g) (hkf : IsLimit kf) :
    S.LeftHomologyData 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) [CategoryTheory.Limits.HasZeroObject C] (kf : CategoryTheory.Limits.KernelFork S.g) (hkf : CategoryTheory.Limits.IsLimit kf)
Goal: (hS.leftHomologyDataOfIsLimitKernelFork kf hkf).π = 0
-- CategoryTheory.ShortComplex.Exact.leftHomologyDataOfIsLimitKernelFork_H
@[simps]
noncomputable def Exact.leftHomologyDataOfIsLimitKernelFork
    (hS : S.Exact) [HasZeroObject C] (kf : KernelFork S.g) (hkf : IsLimit kf) :
    S.LeftHomologyData 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) [CategoryTheory.Limits.HasZeroObject C] (kf : CategoryTheory.Limits.KernelFork S.g) (hkf : CategoryTheory.Limits.IsLimit kf)
Goal: (hS.leftHomologyDataOfIsLimitKernelFork kf hkf).H = 0
-- CategoryTheory.ShortComplex.Exact.leftHomologyDataOfIsLimitKernelFork_K
@[simps]
noncomputable def Exact.leftHomologyDataOfIsLimitKernelFork
    (hS : S.Exact) [HasZeroObject C] (kf : KernelFork S.g) (hkf : IsLimit kf) :
    S.LeftHomologyData 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) [CategoryTheory.Limits.HasZeroObject C] (kf : CategoryTheory.Limits.KernelFork S.g) (hkf : CategoryTheory.Limits.IsLimit kf)
Goal: (hS.leftHomologyDataOfIsLimitKernelFork kf hkf).K = kf.pt
-- CategoryTheory.ShortComplex.Exact.rightHomologyDataOfIsColimitCokernelCofork_ι
@[simps]
noncomputable def Exact.rightHomologyDataOfIsColimitCokernelCofork
    (hS : S.Exact) [HasZeroObject C] (cc : CokernelCofork S.f) (hcc : IsColimit cc) :
    S.RightHomologyData 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) [CategoryTheory.Limits.HasZeroObject C] (cc : CategoryTheory.Limits.CokernelCofork S.f) (hcc : CategoryTheory.Limits.IsColimit cc)
Goal: (hS.rightHomologyDataOfIsColimitCokernelCofork cc hcc).ι = 0
-- CategoryTheory.ShortComplex.Exact.rightHomologyDataOfIsColimitCokernelCofork_Q
@[simps]
noncomputable def Exact.rightHomologyDataOfIsColimitCokernelCofork
    (hS : S.Exact) [HasZeroObject C] (cc : CokernelCofork S.f) (hcc : IsColimit cc) :
    S.RightHomologyData 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) [CategoryTheory.Limits.HasZeroObject C] (cc : CategoryTheory.Limits.CokernelCofork S.f) (hcc : CategoryTheory.Limits.IsColimit cc)
Goal: (hS.rightHomologyDataOfIsColimitCokernelCofork cc hcc).Q = cc.pt
-- CategoryTheory.ShortComplex.Exact.rightHomologyDataOfIsColimitCokernelCofork_p
@[simps]
noncomputable def Exact.rightHomologyDataOfIsColimitCokernelCofork
    (hS : S.Exact) [HasZeroObject C] (cc : CokernelCofork S.f) (hcc : IsColimit cc) :
    S.RightHomologyData 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) [CategoryTheory.Limits.HasZeroObject C] (cc : CategoryTheory.Limits.CokernelCofork S.f) (hcc : CategoryTheory.Limits.IsColimit cc)
Goal: (hS.rightHomologyDataOfIsColimitCokernelCofork cc hcc).p = CategoryTheory.Limits.Cofork.π cc
-- CategoryTheory.ShortComplex.Exact.rightHomologyDataOfIsColimitCokernelCofork_H
@[simps]
noncomputable def Exact.rightHomologyDataOfIsColimitCokernelCofork
    (hS : S.Exact) [HasZeroObject C] (cc : CokernelCofork S.f) (hcc : IsColimit cc) :
    S.RightHomologyData 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) [CategoryTheory.Limits.HasZeroObject C] (cc : CategoryTheory.Limits.CokernelCofork S.f) (hcc : CategoryTheory.Limits.IsColimit cc)
Goal: (hS.rightHomologyDataOfIsColimitCokernelCofork cc hcc).H = 0
-- CategoryTheory.ShortComplex.exact_iff_epi_toCycles
lemma exact_iff_epi_toCycles [S.HasHomology] : S.Exact ↔ Epi S.toCycles 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] (S : CategoryTheory.ShortComplex C) [S.HasHomology]
Goal: S.Exact ↔ CategoryTheory.Epi S.toCycles
-- CategoryTheory.ShortComplex.exact_iff_mono_fromOpcycles
lemma exact_iff_mono_fromOpcycles [S.HasHomology] : S.Exact ↔ Mono S.fromOpcycles 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] (S : CategoryTheory.ShortComplex C) [S.HasHomology]
Goal: S.Exact ↔ CategoryTheory.Mono S.fromOpcycles
-- CategoryTheory.ShortComplex.exact_iff_epi_kernel_lift
lemma exact_iff_epi_kernel_lift [S.HasHomology] [HasKernel S.g] :
    S.Exact ↔ Epi (kernel.lift S.g S.f S.zero) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] (S : CategoryTheory.ShortComplex C) [S.HasHomology] [CategoryTheory.Limits.HasKernel S.g]
Goal: S.Exact ↔ CategoryTheory.Epi (CategoryTheory.Limits.kernel.lift S.g S.f ⋯)
-- CategoryTheory.ShortComplex.exact_iff_mono_cokernel_desc
lemma exact_iff_mono_cokernel_desc [S.HasHomology] [HasCokernel S.f] :
    S.Exact ↔ Mono (cokernel.desc S.f S.g S.zero) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] (S : CategoryTheory.ShortComplex C) [S.HasHomology] [CategoryTheory.Limits.HasCokernel S.f]
Goal: S.Exact ↔ CategoryTheory.Mono (CategoryTheory.Limits.cokernel.desc S.f S.g ⋯)
-- CategoryTheory.ShortComplex.QuasiIso.exact_iff
lemma QuasiIso.exact_iff {S₁ S₂ : ShortComplex C} (φ : S₁ ⟶ S₂)
    [S₁.HasHomology] [S₂.HasHomology] [QuasiIso φ] : S₁.Exact ↔ S₂.Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S₁ S₂ : CategoryTheory.ShortComplex C} (φ : S₁ ⟶ S₂) [S₁.HasHomology] [S₂.HasHomology] [CategoryTheory.ShortComplex.QuasiIso φ]
Goal: S₁.Exact ↔ S₂.Exact
-- CategoryTheory.ShortComplex.exact_of_f_is_kernel
lemma exact_of_f_is_kernel (hS : IsLimit (KernelFork.ofι S.f S.zero))
    [S.HasHomology] : S.Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] (S : CategoryTheory.ShortComplex C) (hS : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.KernelFork.ofι S.f ⋯)) [S.HasHomology]
Goal: S.Exact
-- CategoryTheory.ShortComplex.exact_of_g_is_cokernel
lemma exact_of_g_is_cokernel (hS : IsColimit (CokernelCofork.ofπ S.g S.zero))
    [S.HasHomology] : S.Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] (S : CategoryTheory.ShortComplex C) (hS : CategoryTheory.Limits.IsColimit (CategoryTheory.Limits.CokernelCofork.ofπ S.g ⋯)) [S.HasHomology]
Goal: S.Exact
-- CategoryTheory.ShortComplex.Exact.mono_g
lemma Exact.mono_g (hS : S.Exact) (hf : S.f = 0) : Mono S.g 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) (hf : S.f = 0)
Goal: CategoryTheory.Mono S.g
-- CategoryTheory.ShortComplex.Exact.epi_f
lemma Exact.epi_f (hS : S.Exact) (hg : S.g = 0) : Epi S.f 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) (hg : S.g = 0)
Goal: CategoryTheory.Epi S.f
-- CategoryTheory.ShortComplex.Exact.mono_g_iff
lemma Exact.mono_g_iff (hS : S.Exact) : Mono S.g ↔ S.f = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact)
Goal: CategoryTheory.Mono S.g ↔ S.f = 0
-- CategoryTheory.ShortComplex.Exact.epi_f_iff
lemma Exact.epi_f_iff (hS : S.Exact) : Epi S.f ↔ S.g = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact)
Goal: CategoryTheory.Epi S.f ↔ S.g = 0
-- CategoryTheory.ShortComplex.Exact.isZero_X₂
lemma Exact.isZero_X₂ (hS : S.Exact) (hf : S.f = 0) (hg : S.g = 0) : IsZero S.X₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact) (hf : S.f = 0) (hg : S.g = 0)
Goal: CategoryTheory.Limits.IsZero S.X₂
-- CategoryTheory.ShortComplex.Exact.isZero_X₂_iff
lemma Exact.isZero_X₂_iff (hS : S.Exact) : IsZero S.X₂ ↔ S.f = 0 ∧ S.g = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (hS : S.Exact)
Goal: CategoryTheory.Limits.IsZero S.X₂ ↔ S.f = 0 ∧ S.g = 0
-- CategoryTheory.ShortComplex.Splitting.id
structure Splitting (S : ShortComplex C) where
    r : S.X₂ ⟶ S.X₁
    s : S.X₃ ⟶ S.X₂
    f_r : S.f ≫ r = 𝟙 _ := by aesop_cat
    s_g : s ≫ S.g = 𝟙 _ := by aesop_cat
    id : r ≫ S.f + S.g ≫ s = 𝟙 _ := by aesop_cat
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (self : S.Splitting)
Goal: CategoryTheory.CategoryStruct.comp self.r S.f + CategoryTheory.CategoryStruct.comp S.g self.s =
  CategoryTheory.CategoryStruct.id S.X₂
-- CategoryTheory.ShortComplex.Splitting.s_g
structure Splitting (S : ShortComplex C) where
    r : S.X₂ ⟶ S.X₁
    s : S.X₃ ⟶ S.X₂
    f_r : S.f ≫ r = 𝟙 _ := by aesop_cat
    s_g : s ≫ S.g = 𝟙 _ := by aesop_cat
    id : r ≫ S.f + S.g ≫ s = 𝟙 _ := by aesop_cat
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (self : S.Splitting)
Goal: CategoryTheory.CategoryStruct.comp self.s S.g = CategoryTheory.CategoryStruct.id S.X₃
-- CategoryTheory.ShortComplex.Splitting.f_r
structure Splitting (S : ShortComplex C) where
    r : S.X₂ ⟶ S.X₁
    s : S.X₃ ⟶ S.X₂
    f_r : S.f ≫ r = 𝟙 _ := by aesop_cat
    s_g : s ≫ S.g = 𝟙 _ := by aesop_cat
    id : r ≫ S.f + S.g ≫ s = 𝟙 _ := by aesop_cat
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (self : S.Splitting)
Goal: CategoryTheory.CategoryStruct.comp S.f self.r = CategoryTheory.CategoryStruct.id S.X₁
-- CategoryTheory.ShortComplex.Splitting.r_f
@[reassoc]
lemma r_f (s : S.Splitting) : s.r ≫ S.f = 𝟙 _ - S.g ≫ s.s 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (s : S.Splitting)
Goal: CategoryTheory.CategoryStruct.comp s.r S.f =
  CategoryTheory.CategoryStruct.id S.X₂ - CategoryTheory.CategoryStruct.comp S.g s.s
-- CategoryTheory.ShortComplex.Splitting.g_s
@[reassoc]
lemma g_s (s : S.Splitting) : S.g ≫ s.s = 𝟙 _ - s.r ≫ S.f 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (s : S.Splitting)
Goal: CategoryTheory.CategoryStruct.comp S.g s.s =
  CategoryTheory.CategoryStruct.id S.X₂ - CategoryTheory.CategoryStruct.comp s.r S.f
-- CategoryTheory.ShortComplex.Splitting.splitMono_f_retraction
@[simps] def splitMono_f (s : S.Splitting) : SplitMono S.f 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (s : S.Splitting)
Goal: s.splitMono_f.retraction = s.r
-- CategoryTheory.ShortComplex.Splitting.isSplitMono_f
lemma isSplitMono_f (s : S.Splitting) : IsSplitMono S.f 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (s : S.Splitting)
Goal: CategoryTheory.IsSplitMono S.f
-- CategoryTheory.ShortComplex.Splitting.mono_f
lemma mono_f (s : S.Splitting) : Mono S.f 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (s : S.Splitting)
Goal: CategoryTheory.Mono S.f
-- CategoryTheory.ShortComplex.Splitting.splitEpi_g_section_
@[simps] def splitEpi_g (s : S.Splitting) : SplitEpi S.g 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (s : S.Splitting)
Goal: s.splitEpi_g.section_ = s.s
-- CategoryTheory.ShortComplex.Splitting.isSplitEpi_g
lemma isSplitEpi_g (s : S.Splitting) : IsSplitEpi S.g 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (s : S.Splitting)
Goal: CategoryTheory.IsSplitEpi S.g
-- CategoryTheory.ShortComplex.Splitting.epi_g
lemma epi_g (s : S.Splitting) : Epi S.g 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (s : S.Splitting)
Goal: CategoryTheory.Epi S.g
-- CategoryTheory.ShortComplex.Splitting.s_r
@[reassoc (attr := simp)]
lemma s_r (s : S.Splitting) : s.s ≫ s.r = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (s : S.Splitting)
Goal: CategoryTheory.CategoryStruct.comp s.s s.r = 0
-- CategoryTheory.ShortComplex.Splitting.ext_r
lemma ext_r (s s' : S.Splitting) (h : s.r = s'.r) : s = s' 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (s s' : S.Splitting) (h : s.r = s'.r)
Goal: s = s'
-- CategoryTheory.ShortComplex.Splitting.ext_s
lemma ext_s (s s' : S.Splitting) (h : s.s = s'.s) : s = s' 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S : CategoryTheory.ShortComplex C} (s s' : S.Splitting) (h : s.s = s'.s)
Goal: s = s'
-- CategoryTheory.ShortComplex.Splitting.leftHomologyData_i
@[simps]
noncomputable def leftHomologyData [HasZeroObject C] (s : S.Splitting) :
    LeftHomologyData 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.leftHomologyData.i = S.f
-- CategoryTheory.ShortComplex.Splitting.leftHomologyData_K
@[simps]
noncomputable def leftHomologyData [HasZeroObject C] (s : S.Splitting) :
    LeftHomologyData 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.leftHomologyData.K = S.X₁
-- CategoryTheory.ShortComplex.Splitting.leftHomologyData_π
@[simps]
noncomputable def leftHomologyData [HasZeroObject C] (s : S.Splitting) :
    LeftHomologyData 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.leftHomologyData.π = 0
-- CategoryTheory.ShortComplex.Splitting.leftHomologyData_H
@[simps]
noncomputable def leftHomologyData [HasZeroObject C] (s : S.Splitting) :
    LeftHomologyData 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.leftHomologyData.H = 0