Theorem: CategoryTheory.Endofunctor.algebraPreadditive_homGroup_sub_f
File: Mathlib/CategoryTheory/Preadditive/EndoFunctor.lean

Proof steps:
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
α β : A₁ ⟶ A₂
⊢ F.map (α.f + β.f) ≫ A₂.str = A₁.str ≫ (α.f + β.f)
state_after: no goals
tactic: simp only [Functor.map_add, add_comp, Endofunctor.Algebra.Hom.h, comp_add]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
⊢ F.map 0 ≫ A₂.str = A₁.str ≫ 0
state_after: no goals
tactic: simp only [Functor.map_zero, zero_comp, comp_zero]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n : ℕ
α : A₁ ⟶ A₂
⊢ F.map (n • α.f) ≫ A₂.str = A₁.str ≫ (n • α.f)
state_after: no goals
tactic: rw [comp_nsmul, Functor.map_nsmul, nsmul_comp, Endofunctor.Algebra.Hom.h]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
α : A₁ ⟶ A₂
⊢ F.map (-α.f) ≫ A₂.str = A₁.str ≫ (-α.f)
state_after: no goals
tactic: simp only [Functor.map_neg, neg_comp, Endofunctor.Algebra.Hom.h, comp_neg]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
α β : A₁ ⟶ A₂
⊢ F.map (α.f - β.f) ≫ A₂.str = A₁.str ≫ (α.f - β.f)
state_after: no goals
tactic: simp only [Functor.map_sub, sub_comp, Endofunctor.Algebra.Hom.h, comp_sub]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
r : ℤ
α : A₁ ⟶ A₂
⊢ F.map (r • α.f) ≫ A₂.str = A₁.str ≫ (r • α.f)
state_after: no goals
tactic: rw [comp_zsmul, Functor.map_zsmul, zsmul_comp, Endofunctor.Algebra.Hom.h]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
⊢ ∀ (a b c : A₁ ⟶ A₂), a + b + c = a + (b + c)
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ b✝ c✝ : A₁ ⟶ A₂
⊢ a✝ + b✝ + c✝ = a✝ + (b✝ + c✝)
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ b✝ c✝ : A₁ ⟶ A₂
⊢ a✝ + b✝ + c✝ = a✝ + (b✝ + c✝)
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ b✝ c✝ : A₁ ⟶ A₂
⊢ (a✝ + b✝ + c✝).f = (a✝ + (b✝ + c✝)).f
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ b✝ c✝ : A₁ ⟶ A₂
⊢ (a✝ + b✝ + c✝).f = (a✝ + (b✝ + c✝)).f
state_after: no goals
tactic: apply add_assoc
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
⊢ ∀ (a : A₁ ⟶ A₂), 0 + a = a
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ 0 + a✝ = a✝
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ 0 + a✝ = a✝
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ (0 + a✝).f = a✝.f
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ (0 + a✝).f = a✝.f
state_after: no goals
tactic: apply zero_add
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
⊢ ∀ (a : A₁ ⟶ A₂), a + 0 = a
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ a✝ + 0 = a✝
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ a✝ + 0 = a✝
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ (a✝ + 0).f = a✝.f
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ (a✝ + 0).f = a✝.f
state_after: no goals
tactic: apply add_zero
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
⊢ ∀ (x : A₁ ⟶ A₂), (fun n α => { f := n • α.f, h := ⋯ }) 0 x = 0
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
x✝ : A₁ ⟶ A₂
⊢ (fun n α => { f := n • α.f, h := ⋯ }) 0 x✝ = 0
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
x✝ : A₁ ⟶ A₂
⊢ (fun n α => { f := n • α.f, h := ⋯ }) 0 x✝ = 0
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
x✝ : A₁ ⟶ A₂
⊢ ((fun n α => { f := n • α.f, h := ⋯ }) 0 x✝).f = Algebra.Hom.f 0
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
x✝ : A₁ ⟶ A₂
⊢ ((fun n α => { f := n • α.f, h := ⋯ }) 0 x✝).f = Algebra.Hom.f 0
state_after: no goals
tactic: apply zero_smul
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
⊢ ∀ (n : ℕ) (x : A₁ ⟶ A₂),
    (fun n α => { f := n • α.f, h := ⋯ }) (n + 1) x = (fun n α => { f := n • α.f, h := ⋯ }) n x + x
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
x✝ : A₁ ⟶ A₂
⊢ (fun n α => { f := n • α.f, h := ⋯ }) (n✝ + 1) x✝ = (fun n α => { f := n • α.f, h := ⋯ }) n✝ x✝ + x✝
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
x✝ : A₁ ⟶ A₂
⊢ (fun n α => { f := n • α.f, h := ⋯ }) (n✝ + 1) x✝ = (fun n α => { f := n • α.f, h := ⋯ }) n✝ x✝ + x✝
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
x✝ : A₁ ⟶ A₂
⊢ ((fun n α => { f := n • α.f, h := ⋯ }) (n✝ + 1) x✝).f = ((fun n α => { f := n • α.f, h := ⋯ }) n✝ x✝ + x✝).f
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
x✝ : A₁ ⟶ A₂
⊢ ((fun n α => { f := n • α.f, h := ⋯ }) (n✝ + 1) x✝).f = ((fun n α => { f := n • α.f, h := ⋯ }) n✝ x✝ + x✝).f
state_after: no goals
tactic: apply succ_nsmul
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
⊢ ∀ (a b : A₁ ⟶ A₂), a - b = a + -b
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ b✝ : A₁ ⟶ A₂
⊢ a✝ - b✝ = a✝ + -b✝
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ b✝ : A₁ ⟶ A₂
⊢ a✝ - b✝ = a✝ + -b✝
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ b✝ : A₁ ⟶ A₂
⊢ (a✝ - b✝).f = (a✝ + -b✝).f
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ b✝ : A₁ ⟶ A₂
⊢ (a✝ - b✝).f = (a✝ + -b✝).f
state_after: no goals
tactic: apply sub_eq_add_neg
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
⊢ ∀ (a : A₁ ⟶ A₂), (fun r α => { f := r • α.f, h := ⋯ }) 0 a = 0
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ (fun r α => { f := r • α.f, h := ⋯ }) 0 a✝ = 0
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ (fun r α => { f := r • α.f, h := ⋯ }) 0 a✝ = 0
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ ((fun r α => { f := r • α.f, h := ⋯ }) 0 a✝).f = Algebra.Hom.f 0
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ ((fun r α => { f := r • α.f, h := ⋯ }) 0 a✝).f = Algebra.Hom.f 0
state_after: no goals
tactic: apply zero_smul
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
⊢ ∀ (n : ℕ) (a : A₁ ⟶ A₂),
    (fun r α => { f := r • α.f, h := ⋯ }) (Int.ofNat n.succ) a =
      (fun r α => { f := r • α.f, h := ⋯ }) (Int.ofNat n) a + a
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
a✝ : A₁ ⟶ A₂
⊢ (fun r α => { f := r • α.f, h := ⋯ }) (Int.ofNat n✝.succ) a✝ =
    (fun r α => { f := r • α.f, h := ⋯ }) (Int.ofNat n✝) a✝ + a✝
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
a✝ : A₁ ⟶ A₂
⊢ (fun r α => { f := r • α.f, h := ⋯ }) (Int.ofNat n✝.succ) a✝ =
    (fun r α => { f := r • α.f, h := ⋯ }) (Int.ofNat n✝) a✝ + a✝
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
a✝ : A₁ ⟶ A₂
⊢ ((fun r α => { f := r • α.f, h := ⋯ }) (Int.ofNat n✝.succ) a✝).f =
    ((fun r α => { f := r • α.f, h := ⋯ }) (Int.ofNat n✝) a✝ + a✝).f
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
a✝ : A₁ ⟶ A₂
⊢ ((fun r α => { f := r • α.f, h := ⋯ }) (Int.ofNat n✝.succ) a✝).f =
    ((fun r α => { f := r • α.f, h := ⋯ }) (Int.ofNat n✝) a✝ + a✝).f
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
a✝ : A₁ ⟶ A₂
⊢ ↑(n✝ + 1) • a✝.f = ({ f := ↑n✝ • a✝.f, h := ⋯ } + a✝).f
tactic: dsimp
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
a✝ : A₁ ⟶ A₂
⊢ ↑(n✝ + 1) • a✝.f = ({ f := ↑n✝ • a✝.f, h := ⋯ } + a✝).f
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
a✝ : A₁ ⟶ A₂
⊢ n✝ • a✝.f + a✝.f = ({ f := n✝ • a✝.f, h := ⋯ } + a✝).f
tactic: simp only [natCast_zsmul, succ_nsmul]
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
a✝ : A₁ ⟶ A₂
⊢ n✝ • a✝.f + a✝.f = ({ f := n✝ • a✝.f, h := ⋯ } + a✝).f
state_after: no goals
tactic: rfl
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
⊢ ∀ (n : ℕ) (a : A₁ ⟶ A₂),
    (fun r α => { f := r • α.f, h := ⋯ }) (Int.negSucc n) a = -(fun r α => { f := r • α.f, h := ⋯ }) (↑n.succ) a
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
a✝ : A₁ ⟶ A₂
⊢ (fun r α => { f := r • α.f, h := ⋯ }) (Int.negSucc n✝) a✝ = -(fun r α => { f := r • α.f, h := ⋯ }) (↑n✝.succ) a✝
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
a✝ : A₁ ⟶ A₂
⊢ (fun r α => { f := r • α.f, h := ⋯ }) (Int.negSucc n✝) a✝ = -(fun r α => { f := r • α.f, h := ⋯ }) (↑n✝.succ) a✝
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
a✝ : A₁ ⟶ A₂
⊢ ((fun r α => { f := r • α.f, h := ⋯ }) (Int.negSucc n✝) a✝).f =
    (-(fun r α => { f := r • α.f, h := ⋯ }) (↑n✝.succ) a✝).f
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
n✝ : ℕ
a✝ : A₁ ⟶ A₂
⊢ ((fun r α => { f := r • α.f, h := ⋯ }) (Int.negSucc n✝) a✝).f =
    (-(fun r α => { f := r • α.f, h := ⋯ }) (↑n✝.succ) a✝).f
state_after: no goals
tactic: simp only [negSucc_zsmul, neg_inj, ← Nat.cast_smul_eq_nsmul ℤ]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
⊢ ∀ (a : A₁ ⟶ A₂), -a + a = 0
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ -a✝ + a✝ = 0
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ -a✝ + a✝ = 0
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ (-a✝ + a✝).f = Algebra.Hom.f 0
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ : A₁ ⟶ A₂
⊢ (-a✝ + a✝).f = Algebra.Hom.f 0
state_after: no goals
tactic: apply add_left_neg
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
⊢ ∀ (a b : A₁ ⟶ A₂), a + b = b + a
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ b✝ : A₁ ⟶ A₂
⊢ a✝ + b✝ = b✝ + a✝
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ b✝ : A₁ ⟶ A₂
⊢ a✝ + b✝ = b✝ + a✝
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ b✝ : A₁ ⟶ A₂
⊢ (a✝ + b✝).f = (b✝ + a✝).f
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
A₁ A₂ : Algebra F
a✝ b✝ : A₁ ⟶ A₂
⊢ (a✝ + b✝).f = (b✝ + a✝).f
state_after: no goals
tactic: apply add_comm
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
⊢ ∀ (P Q R : Algebra F) (f f' : P ⟶ Q) (g : Q ⟶ R), (f + f') ≫ g = f ≫ g + f' ≫ g
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
P✝ Q✝ R✝ : Algebra F
f✝ f'✝ : P✝ ⟶ Q✝
g✝ : Q✝ ⟶ R✝
⊢ (f✝ + f'✝) ≫ g✝ = f✝ ≫ g✝ + f'✝ ≫ g✝
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
P✝ Q✝ R✝ : Algebra F
f✝ f'✝ : P✝ ⟶ Q✝
g✝ : Q✝ ⟶ R✝
⊢ (f✝ + f'✝) ≫ g✝ = f✝ ≫ g✝ + f'✝ ≫ g✝
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
P✝ Q✝ R✝ : Algebra F
f✝ f'✝ : P✝ ⟶ Q✝
g✝ : Q✝ ⟶ R✝
⊢ ((f✝ + f'✝) ≫ g✝).f = (f✝ ≫ g✝ + f'✝ ≫ g✝).f
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
P✝ Q✝ R✝ : Algebra F
f✝ f'✝ : P✝ ⟶ Q✝
g✝ : Q✝ ⟶ R✝
⊢ ((f✝ + f'✝) ≫ g✝).f = (f✝ ≫ g✝ + f'✝ ≫ g✝).f
state_after: no goals
tactic: apply add_comp
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
⊢ ∀ (P Q R : Algebra F) (f : P ⟶ Q) (g g' : Q ⟶ R), f ≫ (g + g') = f ≫ g + f ≫ g'
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
P✝ Q✝ R✝ : Algebra F
f✝ : P✝ ⟶ Q✝
g✝ g'✝ : Q✝ ⟶ R✝
⊢ f✝ ≫ (g✝ + g'✝) = f✝ ≫ g✝ + f✝ ≫ g'✝
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
P✝ Q✝ R✝ : Algebra F
f✝ : P✝ ⟶ Q✝
g✝ g'✝ : Q✝ ⟶ R✝
⊢ f✝ ≫ (g✝ + g'✝) = f✝ ≫ g✝ + f✝ ≫ g'✝
state_after: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
P✝ Q✝ R✝ : Algebra F
f✝ : P✝ ⟶ Q✝
g✝ g'✝ : Q✝ ⟶ R✝
⊢ (f✝ ≫ (g✝ + g'✝)).f = (f✝ ≫ g✝ + f✝ ≫ g'✝).f
tactic: apply Algebra.Hom.ext
state_before: case f
C : Type u₁
inst✝² : Category.{v₁, u₁} C
inst✝¹ : Preadditive C
F : C ⥤ C
inst✝ : F.Additive
P✝ Q✝ R✝ : Algebra F
f✝ : P✝ ⟶ Q✝
g✝ g'✝ : Q✝ ⟶ R✝
⊢ (f✝ ≫ (g✝ + g'✝)).f = (f✝ ≫ g✝ + f✝ ≫ g'✝).f
state_after: no goals
tactic: apply comp_add