Theorem: ChainComplex.map_chain_complex_of
File: Mathlib/Algebra/Homology/Additive.lean

tactic: rw [← F.map_comp, sq n, Functor.map_zero]
state_before: ι : Type ?u.119211
V : Type u
inst✝⁷ : Category V
inst✝⁶ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i : ι
W : Type ?u.119566
inst✝⁵ : Category W
inst✝⁴ : Preadditive W
α : Type ?u.119588
inst✝³ : AddRightCancelSemigroup α
inst✝² : One α
inst✝¹ : DecidableEq α
F : V ⥤ W
inst✝ : Functor.Additive F
X : α → V
d : (n : α) → X (n + 1) ⟶ X n
sq : ∀ (n : α), d (n + 1) ≫ d n = 0
n : α
⊢ (fun n => F.map (d n)) (n + 1) ≫ (fun n => F.map (d n)) n = 0

tactic: refine' HomologicalComplex.ext rfl _
state_before: ι : Type ?u.119211
V : Type u
inst✝⁷ : Category V
inst✝⁶ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i : ι
W : Type u_2
inst✝⁵ : Category W
inst✝⁴ : Preadditive W
α : Type u_3
inst✝³ : AddRightCancelSemigroup α
inst✝² : One α
inst✝¹ : DecidableEq α
F : V ⥤ W
inst✝ : Functor.Additive F
X : α → V
d : (n : α) → X (n + 1) ⟶ X n
sq : ∀ (n : α), d (n + 1) ≫ d n = 0
⊢ (Functor.mapHomologicalComplex F (ComplexShape.down α)).obj (of X d sq) =
    of (fun n => F.obj (X n)) (fun n => F.map (d n))
      (_ : ∀ (n : α), (fun n => F.map (d n)) (n + 1) ≫ (fun n => F.map (d n)) n = 0)

tactic: rintro i j (rfl : j + 1 = i)
state_before: ι : Type ?u.119211
V : Type u
inst✝⁷ : Category V
inst✝⁶ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i : ι
W : Type u_2
inst✝⁵ : Category W
inst✝⁴ : Preadditive W
α : Type u_3
inst✝³ : AddRightCancelSemigroup α
inst✝² : One α
inst✝¹ : DecidableEq α
F : V ⥤ W
inst✝ : Functor.Additive F
X : α → V
d : (n : α) → X (n + 1) ⟶ X n
sq : ∀ (n : α), d (n + 1) ≫ d n = 0
⊢ ∀ (i j : α),
    ComplexShape.Rel (ComplexShape.down α) i j →
      HomologicalComplex.d ((Functor.mapHomologicalComplex F (ComplexShape.down α)).obj (of X d sq)) i j ≫
          eqToHom
            (_ :
              HomologicalComplex.X ((Functor.mapHomologicalComplex F (ComplexShape.down α)).obj (of X d sq)) j =
                HomologicalComplex.X
                  (of (fun n => F.obj (X n)) (fun n => F.map (d n))
                    (_ : ∀ (n : α), (fun n => F.map (d n)) (n + 1) ≫ (fun n => F.map (d n)) n = 0))
                  j) =
        eqToHom
            (_ :
              HomologicalComplex.X ((Functor.mapHomologicalComplex F (ComplexShape.down α)).obj (of X d sq)) i =
                HomologicalComplex.X
                  (of (fun n => F.obj (X n)) (fun n => F.map (d n))
                    (_ : ∀ (n : α), (fun n => F.map (d n)) (n + 1) ≫ (fun n => F.map (d n)) n = 0))
                  i) ≫
          HomologicalComplex.d
            (of (fun n => F.obj (X n)) (fun n => F.map (d n))
              (_ : ∀ (n : α), (fun n => F.map (d n)) (n + 1) ≫ (fun n => F.map (d n)) n = 0))
            i j

tactic: simp only [CategoryTheory.Functor.mapHomologicalComplex_obj_d, of_d, eqToHom_refl, comp_id,
  id_comp]
state_before: ι : Type ?u.119211
V : Type u
inst✝⁷ : Category V
inst✝⁶ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f g : C ⟶ D
h k : D ⟶ E
i : ι
W : Type u_2
inst✝⁵ : Category W
inst✝⁴ : Preadditive W
α : Type u_3
inst✝³ : AddRightCancelSemigroup α
inst✝² : One α
inst✝¹ : DecidableEq α
F : V ⥤ W
inst✝ : Functor.Additive F
X : α → V
d : (n : α) → X (n + 1) ⟶ X n
sq : ∀ (n : α), d (n + 1) ≫ d n = 0
j : α
⊢ HomologicalComplex.d ((Functor.mapHomologicalComplex F (ComplexShape.down α)).obj (of X d sq)) (j + 1) j ≫
      eqToHom
        (_ :
          HomologicalComplex.X ((Functor.mapHomologicalComplex F (ComplexShape.down α)).obj (of X d sq)) j =
            HomologicalComplex.X
              (of (fun n => F.obj (X n)) (fun n => F.map (d n))
                (_ : ∀ (n : α), (fun n => F.map (d n)) (n + 1) ≫ (fun n => F.map (d n)) n = 0))
              j) =
    eqToHom
        (_ :
          HomologicalComplex.X ((Functor.mapHomologicalComplex F (ComplexShape.down α)).obj (of X d sq)) (j + 1) =
            HomologicalComplex.X
              (of (fun n => F.obj (X n)) (fun n => F.map (d n))
                (_ : ∀ (n : α), (fun n => F.map (d n)) (n + 1) ≫ (fun n => F.map (d n)) n = 0))
              (j + 1)) ≫
      HomologicalComplex.d
        (of (fun n => F.obj (X n)) (fun n => F.map (d n))
          (_ : ∀ (n : α), (fun n => F.map (d n)) (n + 1) ≫ (fun n => F.map (d n)) n = 0))
        (j + 1) j