Theorem: Homotopy.smul_hom
File: Mathlib/Algebra/Homology/Homotopy.lean

Proof steps:
state_before: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h✝ k : D ⟶ E
i✝ : ι
R : Type u_2
inst✝¹ : Semiring R
inst✝ : Linear R V
h : Homotopy f g
a : R
i j : ι
hij : ¬c.Rel j i
⊢ (fun i j => a • h.hom i j) i j = 0
state_after: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h✝ k : D ⟶ E
i✝ : ι
R : Type u_2
inst✝¹ : Semiring R
inst✝ : Linear R V
h : Homotopy f g
a : R
i j : ι
hij : ¬c.Rel j i
⊢ a • h.hom i j = 0
tactic: dsimp
state_before: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h✝ k : D ⟶ E
i✝ : ι
R : Type u_2
inst✝¹ : Semiring R
inst✝ : Linear R V
h : Homotopy f g
a : R
i j : ι
hij : ¬c.Rel j i
⊢ a • h.hom i j = 0
state_after: no goals
tactic: rw [h.zero i j hij, smul_zero]
state_before: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h✝ k : D ⟶ E
i✝ : ι
R : Type u_2
inst✝¹ : Semiring R
inst✝ : Linear R V
h : Homotopy f g
a : R
i : ι
⊢ (a • f).f i = (((dNext i) fun i j => a • h.hom i j) + (prevD i) fun i j => a • h.hom i j) + (a • g).f i
state_after: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h✝ k : D ⟶ E
i✝ : ι
R : Type u_2
inst✝¹ : Semiring R
inst✝ : Linear R V
h : Homotopy f g
a : R
i : ι
⊢ a • f.f i =
    (C.dFrom i ≫ (fromNext i) fun i j => a • h.hom i j) + ((toPrev i) fun i j => a • h.hom i j) ≫ D.dTo i + a • g.f i
tactic: dsimp
state_before: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h✝ k : D ⟶ E
i✝ : ι
R : Type u_2
inst✝¹ : Semiring R
inst✝ : Linear R V
h : Homotopy f g
a : R
i : ι
⊢ a • f.f i =
    (C.dFrom i ≫ (fromNext i) fun i j => a • h.hom i j) + ((toPrev i) fun i j => a • h.hom i j) ≫ D.dTo i + a • g.f i
state_after: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h✝ k : D ⟶ E
i✝ : ι
R : Type u_2
inst✝¹ : Semiring R
inst✝ : Linear R V
h : Homotopy f g
a : R
i : ι
⊢ a • ((dNext i) h.hom + (prevD i) h.hom + g.f i) =
    (C.dFrom i ≫ (fromNext i) fun i j => a • h.hom i j) + ((toPrev i) fun i j => a • h.hom i j) ≫ D.dTo i + a • g.f i
tactic: rw [h.comm]
state_before: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h✝ k : D ⟶ E
i✝ : ι
R : Type u_2
inst✝¹ : Semiring R
inst✝ : Linear R V
h : Homotopy f g
a : R
i : ι
⊢ a • ((dNext i) h.hom + (prevD i) h.hom + g.f i) =
    (C.dFrom i ≫ (fromNext i) fun i j => a • h.hom i j) + ((toPrev i) fun i j => a • h.hom i j) ≫ D.dTo i + a • g.f i
state_after: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h✝ k : D ⟶ E
i✝ : ι
R : Type u_2
inst✝¹ : Semiring R
inst✝ : Linear R V
h : Homotopy f g
a : R
i : ι
⊢ a • (C.dFrom i ≫ h.hom (c.next i) i + h.hom i (c.prev i) ≫ D.dTo i + g.f i) =
    C.dFrom i ≫ (a • h.hom (c.next i) i) + (a • h.hom i (c.prev i)) ≫ D.dTo i + a • g.f i
tactic: dsimp [fromNext, toPrev]
state_before: ι : Type u_1
V : Type u
inst✝³ : Category.{v, u} V
inst✝² : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h✝ k : D ⟶ E
i✝ : ι
R : Type u_2
inst✝¹ : Semiring R
inst✝ : Linear R V
h : Homotopy f g
a : R
i : ι
⊢ a • (C.dFrom i ≫ h.hom (c.next i) i + h.hom i (c.prev i) ≫ D.dTo i + g.f i) =
    C.dFrom i ≫ (a • h.hom (c.next i) i) + (a • h.hom i (c.prev i)) ≫ D.dTo i + a • g.f i
state_after: no goals
tactic: simp only [smul_add, Linear.comp_smul, Linear.smul_comp]