ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.ShortComplex.SnakeInput.L₂_exact
structure SnakeInput where
    L₀ : ShortComplex C
    L₁ : ShortComplex C
    L₂ : ShortComplex C
    L₃ : ShortComplex C
    v₀₁ : L₀ ⟶ L₁
    v₁₂ : L₁ ⟶ L₂
    v₂₃ : L₂ ⟶ L₃
  w₀₂ : v₀₁ ≫ v₁₂ = 0 := by aesop_cat
  w₁₃ : v₁₂ ≫ v₂₃ = 0 := by aesop_cat
    h₀ : IsLimit (KernelFork.ofι _ w₀₂)
    h₃ : IsColimit (CokernelCofork.ofπ _ w₁₃)
  L₁_exact : L₁.Exact
  epi_L₁_g : Epi L₁.g
  L₂_exact : L₂.Exact
  mono_L₂_f : Mono L₂.f
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (self : CategoryTheory.ShortComplex.SnakeInput C)
Goal: self.L₂.Exact
-- CategoryTheory.ShortComplex.SnakeInput.op_L₃
@[simps]
noncomputable def op : SnakeInput Cᵒᵖ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.op.L₃ = S.L₀.op
-- CategoryTheory.ShortComplex.SnakeInput.op_v₁₂
@[simps]
noncomputable def op : SnakeInput Cᵒᵖ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.op.v₁₂ = CategoryTheory.ShortComplex.opMap S.v₁₂
-- CategoryTheory.ShortComplex.SnakeInput.op_L₁
@[simps]
noncomputable def op : SnakeInput Cᵒᵖ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.op.L₁ = S.L₂.op
-- CategoryTheory.ShortComplex.SnakeInput.op_L₀
@[simps]
noncomputable def op : SnakeInput Cᵒᵖ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.op.L₀ = S.L₃.op
-- CategoryTheory.ShortComplex.SnakeInput.op_v₂₃
@[simps]
noncomputable def op : SnakeInput Cᵒᵖ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.op.v₂₃ = CategoryTheory.ShortComplex.opMap S.v₀₁
-- CategoryTheory.ShortComplex.SnakeInput.op_v₀₁
@[simps]
noncomputable def op : SnakeInput Cᵒᵖ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.op.v₀₁ = CategoryTheory.ShortComplex.opMap S.v₂₃
-- CategoryTheory.ShortComplex.SnakeInput.op_L₂
@[simps]
noncomputable def op : SnakeInput Cᵒᵖ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.op.L₂ = S.L₁.op
-- CategoryTheory.ShortComplex.SnakeInput.w₀₂_τ₁
@[reassoc (attr := simp)] lemma w₀₂_τ₁ : S.v₀₁.τ₁ ≫ S.v₁₂.τ₁ = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp S.v₀₁.τ₁ S.v₁₂.τ₁ = 0
-- CategoryTheory.ShortComplex.SnakeInput.w₀₂_τ₂
@[reassoc (attr := simp)] lemma w₀₂_τ₂ : S.v₀₁.τ₂ ≫ S.v₁₂.τ₂ = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp S.v₀₁.τ₂ S.v₁₂.τ₂ = 0
-- CategoryTheory.ShortComplex.SnakeInput.w₀₂_τ₃
@[reassoc (attr := simp)] lemma w₀₂_τ₃ : S.v₀₁.τ₃ ≫ S.v₁₂.τ₃ = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp S.v₀₁.τ₃ S.v₁₂.τ₃ = 0
-- CategoryTheory.ShortComplex.SnakeInput.w₁₃_τ₁
@[reassoc (attr := simp)] lemma w₁₃_τ₁ : S.v₁₂.τ₁ ≫ S.v₂₃.τ₁ = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp S.v₁₂.τ₁ S.v₂₃.τ₁ = 0
-- CategoryTheory.ShortComplex.SnakeInput.w₁₃_τ₂
@[reassoc (attr := simp)] lemma w₁₃_τ₂ : S.v₁₂.τ₂ ≫ S.v₂₃.τ₂ = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp S.v₁₂.τ₂ S.v₂₃.τ₂ = 0
-- CategoryTheory.ShortComplex.SnakeInput.w₁₃_τ₃
@[reassoc (attr := simp)] lemma w₁₃_τ₃ : S.v₁₂.τ₃ ≫ S.v₂₃.τ₃ = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp S.v₁₂.τ₃ S.v₂₃.τ₃ = 0
-- CategoryTheory.ShortComplex.SnakeInput.exact_C₁_up
lemma exact_C₁_up : (ShortComplex.mk S.v₀₁.τ₁ S.v₁₂.τ₁
    (by rw [← comp_τ₁, S.w₀₂, zero_τ₁])).Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.ShortComplex.mk S.v₀₁.τ₁ S.v₁₂.τ₁ ⋯).Exact
-- CategoryTheory.ShortComplex.SnakeInput.exact_C₂_up
lemma exact_C₂_up : (ShortComplex.mk S.v₀₁.τ₂ S.v₁₂.τ₂
    (by rw [← comp_τ₂, S.w₀₂, zero_τ₂])).Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.ShortComplex.mk S.v₀₁.τ₂ S.v₁₂.τ₂ ⋯).Exact
-- CategoryTheory.ShortComplex.SnakeInput.exact_C₃_up
lemma exact_C₃_up : (ShortComplex.mk S.v₀₁.τ₃ S.v₁₂.τ₃
    (by rw [← comp_τ₃, S.w₀₂, zero_τ₃])).Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.ShortComplex.mk S.v₀₁.τ₃ S.v₁₂.τ₃ ⋯).Exact
-- CategoryTheory.ShortComplex.SnakeInput.exact_C₁_down
lemma exact_C₁_down : (ShortComplex.mk S.v₁₂.τ₁ S.v₂₃.τ₁
    (by rw [← comp_τ₁, S.w₁₃, zero_τ₁])).Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.ShortComplex.mk S.v₁₂.τ₁ S.v₂₃.τ₁ ⋯).Exact
-- CategoryTheory.ShortComplex.SnakeInput.exact_C₂_down
lemma exact_C₂_down : (ShortComplex.mk S.v₁₂.τ₂ S.v₂₃.τ₂
    (by rw [← comp_τ₂, S.w₁₃, zero_τ₂])).Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.ShortComplex.mk S.v₁₂.τ₂ S.v₂₃.τ₂ ⋯).Exact
-- CategoryTheory.ShortComplex.SnakeInput.exact_C₃_down
lemma exact_C₃_down : (ShortComplex.mk S.v₁₂.τ₃ S.v₂₃.τ₃
    (by rw [← comp_τ₃, S.w₁₃, zero_τ₃])).Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.ShortComplex.mk S.v₁₂.τ₃ S.v₂₃.τ₃ ⋯).Exact
-- CategoryTheory.ShortComplex.SnakeInput.L₀_exact
lemma L₀_exact : S.L₀.Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₀.Exact
-- CategoryTheory.ShortComplex.SnakeInput.L₃_exact
lemma L₃_exact : S.L₃.Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₃.Exact
-- CategoryTheory.ShortComplex.SnakeInput.lift_φ₂
@[reassoc (attr := simp)]
lemma lift_φ₂ {A : C} (a : A ⟶ S.L₁.X₂) (b : A ⟶ S.L₀.X₃) (h : a ≫ S.L₁.g = b ≫ S.v₀₁.τ₃) :
    pullback.lift a b h ≫ S.φ₂ = a ≫ S.v₁₂.τ₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C) {A : C} (a : A ⟶ S.L₁.X₂) (b : A ⟶ S.L₀.X₃) (h : CategoryTheory.CategoryStruct.comp a S.L₁.g = CategoryTheory.CategoryStruct.comp b S.v₀₁.τ₃)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.lift a b h) S.φ₂ =
  CategoryTheory.CategoryStruct.comp a S.v₁₂.τ₂
-- CategoryTheory.ShortComplex.SnakeInput.φ₁_L₂_f
@[reassoc (attr := simp)] lemma φ₁_L₂_f : S.φ₁ ≫ S.L₂.f = S.φ₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp S.φ₁ S.L₂.f = S.φ₂
-- CategoryTheory.ShortComplex.SnakeInput.L₁_f_φ₁
@[reassoc (attr := simp)] lemma L₁_f_φ₁ : S.L₀'.f ≫ S.φ₁ = S.v₁₂.τ₁ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp S.L₀'.f S.φ₁ = S.v₁₂.τ₁
-- CategoryTheory.ShortComplex.SnakeInput.L₀'_exact
lemma L₀'_exact : S.L₀'.Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₀'.Exact
-- CategoryTheory.ShortComplex.SnakeInput.snd_δ
@[reassoc (attr := simp)]
lemma snd_δ : (pullback.snd _ _ : S.P ⟶ _) ≫ S.δ = S.φ₁ ≫ S.v₂₃.τ₁ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd S.L₁.g S.v₀₁.τ₃) S.δ =
  CategoryTheory.CategoryStruct.comp S.φ₁ S.v₂₃.τ₁
-- CategoryTheory.ShortComplex.SnakeInput.snd_δ_inr
lemma snd_δ_inr : (pullback.snd _ _ : S.P ⟶ _) ≫ S.δ ≫ (pushout.inr _ _ : _ ⟶ S.P') =
    pullback.fst _ _ ≫ S.v₁₂.τ₂ ≫ pushout.inl _ _ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd S.L₁.g S.v₀₁.τ₃)
    (CategoryTheory.CategoryStruct.comp S.δ (CategoryTheory.Limits.pushout.inr S.L₂.f S.v₂₃.τ₁)) =
  CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst S.L₁.g S.v₀₁.τ₃)
    (CategoryTheory.CategoryStruct.comp S.v₁₂.τ₂ (CategoryTheory.Limits.pushout.inl S.L₂.f S.v₂₃.τ₁))
-- CategoryTheory.ShortComplex.SnakeInput.L₀X₂ToP_comp_pullback_snd
@[reassoc]
lemma L₀X₂ToP_comp_pullback_snd : S.L₀X₂ToP ≫ pullback.snd _ _ = S.L₀.g 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp S.L₀X₂ToP (CategoryTheory.Limits.pullback.snd S.L₁.g S.v₀₁.τ₃) = S.L₀.g
-- CategoryTheory.ShortComplex.SnakeInput.L₀X₂ToP_comp_φ₁
@[reassoc]
lemma L₀X₂ToP_comp_φ₁ : S.L₀X₂ToP ≫ S.φ₁ = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp S.L₀X₂ToP S.φ₁ = 0
-- CategoryTheory.ShortComplex.SnakeInput.L₀_g_δ
lemma L₀_g_δ : S.L₀.g ≫ S.δ = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp S.L₀.g S.δ = 0
-- CategoryTheory.ShortComplex.SnakeInput.δ_L₃_f
lemma δ_L₃_f : S.δ ≫ S.L₃.f = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.CategoryStruct.comp S.δ S.L₃.f = 0
-- CategoryTheory.ShortComplex.SnakeInput.L₁'_g
@[simps]
noncomputable def L₁' : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₁'.g = S.δ
-- CategoryTheory.ShortComplex.SnakeInput.L₁'_X₁
@[simps]
noncomputable def L₁' : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₁'.X₁ = S.L₀.X₂
-- CategoryTheory.ShortComplex.SnakeInput.L₁'_X₃
@[simps]
noncomputable def L₁' : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₁'.X₃ = S.L₃.X₁
-- CategoryTheory.ShortComplex.SnakeInput.L₁'_X₂
@[simps]
noncomputable def L₁' : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₁'.X₂ = S.L₀.X₃
-- CategoryTheory.ShortComplex.SnakeInput.L₁'_f
@[simps]
noncomputable def L₁' : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₁'.f = S.L₀.g
-- CategoryTheory.ShortComplex.SnakeInput.L₂'_X₃
@[simps]
noncomputable def L₂' : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₂'.X₃ = S.L₃.X₂
-- CategoryTheory.ShortComplex.SnakeInput.L₂'_X₂
@[simps]
noncomputable def L₂' : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₂'.X₂ = S.L₃.X₁
-- CategoryTheory.ShortComplex.SnakeInput.L₂'_f
@[simps]
noncomputable def L₂' : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₂'.f = S.δ
-- CategoryTheory.ShortComplex.SnakeInput.L₂'_X₁
@[simps]
noncomputable def L₂' : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₂'.X₁ = S.L₀.X₃
-- CategoryTheory.ShortComplex.SnakeInput.L₂'_g
@[simps]
noncomputable def L₂' : ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₂'.g = S.L₃.f
-- CategoryTheory.ShortComplex.SnakeInput.L₁'_exact
lemma L₁'_exact : S.L₁'.Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₁'.Exact
-- CategoryTheory.ShortComplex.SnakeInput.op_δ
lemma op_δ : S.op.δ = S.δ.op 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.op.δ = S.δ.op
-- CategoryTheory.ShortComplex.SnakeInput.L₂'_exact
lemma L₂'_exact : S.L₂'.Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.L₂'.Exact
-- CategoryTheory.ShortComplex.SnakeInput.snake_lemma
lemma snake_lemma : S.composableArrows.Exact 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: S.composableArrows.Exact
-- CategoryTheory.ShortComplex.SnakeInput.δ_eq
lemma δ_eq {A : C} (x₃ : A ⟶ S.L₀.X₃) (x₂ : A ⟶ S.L₁.X₂) (x₁ : A ⟶ S.L₂.X₁)
    (h₂ : x₂ ≫ S.L₁.g = x₃ ≫ S.v₀₁.τ₃) (h₁ : x₁ ≫ S.L₂.f = x₂ ≫ S.v₁₂.τ₂) :
    x₃ ≫ S.δ = x₁ ≫ S.v₂₃.τ₁ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C) {A : C} (x₃ : A ⟶ S.L₀.X₃) (x₂ : A ⟶ S.L₁.X₂) (x₁ : A ⟶ S.L₂.X₁) (h₂ : CategoryTheory.CategoryStruct.comp x₂ S.L₁.g = CategoryTheory.CategoryStruct.comp x₃ S.v₀₁.τ₃) (h₁ : CategoryTheory.CategoryStruct.comp x₁ S.L₂.f = CategoryTheory.CategoryStruct.comp x₂ S.v₁₂.τ₂)
Goal: CategoryTheory.CategoryStruct.comp x₃ S.δ = CategoryTheory.CategoryStruct.comp x₁ S.v₂₃.τ₁
-- CategoryTheory.ShortComplex.SnakeInput.Hom.comm₁₂
@[ext]
structure Hom :=
    f₀ : S₁.L₀ ⟶ S₂.L₀
    f₁ : S₁.L₁ ⟶ S₂.L₁
    f₂ : S₁.L₂ ⟶ S₂.L₂
    f₃ : S₁.L₃ ⟶ S₂.L₃
  comm₀₁ : f₀ ≫ S₂.v₀₁ = S₁.v₀₁ ≫ f₁ := by aesop_cat
  comm₁₂ : f₁ ≫ S₂.v₁₂ = S₁.v₁₂ ≫ f₂ := by aesop_cat
  comm₂₃ : f₂ ≫ S₂.v₂₃ = S₁.v₂₃ ≫ f₃ := by aesop_cat
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ : CategoryTheory.ShortComplex.SnakeInput C} (self : S₁.Hom S₂)
Goal: CategoryTheory.CategoryStruct.comp self.f₁ S₂.v₁₂ = CategoryTheory.CategoryStruct.comp S₁.v₁₂ self.f₂
-- CategoryTheory.ShortComplex.SnakeInput.Hom.comm₀₁
@[ext]
structure Hom :=
    f₀ : S₁.L₀ ⟶ S₂.L₀
    f₁ : S₁.L₁ ⟶ S₂.L₁
    f₂ : S₁.L₂ ⟶ S₂.L₂
    f₃ : S₁.L₃ ⟶ S₂.L₃
  comm₀₁ : f₀ ≫ S₂.v₀₁ = S₁.v₀₁ ≫ f₁ := by aesop_cat
  comm₁₂ : f₁ ≫ S₂.v₁₂ = S₁.v₁₂ ≫ f₂ := by aesop_cat
  comm₂₃ : f₂ ≫ S₂.v₂₃ = S₁.v₂₃ ≫ f₃ := by aesop_cat
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ : CategoryTheory.ShortComplex.SnakeInput C} (self : S₁.Hom S₂)
Goal: CategoryTheory.CategoryStruct.comp self.f₀ S₂.v₀₁ = CategoryTheory.CategoryStruct.comp S₁.v₀₁ self.f₁
-- CategoryTheory.ShortComplex.SnakeInput.Hom.comm₂₃
@[ext]
structure Hom :=
    f₀ : S₁.L₀ ⟶ S₂.L₀
    f₁ : S₁.L₁ ⟶ S₂.L₁
    f₂ : S₁.L₂ ⟶ S₂.L₂
    f₃ : S₁.L₃ ⟶ S₂.L₃
  comm₀₁ : f₀ ≫ S₂.v₀₁ = S₁.v₀₁ ≫ f₁ := by aesop_cat
  comm₁₂ : f₁ ≫ S₂.v₁₂ = S₁.v₁₂ ≫ f₂ := by aesop_cat
  comm₂₃ : f₂ ≫ S₂.v₂₃ = S₁.v₂₃ ≫ f₃ := by aesop_cat
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ : CategoryTheory.ShortComplex.SnakeInput C} (self : S₁.Hom S₂)
Goal: CategoryTheory.CategoryStruct.comp self.f₂ S₂.v₂₃ = CategoryTheory.CategoryStruct.comp S₁.v₂₃ self.f₃
-- CategoryTheory.ShortComplex.SnakeInput.Hom.id_f₀
@[simps]
def id : Hom S S 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.ShortComplex.SnakeInput.Hom.id S).f₀ = CategoryTheory.CategoryStruct.id S.L₀
-- CategoryTheory.ShortComplex.SnakeInput.Hom.id_f₁
@[simps]
def id : Hom S S 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.ShortComplex.SnakeInput.Hom.id S).f₁ = CategoryTheory.CategoryStruct.id S.L₁
-- CategoryTheory.ShortComplex.SnakeInput.Hom.id_f₃
@[simps]
def id : Hom S S 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.ShortComplex.SnakeInput.Hom.id S).f₃ = CategoryTheory.CategoryStruct.id S.L₃
-- CategoryTheory.ShortComplex.SnakeInput.Hom.id_f₂
@[simps]
def id : Hom S S 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.ShortComplex.SnakeInput.Hom.id S).f₂ = CategoryTheory.CategoryStruct.id S.L₂
-- CategoryTheory.ShortComplex.SnakeInput.Hom.comp_f₃
@[simps]
def comp (f : Hom S₁ S₂) (g : Hom S₂ S₃) : Hom S₁ S₃ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ S₃ : CategoryTheory.ShortComplex.SnakeInput C} (f : S₁.Hom S₂) (g : S₂.Hom S₃)
Goal: (f.comp g).f₃ = CategoryTheory.CategoryStruct.comp f.f₃ g.f₃
-- CategoryTheory.ShortComplex.SnakeInput.Hom.comp_f₁
@[simps]
def comp (f : Hom S₁ S₂) (g : Hom S₂ S₃) : Hom S₁ S₃ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ S₃ : CategoryTheory.ShortComplex.SnakeInput C} (f : S₁.Hom S₂) (g : S₂.Hom S₃)
Goal: (f.comp g).f₁ = CategoryTheory.CategoryStruct.comp f.f₁ g.f₁
-- CategoryTheory.ShortComplex.SnakeInput.Hom.comp_f₂
@[simps]
def comp (f : Hom S₁ S₂) (g : Hom S₂ S₃) : Hom S₁ S₃ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ S₃ : CategoryTheory.ShortComplex.SnakeInput C} (f : S₁.Hom S₂) (g : S₂.Hom S₃)
Goal: (f.comp g).f₂ = CategoryTheory.CategoryStruct.comp f.f₂ g.f₂
-- CategoryTheory.ShortComplex.SnakeInput.Hom.comp_f₀
@[simps]
def comp (f : Hom S₁ S₂) (g : Hom S₂ S₃) : Hom S₁ S₃ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ S₃ : CategoryTheory.ShortComplex.SnakeInput C} (f : S₁.Hom S₂) (g : S₂.Hom S₃)
Goal: (f.comp g).f₀ = CategoryTheory.CategoryStruct.comp f.f₀ g.f₀
-- CategoryTheory.ShortComplex.SnakeInput.id_f₀
@[simp] lemma id_f₀ : Hom.f₀ (𝟙 S) = 𝟙 _ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.CategoryStruct.id S).f₀ = CategoryTheory.CategoryStruct.id S.L₀
-- CategoryTheory.ShortComplex.SnakeInput.id_f₁
@[simp] lemma id_f₁ : Hom.f₁ (𝟙 S) = 𝟙 _ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.CategoryStruct.id S).f₁ = CategoryTheory.CategoryStruct.id S.L₁
-- CategoryTheory.ShortComplex.SnakeInput.id_f₂
@[simp] lemma id_f₂ : Hom.f₂ (𝟙 S) = 𝟙 _ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.CategoryStruct.id S).f₂ = CategoryTheory.CategoryStruct.id S.L₂
-- CategoryTheory.ShortComplex.SnakeInput.id_f₃
@[simp] lemma id_f₃ : Hom.f₃ (𝟙 S) = 𝟙 _ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: (CategoryTheory.CategoryStruct.id S).f₃ = CategoryTheory.CategoryStruct.id S.L₃
-- CategoryTheory.ShortComplex.SnakeInput.comp_f₀
@[simp, reassoc] lemma comp_f₀ : (f ≫ g).f₀ = f.f₀ ≫ g.f₀ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ S₃ : CategoryTheory.ShortComplex.SnakeInput C} (f : S₁ ⟶ S₂) (g : S₂ ⟶ S₃)
Goal: (CategoryTheory.CategoryStruct.comp f g).f₀ = CategoryTheory.CategoryStruct.comp f.f₀ g.f₀
-- CategoryTheory.ShortComplex.SnakeInput.comp_f₁
@[simp, reassoc] lemma comp_f₁ : (f ≫ g).f₁ = f.f₁ ≫ g.f₁ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ S₃ : CategoryTheory.ShortComplex.SnakeInput C} (f : S₁ ⟶ S₂) (g : S₂ ⟶ S₃)
Goal: (CategoryTheory.CategoryStruct.comp f g).f₁ = CategoryTheory.CategoryStruct.comp f.f₁ g.f₁
-- CategoryTheory.ShortComplex.SnakeInput.comp_f₂
@[simp, reassoc] lemma comp_f₂ : (f ≫ g).f₂ = f.f₂ ≫ g.f₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ S₃ : CategoryTheory.ShortComplex.SnakeInput C} (f : S₁ ⟶ S₂) (g : S₂ ⟶ S₃)
Goal: (CategoryTheory.CategoryStruct.comp f g).f₂ = CategoryTheory.CategoryStruct.comp f.f₂ g.f₂
-- CategoryTheory.ShortComplex.SnakeInput.comp_f₃
@[simp, reassoc] lemma comp_f₃ : (f ≫ g).f₃ = f.f₃ ≫ g.f₃ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ S₃ : CategoryTheory.ShortComplex.SnakeInput C} (f : S₁ ⟶ S₂) (g : S₂ ⟶ S₃)
Goal: (CategoryTheory.CategoryStruct.comp f g).f₃ = CategoryTheory.CategoryStruct.comp f.f₃ g.f₃
-- CategoryTheory.ShortComplex.SnakeInput.functorL₀_map
@[simps]
def functorL₀ : SnakeInput C ⥤ ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C]
Goal: ∀ {X Y : CategoryTheory.ShortComplex.SnakeInput C} (f : X ⟶ Y),
  CategoryTheory.ShortComplex.SnakeInput.functorL₀.map f = f.f₀
-- CategoryTheory.ShortComplex.SnakeInput.functorL₀_obj
@[simps]
def functorL₀ : SnakeInput C ⥤ ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.ShortComplex.SnakeInput.functorL₀.obj S = S.L₀
-- CategoryTheory.ShortComplex.SnakeInput.functorL₁_obj
@[simps]
def functorL₁ : SnakeInput C ⥤ ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.ShortComplex.SnakeInput.functorL₁.obj S = S.L₁
-- CategoryTheory.ShortComplex.SnakeInput.functorL₁_map
@[simps]
def functorL₁ : SnakeInput C ⥤ ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C]
Goal: ∀ {X Y : CategoryTheory.ShortComplex.SnakeInput C} (f : X ⟶ Y),
  CategoryTheory.ShortComplex.SnakeInput.functorL₁.map f = f.f₁
-- CategoryTheory.ShortComplex.SnakeInput.functorL₂_obj
@[simps]
def functorL₂ : SnakeInput C ⥤ ShortComplex C 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Abelian C] (S : CategoryTheory.ShortComplex.SnakeInput C)
Goal: CategoryTheory.ShortComplex.SnakeInput.functorL₂.obj S = S.L₂