ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- ChainComplex.ofHom_f
@[simps]
def ofHom (f : ∀ i : α, X i ⟶ Y i) (comm : ∀ i : α, f (i + 1) ≫ d_Y i = d_X i ≫ f i) :
    of X d_X sq_X ⟶ of Y d_Y sq_Y 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] {α : Type u_2} [AddRightCancelSemigroup α] [One α] [DecidableEq α] (X : α → V) (d_X : (n : α) → X (n + 1) ⟶ X n) (sq_X : ∀ (n : α), d_X (n + 1) ≫ d_X n = 0) (Y : α → V) (d_Y : (n : α) → Y (n + 1) ⟶ Y n) (sq_Y : ∀ (n : α), d_Y (n + 1) ≫ d_Y n = 0) (f : (i : α) → X i ⟶ Y i) (comm : ∀ (i : α), f (i + 1) ≫ d_Y i = d_X i ≫ f i) (i : α)
Goal: (ChainComplex.ofHom X d_X sq_X Y d_Y sq_Y f comm).f i = f i
-- ChainComplex.mk_X_0
@[simp]
theorem mk_X_0 : (mk X₀ X₁ X₂ d₀ d₁ s succ).X 0 = X₀ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ X₂ : V) (d₀ : X₁ ⟶ X₀) (d₁ : X₂ ⟶ X₁) (s : d₁ ≫ d₀ = 0) (succ : (S : CategoryTheory.ShortComplex V) → (X₃ : V) ×' (d₂ : X₃ ⟶ S.X₁) ×' d₂ ≫ S.f = 0)
Goal: (ChainComplex.mk X₀ X₁ X₂ d₀ d₁ s succ).X 0 = X₀
-- ChainComplex.mk_X_1
@[simp]
theorem mk_X_1 : (mk X₀ X₁ X₂ d₀ d₁ s succ).X 1 = X₁ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ X₂ : V) (d₀ : X₁ ⟶ X₀) (d₁ : X₂ ⟶ X₁) (s : d₁ ≫ d₀ = 0) (succ : (S : CategoryTheory.ShortComplex V) → (X₃ : V) ×' (d₂ : X₃ ⟶ S.X₁) ×' d₂ ≫ S.f = 0)
Goal: (ChainComplex.mk X₀ X₁ X₂ d₀ d₁ s succ).X 1 = X₁
-- ChainComplex.mk_X_2
@[simp]
theorem mk_X_2 : (mk X₀ X₁ X₂ d₀ d₁ s succ).X 2 = X₂ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ X₂ : V) (d₀ : X₁ ⟶ X₀) (d₁ : X₂ ⟶ X₁) (s : d₁ ≫ d₀ = 0) (succ : (S : CategoryTheory.ShortComplex V) → (X₃ : V) ×' (d₂ : X₃ ⟶ S.X₁) ×' d₂ ≫ S.f = 0)
Goal: (ChainComplex.mk X₀ X₁ X₂ d₀ d₁ s succ).X 2 = X₂
-- ChainComplex.mk_d_1_0
@[simp]
theorem mk_d_1_0 : (mk X₀ X₁ X₂ d₀ d₁ s succ).d 1 0 = d₀ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ X₂ : V) (d₀ : X₁ ⟶ X₀) (d₁ : X₂ ⟶ X₁) (s : d₁ ≫ d₀ = 0) (succ : (S : CategoryTheory.ShortComplex V) → (X₃ : V) ×' (d₂ : X₃ ⟶ S.X₁) ×' d₂ ≫ S.f = 0)
Goal: (ChainComplex.mk X₀ X₁ X₂ d₀ d₁ s succ).d 1 0 = d₀
-- ChainComplex.mk_d_2_1
@[simp]
theorem mk_d_2_1 : (mk X₀ X₁ X₂ d₀ d₁ s succ).d 2 1 = d₁ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ X₂ : V) (d₀ : X₁ ⟶ X₀) (d₁ : X₂ ⟶ X₁) (s : d₁ ≫ d₀ = 0) (succ : (S : CategoryTheory.ShortComplex V) → (X₃ : V) ×' (d₂ : X₃ ⟶ S.X₁) ×' d₂ ≫ S.f = 0)
Goal: (ChainComplex.mk X₀ X₁ X₂ d₀ d₁ s succ).d 2 1 = d₁
-- ChainComplex.mk'_X_0
@[simp]
theorem mk'_X_0 : (mk' X₀ X₁ d₀ succ').X 0 = X₀ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ : V) (d₀ : X₁ ⟶ X₀) (succ' : {X₀ X₁ : V} → (f : X₁ ⟶ X₀) → (X₂ : V) ×' (d : X₂ ⟶ X₁) ×' d ≫ f = 0)
Goal: (ChainComplex.mk' X₀ X₁ d₀ fun {X₀ X₁} => succ').X 0 = X₀
-- ChainComplex.mk'_X_1
@[simp]
theorem mk'_X_1 : (mk' X₀ X₁ d₀ succ').X 1 = X₁ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ : V) (d₀ : X₁ ⟶ X₀) (succ' : {X₀ X₁ : V} → (f : X₁ ⟶ X₀) → (X₂ : V) ×' (d : X₂ ⟶ X₁) ×' d ≫ f = 0)
Goal: (ChainComplex.mk' X₀ X₁ d₀ fun {X₀ X₁} => succ').X 1 = X₁
-- ChainComplex.mk'_d_1_0
@[simp]
theorem mk'_d_1_0 : (mk' X₀ X₁ d₀ succ').d 1 0 = d₀ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ : V) (d₀ : X₁ ⟶ X₀) (succ' : {X₀ X₁ : V} → (f : X₁ ⟶ X₀) → (X₂ : V) ×' (d : X₂ ⟶ X₁) ×' d ≫ f = 0)
Goal: (ChainComplex.mk' X₀ X₁ d₀ fun {X₀ X₁} => succ').d 1 0 = d₀
-- ChainComplex.mkHom_f_0
@[simp]
theorem mkHom_f_0 : (mkHom P Q zero one one_zero_comm succ).f 0 = zero 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (P Q : ChainComplex V ℕ) (zero : P.X 0 ⟶ Q.X 0) (one : P.X 1 ⟶ Q.X 1) (one_zero_comm : one ≫ Q.d 1 0 = P.d 1 0 ≫ zero) (succ :
  (n : ℕ) →
    (p : (f : P.X n ⟶ Q.X n) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 1)) ×' f' ≫ Q.d (n + 1) n = P.d (n + 1) n ≫ f) →
      (f'' : P.X (n + 2) ⟶ Q.X (n + 2)) ×' f'' ≫ Q.d (n + 2) (n + 1) = P.d (n + 2) (n + 1) ≫ p.snd.fst)
Goal: (P.mkHom Q zero one one_zero_comm succ).f 0 = zero
-- ChainComplex.mkHom_f_1
@[simp]
theorem mkHom_f_1 : (mkHom P Q zero one one_zero_comm succ).f 1 = one 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (P Q : ChainComplex V ℕ) (zero : P.X 0 ⟶ Q.X 0) (one : P.X 1 ⟶ Q.X 1) (one_zero_comm : one ≫ Q.d 1 0 = P.d 1 0 ≫ zero) (succ :
  (n : ℕ) →
    (p : (f : P.X n ⟶ Q.X n) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 1)) ×' f' ≫ Q.d (n + 1) n = P.d (n + 1) n ≫ f) →
      (f'' : P.X (n + 2) ⟶ Q.X (n + 2)) ×' f'' ≫ Q.d (n + 2) (n + 1) = P.d (n + 2) (n + 1) ≫ p.snd.fst)
Goal: (P.mkHom Q zero one one_zero_comm succ).f 1 = one
-- ChainComplex.mkHom_f_succ_succ
@[simp]
theorem mkHom_f_succ_succ (n : ℕ) :
    (mkHom P Q zero one one_zero_comm succ).f (n + 2) =
      (succ n
          ⟨(mkHom P Q zero one one_zero_comm succ).f n,
            (mkHom P Q zero one one_zero_comm succ).f (n + 1),
            (mkHom P Q zero one one_zero_comm succ).comm (n + 1) n⟩).1 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (P Q : ChainComplex V ℕ) (zero : P.X 0 ⟶ Q.X 0) (one : P.X 1 ⟶ Q.X 1) (one_zero_comm : one ≫ Q.d 1 0 = P.d 1 0 ≫ zero) (succ :
  (n : ℕ) →
    (p : (f : P.X n ⟶ Q.X n) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 1)) ×' f' ≫ Q.d (n + 1) n = P.d (n + 1) n ≫ f) →
      (f'' : P.X (n + 2) ⟶ Q.X (n + 2)) ×' f'' ≫ Q.d (n + 2) (n + 1) = P.d (n + 2) (n + 1) ≫ p.snd.fst) (n : ℕ)
Goal: (P.mkHom Q zero one one_zero_comm succ).f (n + 2) =
  (succ n ⟨(P.mkHom Q zero one one_zero_comm succ).f n, ⟨(P.mkHom Q zero one one_zero_comm succ).f (n + 1), ⋯⟩⟩).fst
-- CochainComplex.of_x
@[simp]
theorem of_x (n : α) : (of X d sq).X n = X n 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] {α : Type u_2} [AddRightCancelSemigroup α] [One α] [DecidableEq α] (X : α → V) (d : (n : α) → X n ⟶ X (n + 1)) (sq : ∀ (n : α), d n ≫ d (n + 1) = 0) (n : α)
Goal: (CochainComplex.of X d sq).X n = X n
-- CochainComplex.of_d
@[simp]
theorem of_d (j : α) : (of X d sq).d j (j + 1) = d j 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] {α : Type u_2} [AddRightCancelSemigroup α] [One α] [DecidableEq α] (X : α → V) (d : (n : α) → X n ⟶ X (n + 1)) (sq : ∀ (n : α), d n ≫ d (n + 1) = 0) (j : α)
Goal: (CochainComplex.of X d sq).d j (j + 1) = d j
-- CochainComplex.of_d_ne
theorem of_d_ne {i j : α} (h : i + 1 ≠ j) : (of X d sq).d i j = 0 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] {α : Type u_2} [AddRightCancelSemigroup α] [One α] [DecidableEq α] (X : α → V) (d : (n : α) → X n ⟶ X (n + 1)) (sq : ∀ (n : α), d n ≫ d (n + 1) = 0) {i j : α} (h : i + 1 ≠ j)
Goal: (CochainComplex.of X d sq).d i j = 0
-- CochainComplex.ofHom_f
@[simps]
def ofHom (f : ∀ i : α, X i ⟶ Y i) (comm : ∀ i : α, f i ≫ d_Y i = d_X i ≫ f (i + 1)) :
    of X d_X sq_X ⟶ of Y d_Y sq_Y 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] {α : Type u_2} [AddRightCancelSemigroup α] [One α] [DecidableEq α] (X : α → V) (d_X : (n : α) → X n ⟶ X (n + 1)) (sq_X : ∀ (n : α), d_X n ≫ d_X (n + 1) = 0) (Y : α → V) (d_Y : (n : α) → Y n ⟶ Y (n + 1)) (sq_Y : ∀ (n : α), d_Y n ≫ d_Y (n + 1) = 0) (f : (i : α) → X i ⟶ Y i) (comm : ∀ (i : α), f i ≫ d_Y i = d_X i ≫ f (i + 1)) (i : α)
Goal: (CochainComplex.ofHom X d_X sq_X Y d_Y sq_Y f comm).f i = f i
-- CochainComplex.mk_X_0
@[simp]
theorem mk_X_0 : (mk X₀ X₁ X₂ d₀ d₁ s succ).X 0 = X₀ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ X₂ : V) (d₀ : X₀ ⟶ X₁) (d₁ : X₁ ⟶ X₂) (s : d₀ ≫ d₁ = 0) (succ : (S : CategoryTheory.ShortComplex V) → (X₄ : V) ×' (d₂ : S.X₃ ⟶ X₄) ×' S.g ≫ d₂ = 0)
Goal: (CochainComplex.mk X₀ X₁ X₂ d₀ d₁ s succ).X 0 = X₀
-- CochainComplex.mk_X_1
@[simp]
theorem mk_X_1 : (mk X₀ X₁ X₂ d₀ d₁ s succ).X 1 = X₁ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ X₂ : V) (d₀ : X₀ ⟶ X₁) (d₁ : X₁ ⟶ X₂) (s : d₀ ≫ d₁ = 0) (succ : (S : CategoryTheory.ShortComplex V) → (X₄ : V) ×' (d₂ : S.X₃ ⟶ X₄) ×' S.g ≫ d₂ = 0)
Goal: (CochainComplex.mk X₀ X₁ X₂ d₀ d₁ s succ).X 1 = X₁
-- CochainComplex.mk_X_2
@[simp]
theorem mk_X_2 : (mk X₀ X₁ X₂ d₀ d₁ s succ).X 2 = X₂ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ X₂ : V) (d₀ : X₀ ⟶ X₁) (d₁ : X₁ ⟶ X₂) (s : d₀ ≫ d₁ = 0) (succ : (S : CategoryTheory.ShortComplex V) → (X₄ : V) ×' (d₂ : S.X₃ ⟶ X₄) ×' S.g ≫ d₂ = 0)
Goal: (CochainComplex.mk X₀ X₁ X₂ d₀ d₁ s succ).X 2 = X₂
-- CochainComplex.mk_d_1_0
@[simp]
theorem mk_d_1_0 : (mk X₀ X₁ X₂ d₀ d₁ s succ).d 0 1 = d₀ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ X₂ : V) (d₀ : X₀ ⟶ X₁) (d₁ : X₁ ⟶ X₂) (s : d₀ ≫ d₁ = 0) (succ : (S : CategoryTheory.ShortComplex V) → (X₄ : V) ×' (d₂ : S.X₃ ⟶ X₄) ×' S.g ≫ d₂ = 0)
Goal: (CochainComplex.mk X₀ X₁ X₂ d₀ d₁ s succ).d 0 1 = d₀
-- CochainComplex.mk_d_2_0
@[simp]
theorem mk_d_2_0 : (mk X₀ X₁ X₂ d₀ d₁ s succ).d 1 2 = d₁ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ X₂ : V) (d₀ : X₀ ⟶ X₁) (d₁ : X₁ ⟶ X₂) (s : d₀ ≫ d₁ = 0) (succ : (S : CategoryTheory.ShortComplex V) → (X₄ : V) ×' (d₂ : S.X₃ ⟶ X₄) ×' S.g ≫ d₂ = 0)
Goal: (CochainComplex.mk X₀ X₁ X₂ d₀ d₁ s succ).d 1 2 = d₁
-- CochainComplex.mk'_X_0
@[simp]
theorem mk'_X_0 : (mk' X₀ X₁ d₀ succ').X 0 = X₀ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ : V) (d₀ : X₀ ⟶ X₁) (succ' : {X₀ X₁ : V} → (f : X₀ ⟶ X₁) → (X₂ : V) ×' (d : X₁ ⟶ X₂) ×' f ≫ d = 0)
Goal: (CochainComplex.mk' X₀ X₁ d₀ fun {X₀ X₁} => succ').X 0 = X₀
-- CochainComplex.mk'_X_1
@[simp]
theorem mk'_X_1 : (mk' X₀ X₁ d₀ succ').X 1 = X₁ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ : V) (d₀ : X₀ ⟶ X₁) (succ' : {X₀ X₁ : V} → (f : X₀ ⟶ X₁) → (X₂ : V) ×' (d : X₁ ⟶ X₂) ×' f ≫ d = 0)
Goal: (CochainComplex.mk' X₀ X₁ d₀ fun {X₀ X₁} => succ').X 1 = X₁
-- CochainComplex.mk'_d_1_0
@[simp]
theorem mk'_d_1_0 : (mk' X₀ X₁ d₀ succ').d 0 1 = d₀ 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (X₀ X₁ : V) (d₀ : X₀ ⟶ X₁) (succ' : {X₀ X₁ : V} → (f : X₀ ⟶ X₁) → (X₂ : V) ×' (d : X₁ ⟶ X₂) ×' f ≫ d = 0)
Goal: (CochainComplex.mk' X₀ X₁ d₀ fun {X₀ X₁} => succ').d 0 1 = d₀
-- CochainComplex.mkHom_f_0
@[simp]
theorem mkHom_f_0 : (mkHom P Q zero one one_zero_comm succ).f 0 = zero 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (P Q : CochainComplex V ℕ) (zero : P.X 0 ⟶ Q.X 0) (one : P.X 1 ⟶ Q.X 1) (one_zero_comm : zero ≫ Q.d 0 1 = P.d 0 1 ≫ one) (succ :
  (n : ℕ) →
    (p : (f : P.X n ⟶ Q.X n) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 1)) ×' f ≫ Q.d n (n + 1) = P.d n (n + 1) ≫ f') →
      (f'' : P.X (n + 2) ⟶ Q.X (n + 2)) ×' p.snd.fst ≫ Q.d (n + 1) (n + 2) = P.d (n + 1) (n + 2) ≫ f'')
Goal: (P.mkHom Q zero one one_zero_comm succ).f 0 = zero
-- CochainComplex.mkHom_f_1
@[simp]
theorem mkHom_f_1 : (mkHom P Q zero one one_zero_comm succ).f 1 = one 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (P Q : CochainComplex V ℕ) (zero : P.X 0 ⟶ Q.X 0) (one : P.X 1 ⟶ Q.X 1) (one_zero_comm : zero ≫ Q.d 0 1 = P.d 0 1 ≫ one) (succ :
  (n : ℕ) →
    (p : (f : P.X n ⟶ Q.X n) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 1)) ×' f ≫ Q.d n (n + 1) = P.d n (n + 1) ≫ f') →
      (f'' : P.X (n + 2) ⟶ Q.X (n + 2)) ×' p.snd.fst ≫ Q.d (n + 1) (n + 2) = P.d (n + 1) (n + 2) ≫ f'')
Goal: (P.mkHom Q zero one one_zero_comm succ).f 1 = one
-- CochainComplex.mkHom_f_succ_succ
@[simp]
theorem mkHom_f_succ_succ (n : ℕ) :
    (mkHom P Q zero one one_zero_comm succ).f (n + 2) =
      (succ n
          ⟨(mkHom P Q zero one one_zero_comm succ).f n,
            (mkHom P Q zero one one_zero_comm succ).f (n + 1),
            (mkHom P Q zero one one_zero_comm succ).comm n (n + 1)⟩).1 
Arguments: {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] (P Q : CochainComplex V ℕ) (zero : P.X 0 ⟶ Q.X 0) (one : P.X 1 ⟶ Q.X 1) (one_zero_comm : zero ≫ Q.d 0 1 = P.d 0 1 ≫ one) (succ :
  (n : ℕ) →
    (p : (f : P.X n ⟶ Q.X n) ×' (f' : P.X (n + 1) ⟶ Q.X (n + 1)) ×' f ≫ Q.d n (n + 1) = P.d n (n + 1) ≫ f') →
      (f'' : P.X (n + 2) ⟶ Q.X (n + 2)) ×' p.snd.fst ≫ Q.d (n + 1) (n + 2) = P.d (n + 1) (n + 2) ≫ f'') (n : ℕ)
Goal: (P.mkHom Q zero one one_zero_comm succ).f (n + 2) =
  (succ n ⟨(P.mkHom Q zero one one_zero_comm succ).f n, ⟨(P.mkHom Q zero one one_zero_comm succ).f (n + 1), ⋯⟩⟩).fst
-- CategoryTheory.ShortComplex.ab_zero_apply
@[simp]
lemma ab_zero_apply (x : S.X₁) : S.g (S.f x) = 0 
Arguments: (S : CategoryTheory.ShortComplex Ab) (x : ↑S.X₁)
Goal: S.g (S.f x) = 0
-- CategoryTheory.ShortComplex.abToCycles_apply_coe
@[simps!]
def abToCycles : S.X₁ →+ AddMonoidHom.ker S.g 
Arguments: (S : CategoryTheory.ShortComplex Ab) (x : ↑S.X₁)
Goal: ↑(S.abToCycles x) = S.f x
-- CategoryTheory.ShortComplex.abLeftHomologyData_i
@[simps]
def abLeftHomologyData : S.LeftHomologyData 
Arguments: (S : CategoryTheory.ShortComplex Ab)
Goal: S.abLeftHomologyData.i = (AddMonoidHom.ker S.g).subtype
-- CategoryTheory.ShortComplex.abLeftHomologyData_H
@[simps]
def abLeftHomologyData : S.LeftHomologyData 
Arguments: (S : CategoryTheory.ShortComplex Ab)
Goal: S.abLeftHomologyData.H = AddCommGrp.of (↥(AddMonoidHom.ker S.g) ⧸ S.abToCycles.range)
-- CategoryTheory.ShortComplex.abLeftHomologyData_K
@[simps]
def abLeftHomologyData : S.LeftHomologyData 
Arguments: (S : CategoryTheory.ShortComplex Ab)
Goal: S.abLeftHomologyData.K = AddCommGrp.of ↥(AddMonoidHom.ker S.g)
-- CategoryTheory.ShortComplex.abLeftHomologyData_π
@[simps]
def abLeftHomologyData : S.LeftHomologyData 
Arguments: (S : CategoryTheory.ShortComplex Ab)
Goal: S.abLeftHomologyData.π = QuotientAddGroup.mk' S.abToCycles.range
-- CategoryTheory.ShortComplex.abLeftHomologyData_f'
@[simp]
lemma abLeftHomologyData_f' : S.abLeftHomologyData.f' = S.abToCycles 
Arguments: (S : CategoryTheory.ShortComplex Ab)
Goal: S.abLeftHomologyData.f' = S.abToCycles
-- CategoryTheory.ShortComplex.abCyclesIso_inv_apply_iCycles
lemma abCyclesIso_inv_apply_iCycles (x : AddMonoidHom.ker S.g) :
    S.iCycles (S.abCyclesIso.inv x) = x 
Arguments: (S : CategoryTheory.ShortComplex Ab) (x : ↥(AddMonoidHom.ker S.g))
Goal: S.iCycles (S.abCyclesIso.inv x) = ↑x
-- CategoryTheory.ShortComplex.exact_iff_surjective_abToCycles
lemma exact_iff_surjective_abToCycles :
    S.Exact ↔ Function.Surjective S.abToCycles 
Arguments: (S : CategoryTheory.ShortComplex Ab)
Goal: S.Exact ↔ Function.Surjective ⇑S.abToCycles
-- CategoryTheory.ShortComplex.ab_exact_iff
lemma ab_exact_iff :
    S.Exact ↔ ∀ (x₂ : S.X₂) (_ : S.g x₂ = 0), ∃ (x₁ : S.X₁), S.f x₁ = x₂ 
Arguments: (S : CategoryTheory.ShortComplex Ab)
Goal: S.Exact ↔ ∀ (x₂ : ↑S.X₂), S.g x₂ = 0 → ∃ x₁, S.f x₁ = x₂
-- CategoryTheory.ShortComplex.ab_exact_iff_ker_le_range
lemma ab_exact_iff_ker_le_range : S.Exact ↔ S.g.ker ≤ S.f.range 
Arguments: (S : CategoryTheory.ShortComplex Ab)
Goal: S.Exact ↔ AddMonoidHom.ker S.g ≤ AddMonoidHom.range S.f
-- CategoryTheory.ShortComplex.ab_exact_iff_range_eq_ker
lemma ab_exact_iff_range_eq_ker : S.Exact ↔ S.f.range = S.g.ker 
Arguments: (S : CategoryTheory.ShortComplex Ab)
Goal: S.Exact ↔ AddMonoidHom.range S.f = AddMonoidHom.ker S.g
-- CategoryTheory.ShortComplex.ShortExact.ab_injective_f
lemma ShortExact.ab_injective_f (hS : S.ShortExact) :
    Function.Injective S.f 
Arguments: {S : CategoryTheory.ShortComplex Ab} (hS : S.ShortExact)
Goal: Function.Injective ⇑S.f
-- CategoryTheory.ShortComplex.ShortExact.ab_surjective_g
lemma ShortExact.ab_surjective_g (hS : S.ShortExact) :
    Function.Surjective S.g 
Arguments: {S : CategoryTheory.ShortComplex Ab} (hS : S.ShortExact)
Goal: Function.Surjective ⇑S.g
-- CategoryTheory.ShortComplex.ShortExact.ab_exact_iff_function_exact
lemma ShortExact.ab_exact_iff_function_exact :
    S.Exact ↔ Function.Exact S.f S.g 
Arguments: (S : CategoryTheory.ShortComplex Ab)
Goal: S.Exact ↔ Function.Exact ⇑S.f ⇑S.g
-- HomologicalComplex.zero_f_apply
@[simp]
theorem zero_f_apply (i : ι) : (0 : C ⟶ D).f i = 0 
Arguments: {ι : Type u_1} {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {c : ComplexShape ι} {C D : HomologicalComplex V c} (i : ι)
Goal: HomologicalComplex.Hom.f 0 i = 0
-- HomologicalComplex.add_f_apply
@[simp]
theorem add_f_apply (f g : C ⟶ D) (i : ι) : (f + g).f i = f.f i + g.f i 
Arguments: {ι : Type u_1} {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {c : ComplexShape ι} {C D : HomologicalComplex V c} (f g : C ⟶ D) (i : ι)
Goal: (f + g).f i = f.f i + g.f i
-- HomologicalComplex.neg_f_apply
@[simp]
theorem neg_f_apply (f : C ⟶ D) (i : ι) : (-f).f i = -f.f i 
Arguments: {ι : Type u_1} {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {c : ComplexShape ι} {C D : HomologicalComplex V c} (f : C ⟶ D) (i : ι)
Goal: (-f).f i = -f.f i
-- HomologicalComplex.sub_f_apply
@[simp]
theorem sub_f_apply (f g : C ⟶ D) (i : ι) : (f - g).f i = f.f i - g.f i 
Arguments: {ι : Type u_1} {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {c : ComplexShape ι} {C D : HomologicalComplex V c} (f g : C ⟶ D) (i : ι)
Goal: (f - g).f i = f.f i - g.f i
-- HomologicalComplex.nsmul_f_apply
@[simp]
theorem nsmul_f_apply (n : ℕ) (f : C ⟶ D) (i : ι) : (n • f).f i = n • f.f i 
Arguments: {ι : Type u_1} {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {c : ComplexShape ι} {C D : HomologicalComplex V c} (n : ℕ) (f : C ⟶ D) (i : ι)
Goal: (n • f).f i = n • f.f i
-- HomologicalComplex.zsmul_f_apply
@[simp]
theorem zsmul_f_apply (n : ℤ) (f : C ⟶ D) (i : ι) : (n • f).f i = n • f.f i 
Arguments: {ι : Type u_1} {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {c : ComplexShape ι} {C D : HomologicalComplex V c} (n : ℤ) (f : C ⟶ D) (i : ι)
Goal: (n • f).f i = n • f.f i
-- HomologicalComplex.Hom.fAddMonoidHom_apply
@[simps!]
def Hom.fAddMonoidHom {C₁ C₂ : HomologicalComplex V c} (i : ι) : (C₁ ⟶ C₂) →+ (C₁.X i ⟶ C₂.X i) 
Arguments: {ι : Type u_1} {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Preadditive V] {c : ComplexShape ι} {C₁ C₂ : HomologicalComplex V c} (i : ι) (f : C₁ ⟶ C₂)
Goal: (HomologicalComplex.Hom.fAddMonoidHom i) f = f.f i
-- CategoryTheory.Functor.mapHomologicalComplex_obj_d
@[simps]
def Functor.mapHomologicalComplex (F : W₁ ⥤ W₂) [F.PreservesZeroMorphisms] (c : ComplexShape ι) :
    HomologicalComplex W₁ c ⥤ HomologicalComplex W₂ c 
Arguments: {ι : Type u_1} {W₁ : Type u_3} {W₂ : Type u_4} [CategoryTheory.Category.{u_5, u_3} W₁] [CategoryTheory.Category.{u_6, u_4} W₂] [CategoryTheory.Limits.HasZeroMorphisms W₁] [CategoryTheory.Limits.HasZeroMorphisms W₂] (F : W₁ ⥤ W₂) [F.PreservesZeroMorphisms] (c : ComplexShape ι) (C : HomologicalComplex W₁ c) (i j : ι)
Goal: ((F.mapHomologicalComplex c).obj C).d i j = F.map (C.d i j)
-- CategoryTheory.Functor.mapHomologicalComplex_map_f
@[simps]
def Functor.mapHomologicalComplex (F : W₁ ⥤ W₂) [F.PreservesZeroMorphisms] (c : ComplexShape ι) :
    HomologicalComplex W₁ c ⥤ HomologicalComplex W₂ c 
Arguments: {ι : Type u_1} {W₁ : Type u_3} {W₂ : Type u_4} [CategoryTheory.Category.{u_5, u_3} W₁] [CategoryTheory.Category.{u_6, u_4} W₂] [CategoryTheory.Limits.HasZeroMorphisms W₁] [CategoryTheory.Limits.HasZeroMorphisms W₂] (F : W₁ ⥤ W₂) [F.PreservesZeroMorphisms] (c : ComplexShape ι)
Goal: ∀ {X Y : HomologicalComplex W₁ c} (f : X ⟶ Y) (i : ι), ((F.mapHomologicalComplex c).map f).f i = F.map (f.f i)
-- CategoryTheory.Functor.mapHomologicalComplex_obj_X
@[simps]
def Functor.mapHomologicalComplex (F : W₁ ⥤ W₂) [F.PreservesZeroMorphisms] (c : ComplexShape ι) :
    HomologicalComplex W₁ c ⥤ HomologicalComplex W₂ c 
Arguments: {ι : Type u_1} {W₁ : Type u_3} {W₂ : Type u_4} [CategoryTheory.Category.{u_5, u_3} W₁] [CategoryTheory.Category.{u_6, u_4} W₂] [CategoryTheory.Limits.HasZeroMorphisms W₁] [CategoryTheory.Limits.HasZeroMorphisms W₂] (F : W₁ ⥤ W₂) [F.PreservesZeroMorphisms] (c : ComplexShape ι) (C : HomologicalComplex W₁ c) (i : ι)
Goal: ((F.mapHomologicalComplex c).obj C).X i = F.obj (C.X i)
-- CategoryTheory.Functor.mapHomologicalComplexIdIso_hom_app_f
@[simps!]
def Functor.mapHomologicalComplexIdIso (c : ComplexShape ι) :
    (𝟭 W₁).mapHomologicalComplex c ≅ 𝟭 _ 
Arguments: {ι : Type u_1} (W₁ : Type u_3) [CategoryTheory.Category.{u_5, u_3} W₁] [CategoryTheory.Limits.HasZeroMorphisms W₁] (c : ComplexShape ι) (X : HomologicalComplex W₁ c) (i : ι)
Goal: ((CategoryTheory.Functor.mapHomologicalComplexIdIso W₁ c).hom.app X).f i = 𝟙 (X.X i)
-- CategoryTheory.Functor.mapHomologicalComplexIdIso_inv_app_f
@[simps!]
def Functor.mapHomologicalComplexIdIso (c : ComplexShape ι) :
    (𝟭 W₁).mapHomologicalComplex c ≅ 𝟭 _ 
Arguments: {ι : Type u_1} (W₁ : Type u_3) [CategoryTheory.Category.{u_5, u_3} W₁] [CategoryTheory.Limits.HasZeroMorphisms W₁] (c : ComplexShape ι) (X : HomologicalComplex W₁ c) (i : ι)
Goal: ((CategoryTheory.Functor.mapHomologicalComplexIdIso W₁ c).inv.app X).f i = 𝟙 (X.X i)
-- CategoryTheory.NatTrans.mapHomologicalComplex_app_f
@[simps]
def NatTrans.mapHomologicalComplex {F G : W₁ ⥤ W₂}
    [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] (α : F ⟶ G)
    (c : ComplexShape ι) : F.mapHomologicalComplex c ⟶ G.mapHomologicalComplex c 
Arguments: {ι : Type u_1} {W₁ : Type u_3} {W₂ : Type u_4} [CategoryTheory.Category.{u_5, u_3} W₁] [CategoryTheory.Category.{u_6, u_4} W₂] [CategoryTheory.Limits.HasZeroMorphisms W₁] [CategoryTheory.Limits.HasZeroMorphisms W₂] {F G : W₁ ⥤ W₂} [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] (α : F ⟶ G) (c : ComplexShape ι) (C : HomologicalComplex W₁ c) (i : ι)
Goal: ((CategoryTheory.NatTrans.mapHomologicalComplex α c).app C).f i = α.app (C.X i)
-- CategoryTheory.NatTrans.mapHomologicalComplex_id
@[simp]
theorem NatTrans.mapHomologicalComplex_id
    (c : ComplexShape ι) (F : W₁ ⥤ W₂) [F.PreservesZeroMorphisms] :
    NatTrans.mapHomologicalComplex (𝟙 F) c = 𝟙 (F.mapHomologicalComplex c) 
Arguments: {ι : Type u_1} {W₁ : Type u_3} {W₂ : Type u_4} [CategoryTheory.Category.{u_5, u_3} W₁] [CategoryTheory.Category.{u_6, u_4} W₂] [CategoryTheory.Limits.HasZeroMorphisms W₁] [CategoryTheory.Limits.HasZeroMorphisms W₂] (c : ComplexShape ι) (F : W₁ ⥤ W₂) [F.PreservesZeroMorphisms]
Goal: CategoryTheory.NatTrans.mapHomologicalComplex (𝟙 F) c = 𝟙 (F.mapHomologicalComplex c)
-- CategoryTheory.NatTrans.mapHomologicalComplex_comp
@[simp]
theorem NatTrans.mapHomologicalComplex_comp (c : ComplexShape ι) {F G H : W₁ ⥤ W₂}
    [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] [H.PreservesZeroMorphisms]
    (α : F ⟶ G) (β : G ⟶ H) :
    NatTrans.mapHomologicalComplex (α ≫ β) c =
      NatTrans.mapHomologicalComplex α c ≫ NatTrans.mapHomologicalComplex β c 
Arguments: {ι : Type u_1} {W₁ : Type u_3} {W₂ : Type u_4} [CategoryTheory.Category.{u_5, u_3} W₁] [CategoryTheory.Category.{u_6, u_4} W₂] [CategoryTheory.Limits.HasZeroMorphisms W₁] [CategoryTheory.Limits.HasZeroMorphisms W₂] (c : ComplexShape ι) {F G H : W₁ ⥤ W₂} [F.PreservesZeroMorphisms] [G.PreservesZeroMorphisms] [H.PreservesZeroMorphisms] (α : F ⟶ G) (β : G ⟶ H)
Goal: CategoryTheory.NatTrans.mapHomologicalComplex (α ≫ β) c =
  CategoryTheory.NatTrans.mapHomologicalComplex α c ≫ CategoryTheory.NatTrans.mapHomologicalComplex β c