Theorem: Homotopy.comp_nullHomotopicMap'
File: Mathlib/Algebra/Homology/Homotopy.lean

tactic: ext n
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 : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
⊢ f ≫ nullHomotopicMap' hom = nullHomotopicMap' fun i j hij => f.f i ≫ hom i j hij
state_after: case h
ι : 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 : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
n : ι
⊢ (f ≫ nullHomotopicMap' hom).f n = (nullHomotopicMap' fun i j hij => f.f i ≫ hom i j hij).f n

tactic: erw [comp_nullHomotopicMap]
state_before: case h
ι : 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 : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
n : ι
⊢ (f ≫ nullHomotopicMap' hom).f n = (nullHomotopicMap' fun i j hij => f.f i ≫ hom i j hij).f n
state_after: case h
ι : 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 : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
n : ι
⊢ (nullHomotopicMap fun i j => f.f i ≫ dite (c.Rel j i) (hom i j) fun x => 0).f n =
    (nullHomotopicMap' fun i j hij => f.f i ≫ hom i j hij).f n

tactic: congr
state_before: case h
ι : 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 : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
n : ι
⊢ (nullHomotopicMap fun i j => f.f i ≫ dite (c.Rel j i) (hom i j) fun x => 0).f n =
    (nullHomotopicMap' fun i j hij => f.f i ≫ hom i j hij).f n
state_after: case h.e_self.e_hom
ι : 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 : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
n : ι
⊢ (fun i j => f.f i ≫ dite (c.Rel j i) (hom i j) fun x => 0) = fun i j =>
    dite (c.Rel j i) ((fun i j hij => f.f i ≫ hom i j hij) i j) fun x => 0

tactic: ext i j
state_before: case h.e_self.e_hom
ι : 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 : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
n : ι
⊢ (fun i j => f.f i ≫ dite (c.Rel j i) (hom i j) fun x => 0) = fun i j =>
    dite (c.Rel j i) ((fun i j hij => f.f i ≫ hom i j hij) i j) fun x => 0
state_after: case h.e_self.e_hom.h.h
ι : 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✝ : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
n i j : ι
⊢ (f.f i ≫ dite (c.Rel j i) (hom i j) fun x => 0) =
    dite (c.Rel j i) ((fun i j hij => f.f i ≫ hom i j hij) i j) fun x => 0

tactic: split_ifs
state_before: case h.e_self.e_hom.h.h
ι : 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✝ : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
n i j : ι
⊢ (f.f i ≫ dite (c.Rel j i) (hom i j) fun x => 0) =
    dite (c.Rel j i) ((fun i j hij => f.f i ≫ hom i j hij) i j) fun x => 0
state_after: case pos
ι : 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✝ : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
n i j : ι
h✝ : c.Rel j i
⊢ f.f i ≫ hom i j h✝ = (fun i j hij => f.f i ≫ hom i j hij) i j h✝

case neg
ι : 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✝ : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
n i j : ι
h✝ : ¬c.Rel j i
⊢ f.f i ≫ 0 = 0

tactic: rfl
state_before: case pos
ι : 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✝ : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
n i j : ι
h✝ : c.Rel j i
⊢ f.f i ≫ hom i j h✝ = (fun i j hij => f.f i ≫ hom i j hij) i j h✝
state_after: no goals

tactic: rw [comp_zero]
state_before: case neg
ι : 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✝ : ι
f : C ⟶ D
hom : (i j : ι) → c.Rel j i → (D.X i ⟶ E.X j)
n i j : ι
h✝ : ¬c.Rel j i
⊢ f.f i ≫ 0 = 0
state_after: no goals