ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.Functor.mapShortComplex_map_τ₁
@[simps]
def _root_.CategoryTheory.Functor.mapShortComplex (F : C ⥤ D) [F.PreservesZeroMorphisms] :
    ShortComplex C ⥤ ShortComplex D 
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] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms]
Goal: ∀ {X Y : CategoryTheory.ShortComplex C} (φ : X ⟶ Y), (F.mapShortComplex.map φ).τ₁ = F.map φ.τ₁
-- CategoryTheory.ShortComplex.isoMk_hom_τ₃
@[simps]
def isoMk (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃)
    (comm₁₂ : e₁.hom ≫ S₂.f = S₁.f ≫ e₂.hom := by aesop_cat)
    (comm₂₃ : e₂.hom ≫ S₂.g = S₁.g ≫ e₃.hom := by aesop_cat) :
    S₁ ≅ S₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex C} (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃) (comm₁₂ : CategoryTheory.CategoryStruct.comp e₁.hom S₂.f = CategoryTheory.CategoryStruct.comp S₁.f e₂.hom := by
  aesop_cat) (comm₂₃ : CategoryTheory.CategoryStruct.comp e₂.hom S₂.g = CategoryTheory.CategoryStruct.comp S₁.g e₃.hom := by
  aesop_cat)
Goal: (CategoryTheory.ShortComplex.isoMk e₁ e₂ e₃ comm₁₂ comm₂₃).hom.τ₃ = e₃.hom
-- CategoryTheory.ShortComplex.isoMk_hom_τ₂
@[simps]
def isoMk (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃)
    (comm₁₂ : e₁.hom ≫ S₂.f = S₁.f ≫ e₂.hom := by aesop_cat)
    (comm₂₃ : e₂.hom ≫ S₂.g = S₁.g ≫ e₃.hom := by aesop_cat) :
    S₁ ≅ S₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex C} (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃) (comm₁₂ : CategoryTheory.CategoryStruct.comp e₁.hom S₂.f = CategoryTheory.CategoryStruct.comp S₁.f e₂.hom := by
  aesop_cat) (comm₂₃ : CategoryTheory.CategoryStruct.comp e₂.hom S₂.g = CategoryTheory.CategoryStruct.comp S₁.g e₃.hom := by
  aesop_cat)
Goal: (CategoryTheory.ShortComplex.isoMk e₁ e₂ e₃ comm₁₂ comm₂₃).hom.τ₂ = e₂.hom
-- CategoryTheory.ShortComplex.isoMk_inv
@[simps]
def isoMk (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃)
    (comm₁₂ : e₁.hom ≫ S₂.f = S₁.f ≫ e₂.hom := by aesop_cat)
    (comm₂₃ : e₂.hom ≫ S₂.g = S₁.g ≫ e₃.hom := by aesop_cat) :
    S₁ ≅ S₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex C} (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃) (comm₁₂ : CategoryTheory.CategoryStruct.comp e₁.hom S₂.f = CategoryTheory.CategoryStruct.comp S₁.f e₂.hom := by
  aesop_cat) (comm₂₃ : CategoryTheory.CategoryStruct.comp e₂.hom S₂.g = CategoryTheory.CategoryStruct.comp S₁.g e₃.hom := by
  aesop_cat)
Goal: (CategoryTheory.ShortComplex.isoMk e₁ e₂ e₃ comm₁₂ comm₂₃).inv =
  CategoryTheory.ShortComplex.homMk e₁.inv e₂.inv e₃.inv ⋯ ⋯
-- CategoryTheory.ShortComplex.isoMk_hom_τ₁
@[simps]
def isoMk (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃)
    (comm₁₂ : e₁.hom ≫ S₂.f = S₁.f ≫ e₂.hom := by aesop_cat)
    (comm₂₃ : e₂.hom ≫ S₂.g = S₁.g ≫ e₃.hom := by aesop_cat) :
    S₁ ≅ S₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex C} (e₁ : S₁.X₁ ≅ S₂.X₁) (e₂ : S₁.X₂ ≅ S₂.X₂) (e₃ : S₁.X₃ ≅ S₂.X₃) (comm₁₂ : CategoryTheory.CategoryStruct.comp e₁.hom S₂.f = CategoryTheory.CategoryStruct.comp S₁.f e₂.hom := by
  aesop_cat) (comm₂₃ : CategoryTheory.CategoryStruct.comp e₂.hom S₂.g = CategoryTheory.CategoryStruct.comp S₁.g e₃.hom := by
  aesop_cat)
Goal: (CategoryTheory.ShortComplex.isoMk e₁ e₂ e₃ comm₁₂ comm₂₃).hom.τ₁ = e₁.hom
-- CategoryTheory.ShortComplex.isIso_of_isIso
lemma isIso_of_isIso (f : S₁ ⟶ S₂) [IsIso f.τ₁] [IsIso f.τ₂] [IsIso f.τ₃] : IsIso f 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex C} (f : S₁ ⟶ S₂) [CategoryTheory.IsIso f.τ₁] [CategoryTheory.IsIso f.τ₂] [CategoryTheory.IsIso f.τ₃]
Goal: CategoryTheory.IsIso f
-- CategoryTheory.ShortComplex.op_X₁
@[simps]
def op : ShortComplex Cᵒᵖ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C)
Goal: S.op.X₁ = Opposite.op S.X₃
-- CategoryTheory.ShortComplex.op_g
@[simps]
def op : ShortComplex Cᵒᵖ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C)
Goal: S.op.g = S.f.op
-- CategoryTheory.ShortComplex.op_f
@[simps]
def op : ShortComplex Cᵒᵖ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C)
Goal: S.op.f = S.g.op
-- CategoryTheory.ShortComplex.op_X₂
@[simps]
def op : ShortComplex Cᵒᵖ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C)
Goal: S.op.X₂ = Opposite.op S.X₂
-- CategoryTheory.ShortComplex.op_X₃
@[simps]
def op : ShortComplex Cᵒᵖ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C)
Goal: S.op.X₃ = Opposite.op S.X₁
-- CategoryTheory.ShortComplex.opMap_τ₂
@[simps]
def opMap (φ : S₁ ⟶ S₂) : S₂.op ⟶ S₁.op 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex C} (φ : S₁ ⟶ S₂)
Goal: (CategoryTheory.ShortComplex.opMap φ).τ₂ = φ.τ₂.op
-- CategoryTheory.ShortComplex.opMap_τ₁
@[simps]
def opMap (φ : S₁ ⟶ S₂) : S₂.op ⟶ S₁.op 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex C} (φ : S₁ ⟶ S₂)
Goal: (CategoryTheory.ShortComplex.opMap φ).τ₁ = φ.τ₃.op
-- CategoryTheory.ShortComplex.opMap_τ₃
@[simps]
def opMap (φ : S₁ ⟶ S₂) : S₂.op ⟶ S₁.op 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex C} (φ : S₁ ⟶ S₂)
Goal: (CategoryTheory.ShortComplex.opMap φ).τ₃ = φ.τ₁.op
-- CategoryTheory.ShortComplex.opMap_id
@[simp]
lemma opMap_id : opMap (𝟙 S) = 𝟙 S.op 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C)
Goal: CategoryTheory.ShortComplex.opMap (CategoryTheory.CategoryStruct.id S) = CategoryTheory.CategoryStruct.id S.op
-- CategoryTheory.ShortComplex.unop_X₁
@[simps]
def unop (S : ShortComplex Cᵒᵖ) : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex Cᵒᵖ)
Goal: S.unop.X₁ = Opposite.unop S.X₃
-- CategoryTheory.ShortComplex.unop_X₂
@[simps]
def unop (S : ShortComplex Cᵒᵖ) : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex Cᵒᵖ)
Goal: S.unop.X₂ = Opposite.unop S.X₂
-- CategoryTheory.ShortComplex.unop_f
@[simps]
def unop (S : ShortComplex Cᵒᵖ) : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex Cᵒᵖ)
Goal: S.unop.f = S.g.unop
-- CategoryTheory.ShortComplex.unop_X₃
@[simps]
def unop (S : ShortComplex Cᵒᵖ) : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex Cᵒᵖ)
Goal: S.unop.X₃ = Opposite.unop S.X₁
-- CategoryTheory.ShortComplex.unop_g
@[simps]
def unop (S : ShortComplex Cᵒᵖ) : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex Cᵒᵖ)
Goal: S.unop.g = S.f.unop
-- CategoryTheory.ShortComplex.unopMap_τ₃
@[simps]
def unopMap {S₁ S₂ : ShortComplex Cᵒᵖ} (φ : S₁ ⟶ S₂) : S₂.unop ⟶ S₁.unop 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex Cᵒᵖ} (φ : S₁ ⟶ S₂)
Goal: (CategoryTheory.ShortComplex.unopMap φ).τ₃ = φ.τ₁.unop
-- CategoryTheory.ShortComplex.unopMap_τ₁
@[simps]
def unopMap {S₁ S₂ : ShortComplex Cᵒᵖ} (φ : S₁ ⟶ S₂) : S₂.unop ⟶ S₁.unop 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex Cᵒᵖ} (φ : S₁ ⟶ S₂)
Goal: (CategoryTheory.ShortComplex.unopMap φ).τ₁ = φ.τ₃.unop
-- CategoryTheory.ShortComplex.unopMap_τ₂
@[simps]
def unopMap {S₁ S₂ : ShortComplex Cᵒᵖ} (φ : S₁ ⟶ S₂) : S₂.unop ⟶ S₁.unop 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S₁ S₂ : CategoryTheory.ShortComplex Cᵒᵖ} (φ : S₁ ⟶ S₂)
Goal: (CategoryTheory.ShortComplex.unopMap φ).τ₂ = φ.τ₂.unop
-- CategoryTheory.ShortComplex.unopMap_id
@[simp]
lemma unopMap_id (S : ShortComplex Cᵒᵖ) : unopMap (𝟙 S) = 𝟙 S.unop 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex Cᵒᵖ)
Goal: CategoryTheory.ShortComplex.unopMap (CategoryTheory.CategoryStruct.id S) = CategoryTheory.CategoryStruct.id S.unop
-- CategoryTheory.ShortComplex.opFunctor_map
@[simps]
def opFunctor : (ShortComplex C)ᵒᵖ ⥤ ShortComplex Cᵒᵖ 
Arguments: (C : Type u_1) [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C]
Goal: ∀ {X Y : (CategoryTheory.ShortComplex C)ᵒᵖ} (φ : X ⟶ Y),
  (CategoryTheory.ShortComplex.opFunctor C).map φ = CategoryTheory.ShortComplex.opMap φ.unop
-- CategoryTheory.ShortComplex.opFunctor_obj
@[simps]
def opFunctor : (ShortComplex C)ᵒᵖ ⥤ ShortComplex Cᵒᵖ 
Arguments: (C : Type u_1) [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : (CategoryTheory.ShortComplex C)ᵒᵖ)
Goal: (CategoryTheory.ShortComplex.opFunctor C).obj S = (Opposite.unop S).op
-- CategoryTheory.ShortComplex.unopFunctor_obj
@[simps]
def unopFunctor : ShortComplex Cᵒᵖ ⥤ (ShortComplex C)ᵒᵖ 
Arguments: (C : Type u_1) [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex Cᵒᵖ)
Goal: (CategoryTheory.ShortComplex.unopFunctor C).obj S = Opposite.op S.unop
-- CategoryTheory.ShortComplex.unopFunctor_map
@[simps]
def unopFunctor : ShortComplex Cᵒᵖ ⥤ (ShortComplex C)ᵒᵖ 
Arguments: (C : Type u_1) [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C]
Goal: ∀ {X Y : CategoryTheory.ShortComplex Cᵒᵖ} (φ : X ⟶ Y),
  (CategoryTheory.ShortComplex.unopFunctor C).map φ = (CategoryTheory.ShortComplex.unopMap φ).op
-- CategoryTheory.ShortComplex.opEquiv_inverse
@[simps]
def opEquiv : (ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ 
Arguments: (C : Type u_1) [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C]
Goal: (CategoryTheory.ShortComplex.opEquiv C).inverse = CategoryTheory.ShortComplex.unopFunctor C
-- CategoryTheory.ShortComplex.opEquiv_unitIso
@[simps]
def opEquiv : (ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ 
Arguments: (C : Type u_1) [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C]
Goal: (CategoryTheory.ShortComplex.opEquiv C).unitIso =
  CategoryTheory.Iso.refl (CategoryTheory.Functor.id (CategoryTheory.ShortComplex C)ᵒᵖ)
-- CategoryTheory.ShortComplex.opEquiv_counitIso
@[simps]
def opEquiv : (ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ 
Arguments: (C : Type u_1) [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C]
Goal: (CategoryTheory.ShortComplex.opEquiv C).counitIso =
  CategoryTheory.Iso.refl ((CategoryTheory.ShortComplex.unopFunctor C).comp (CategoryTheory.ShortComplex.opFunctor C))
-- CategoryTheory.ShortComplex.opEquiv_functor
@[simps]
def opEquiv : (ShortComplex C)ᵒᵖ ≌ ShortComplex Cᵒᵖ 
Arguments: (C : Type u_1) [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C]
Goal: (CategoryTheory.ShortComplex.opEquiv C).functor = CategoryTheory.ShortComplex.opFunctor C
-- CategoryTheory.ShortComplex.abelianImageToKernel_comp_kernel_ι
@[reassoc (attr := simp)]
lemma abelianImageToKernel_comp_kernel_ι :
    S.abelianImageToKernel ≫ kernel.ι S.g = Abelian.image.ι S.f 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex C)
Goal: CategoryTheory.CategoryStruct.comp S.abelianImageToKernel (CategoryTheory.Limits.kernel.ι S.g) =
  CategoryTheory.Abelian.image.ι S.f
-- CategoryTheory.ShortComplex.abelianImageToKernel_comp_kernel_ι_comp_cokernel_π
@[reassoc (attr := simp 1100)]
lemma abelianImageToKernel_comp_kernel_ι_comp_cokernel_π :
    S.abelianImageToKernel ≫ kernel.ι S.g ≫ cokernel.π S.f = 0 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex C)
Goal: CategoryTheory.CategoryStruct.comp S.abelianImageToKernel
    (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι S.g) (CategoryTheory.Limits.cokernel.π S.f)) =
  0
-- CategoryTheory.ShortComplex.LeftHomologyData.ofAbelian_π
@[simps]
noncomputable def ofAbelian : S.LeftHomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex C)
Goal: (CategoryTheory.ShortComplex.LeftHomologyData.ofAbelian S).π =
  CategoryTheory.Limits.cokernel.π
    (CategoryTheory.Limits.kernel.ι
      (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι S.g) (CategoryTheory.Limits.cokernel.π S.f)))
-- CategoryTheory.ShortComplex.LeftHomologyData.ofAbelian_i
@[simps]
noncomputable def ofAbelian : S.LeftHomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex C)
Goal: (CategoryTheory.ShortComplex.LeftHomologyData.ofAbelian S).i = CategoryTheory.Limits.kernel.ι S.g
-- CategoryTheory.ShortComplex.LeftHomologyData.ofAbelian_H
@[simps]
noncomputable def ofAbelian : S.LeftHomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex C)
Goal: (CategoryTheory.ShortComplex.LeftHomologyData.ofAbelian S).H =
  CategoryTheory.Abelian.coimage
    (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι S.g) (CategoryTheory.Limits.cokernel.π S.f))
-- CategoryTheory.ShortComplex.LeftHomologyData.ofAbelian_K
@[simps]
noncomputable def ofAbelian : S.LeftHomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex C)
Goal: (CategoryTheory.ShortComplex.LeftHomologyData.ofAbelian S).K = CategoryTheory.Limits.kernel S.g
-- CategoryTheory.ShortComplex.cokernel_π_comp_cokernelToAbelianCoimage
@[reassoc (attr := simp)]
lemma cokernel_π_comp_cokernelToAbelianCoimage :
    cokernel.π S.f ≫ S.cokernelToAbelianCoimage = Abelian.coimage.π S.g 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex C)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.cokernel.π S.f) S.cokernelToAbelianCoimage =
  CategoryTheory.Abelian.coimage.π S.g
-- CategoryTheory.ShortComplex.kernel_ι_comp_cokernel_π_comp_cokernelToAbelianCoimage
lemma kernel_ι_comp_cokernel_π_comp_cokernelToAbelianCoimage :
    (kernel.ι S.g ≫ cokernel.π S.f) ≫ S.cokernelToAbelianCoimage = 0 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex C)
Goal: CategoryTheory.CategoryStruct.comp
    (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι S.g) (CategoryTheory.Limits.cokernel.π S.f))
    S.cokernelToAbelianCoimage =
  0
-- CategoryTheory.ShortComplex.RightHomologyData.ofAbelian_p
@[simps]
noncomputable def ofAbelian : S.RightHomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex C)
Goal: (CategoryTheory.ShortComplex.RightHomologyData.ofAbelian S).p = CategoryTheory.Limits.cokernel.π S.f
-- CategoryTheory.ShortComplex.RightHomologyData.ofAbelian_H
@[simps]
noncomputable def ofAbelian : S.RightHomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex C)
Goal: (CategoryTheory.ShortComplex.RightHomologyData.ofAbelian S).H =
  CategoryTheory.Abelian.image
    (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι S.g) (CategoryTheory.Limits.cokernel.π S.f))
-- CategoryTheory.ShortComplex.RightHomologyData.ofAbelian_ι
@[simps]
noncomputable def ofAbelian : S.RightHomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex C)
Goal: (CategoryTheory.ShortComplex.RightHomologyData.ofAbelian S).ι =
  CategoryTheory.Limits.kernel.ι
    (CategoryTheory.Limits.cokernel.π
      (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.kernel.ι S.g) (CategoryTheory.Limits.cokernel.π S.f)))
-- CategoryTheory.ShortComplex.RightHomologyData.ofAbelian_Q
@[simps]
noncomputable def ofAbelian : S.RightHomologyData 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex C)
Goal: (CategoryTheory.ShortComplex.RightHomologyData.ofAbelian S).Q = CategoryTheory.Limits.cokernel S.f
-- CategoryTheory.ShortComplex.moduleCatMk_X₁
@[simps]
def moduleCatMk {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃]
    [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃)
    (hfg : g.comp f = 0) : ShortComplex (ModuleCat.{v} R) 
Arguments: {R : Type u} [Ring R] {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃] [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃) (hfg : g ∘ₗ f = 0)
Goal: (CategoryTheory.ShortComplex.moduleCatMk f g hfg).X₁ = ModuleCat.of R X₁
-- CategoryTheory.ShortComplex.moduleCatMk_g
@[simps]
def moduleCatMk {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃]
    [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃)
    (hfg : g.comp f = 0) : ShortComplex (ModuleCat.{v} R) 
Arguments: {R : Type u} [Ring R] {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃] [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃) (hfg : g ∘ₗ f = 0)
Goal: (CategoryTheory.ShortComplex.moduleCatMk f g hfg).g = ModuleCat.ofHom g
-- CategoryTheory.ShortComplex.moduleCatMk_f
@[simps]
def moduleCatMk {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃]
    [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃)
    (hfg : g.comp f = 0) : ShortComplex (ModuleCat.{v} R) 
Arguments: {R : Type u} [Ring R] {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃] [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃) (hfg : g ∘ₗ f = 0)
Goal: (CategoryTheory.ShortComplex.moduleCatMk f g hfg).f = ModuleCat.ofHom f
-- CategoryTheory.ShortComplex.moduleCatMk_X₃
@[simps]
def moduleCatMk {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃]
    [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃)
    (hfg : g.comp f = 0) : ShortComplex (ModuleCat.{v} R) 
Arguments: {R : Type u} [Ring R] {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃] [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃) (hfg : g ∘ₗ f = 0)
Goal: (CategoryTheory.ShortComplex.moduleCatMk f g hfg).X₃ = ModuleCat.of R X₃
-- CategoryTheory.ShortComplex.moduleCatMk_X₂
@[simps]
def moduleCatMk {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃]
    [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃)
    (hfg : g.comp f = 0) : ShortComplex (ModuleCat.{v} R) 
Arguments: {R : Type u} [Ring R] {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃] [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃) (hfg : g ∘ₗ f = 0)
Goal: (CategoryTheory.ShortComplex.moduleCatMk f g hfg).X₂ = ModuleCat.of R X₂
-- CategoryTheory.ShortComplex.moduleCat_zero_apply
@[simp]
lemma moduleCat_zero_apply (x : S.X₁) : S.g (S.f x) = 0 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R)) (x : ↑S.X₁)
Goal: S.g (S.f x) = 0
-- CategoryTheory.ShortComplex.moduleCat_exact_iff
lemma moduleCat_exact_iff :
    S.Exact ↔ ∀ (x₂ : S.X₂) (_ : S.g x₂ = 0), ∃ (x₁ : S.X₁), S.f x₁ = x₂ 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: S.Exact ↔ ∀ (x₂ : ↑S.X₂), S.g x₂ = 0 → ∃ x₁, S.f x₁ = x₂
-- CategoryTheory.ShortComplex.moduleCat_exact_iff_ker_sub_range
lemma moduleCat_exact_iff_ker_sub_range :
    S.Exact ↔ LinearMap.ker S.g ≤ LinearMap.range S.f 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: S.Exact ↔ LinearMap.ker S.g ≤ LinearMap.range S.f
-- CategoryTheory.ShortComplex.moduleCat_exact_iff_range_eq_ker
lemma moduleCat_exact_iff_range_eq_ker :
    S.Exact ↔ LinearMap.range S.f = LinearMap.ker S.g 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: S.Exact ↔ LinearMap.range S.f = LinearMap.ker S.g
-- CategoryTheory.ShortComplex.Exact.moduleCat_range_eq_ker
lemma Exact.moduleCat_range_eq_ker (hS : S.Exact) :
    LinearMap.range S.f = LinearMap.ker S.g 
Arguments: {R : Type u} [Ring R] {S : CategoryTheory.ShortComplex (ModuleCat R)} (hS : S.Exact)
Goal: LinearMap.range S.f = LinearMap.ker S.g
-- CategoryTheory.ShortComplex.ShortExact.moduleCat_injective_f
lemma ShortExact.moduleCat_injective_f (hS : S.ShortExact) :
    Function.Injective S.f 
Arguments: {R : Type u} [Ring R] {S : CategoryTheory.ShortComplex (ModuleCat R)} (hS : S.ShortExact)
Goal: Function.Injective ⇑S.f
-- CategoryTheory.ShortComplex.ShortExact.moduleCat_surjective_g
lemma ShortExact.moduleCat_surjective_g (hS : S.ShortExact) :
    Function.Surjective S.g 
Arguments: {R : Type u} [Ring R] {S : CategoryTheory.ShortComplex (ModuleCat R)} (hS : S.ShortExact)
Goal: Function.Surjective ⇑S.g
-- CategoryTheory.ShortComplex.ShortExact.moduleCat_exact_iff_function_exact
lemma ShortExact.moduleCat_exact_iff_function_exact :
    S.Exact ↔ Function.Exact S.f S.g 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: S.Exact ↔ Function.Exact ⇑S.f ⇑S.g
-- CategoryTheory.ShortComplex.moduleCatMkOfKerLERange_X₃
@[simps]
def moduleCatMkOfKerLERange {X₁ X₂ X₃ : ModuleCat.{v} R} (f : X₁ ⟶ X₂) (g : X₂ ⟶ X₃)
    (hfg : LinearMap.range f ≤ LinearMap.ker g) : ShortComplex (ModuleCat.{v} R) 
Arguments: {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ ⟶ X₂) (g : X₂ ⟶ X₃) (hfg : LinearMap.range f ≤ LinearMap.ker g)
Goal: (CategoryTheory.ShortComplex.moduleCatMkOfKerLERange f g hfg).X₃ = X₃
-- CategoryTheory.ShortComplex.moduleCatMkOfKerLERange_f
@[simps]
def moduleCatMkOfKerLERange {X₁ X₂ X₃ : ModuleCat.{v} R} (f : X₁ ⟶ X₂) (g : X₂ ⟶ X₃)
    (hfg : LinearMap.range f ≤ LinearMap.ker g) : ShortComplex (ModuleCat.{v} R) 
Arguments: {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ ⟶ X₂) (g : X₂ ⟶ X₃) (hfg : LinearMap.range f ≤ LinearMap.ker g)
Goal: (CategoryTheory.ShortComplex.moduleCatMkOfKerLERange f g hfg).f = f
-- CategoryTheory.ShortComplex.moduleCatMkOfKerLERange_X₂
@[simps]
def moduleCatMkOfKerLERange {X₁ X₂ X₃ : ModuleCat.{v} R} (f : X₁ ⟶ X₂) (g : X₂ ⟶ X₃)
    (hfg : LinearMap.range f ≤ LinearMap.ker g) : ShortComplex (ModuleCat.{v} R) 
Arguments: {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ ⟶ X₂) (g : X₂ ⟶ X₃) (hfg : LinearMap.range f ≤ LinearMap.ker g)
Goal: (CategoryTheory.ShortComplex.moduleCatMkOfKerLERange f g hfg).X₂ = X₂