Theorem: CochainComplex.mappingCone.mapHomologicalComplexXIso'_inv
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ n + 1 = m
state_after: no goals
tactic: omega
state_before: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ m + -1 = n
state_after: no goals
tactic: omega
state_before: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ n + 1 = m
state_after: no goals
tactic: omega
state_before: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ m + -1 = n
state_after: no goals
tactic: omega
state_before: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ (H.map ((↑(fst φ)).v n m ⋯) ≫ (inl ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).v m n ⋯ +
        H.map ((snd φ).v n n ⋯) ≫ (inr ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).f n) ≫
      ((↑(fst ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ))).v n m ⋯ ≫ H.map ((inl φ).v m n ⋯) +
        (snd ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).v n n ⋯ ≫ H.map ((inr φ).f n)) =
    𝟙 (((H.mapHomologicalComplex (ComplexShape.up ℤ)).obj (mappingCone φ)).X n)
state_after: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ H.map ((↑(fst φ)).v n m ⋯ ≫ (inl φ).v m n ⋯ + (snd φ).v n n ⋯ ≫ (inr φ).f n) = 𝟙 (H.obj ((mappingCone φ).X n))
tactic: simp only [Functor.mapHomologicalComplex_obj_X, comp_add, add_comp, assoc,
      inl_v_fst_v_assoc, inr_f_fst_v_assoc, zero_comp, comp_zero, add_zero,
      inl_v_snd_v_assoc, inr_f_snd_v_assoc, zero_add, ← Functor.map_comp, ← Functor.map_add]
state_before: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ H.map ((↑(fst φ)).v n m ⋯ ≫ (inl φ).v m n ⋯ + (snd φ).v n n ⋯ ≫ (inr φ).f n) = 𝟙 (H.obj ((mappingCone φ).X n))
state_after: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ H.map ((↑(fst φ)).v n m ⋯ ≫ (inl φ).v m n ⋯ + (snd φ).v n n ⋯ ≫ (inr φ).f n) = H.map (𝟙 ((mappingCone φ).X n))
tactic: rw [← H.map_id]
state_before: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ H.map ((↑(fst φ)).v n m ⋯ ≫ (inl φ).v m n ⋯ + (snd φ).v n n ⋯ ≫ (inr φ).f n) = H.map (𝟙 ((mappingCone φ).X n))
state_after: case e_a
C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ (↑(fst φ)).v n m ⋯ ≫ (inl φ).v m n ⋯ + (snd φ).v n n ⋯ ≫ (inr φ).f n = 𝟙 ((mappingCone φ).X n)
tactic: congr 1
state_before: case e_a
C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ (↑(fst φ)).v n m ⋯ ≫ (inl φ).v m n ⋯ + (snd φ).v n n ⋯ ≫ (inr φ).f n = 𝟙 ((mappingCone φ).X n)
state_after: no goals
tactic: simp [ext_from_iff  _ _ _ hnm]
state_before: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ ((↑(fst ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ))).v n m ⋯ ≫ H.map ((inl φ).v m n ⋯) +
        (snd ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).v n n ⋯ ≫ H.map ((inr φ).f n)) ≫
      (H.map ((↑(fst φ)).v n m ⋯) ≫ (inl ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).v m n ⋯ +
        H.map ((snd φ).v n n ⋯) ≫ (inr ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).f n) =
    𝟙 ((mappingCone ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).X n)
state_after: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ (↑(fst ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ))).v n m ⋯ ≫
          (inl ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).v m n ⋯ +
        (snd ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).v n n ⋯ ≫
          H.map 0 ≫ (inl ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).v m n ⋯ +
      ((↑(fst ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ))).v n m ⋯ ≫
          H.map 0 ≫ (inr ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).f n +
        (snd ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).v n n ⋯ ≫
          (inr ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).f n) =
    𝟙 ((mappingCone ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).X n)
tactic: simp only [Functor.mapHomologicalComplex_obj_X, comp_add, add_comp, assoc,
      ← H.map_comp_assoc, inl_v_fst_v, CategoryTheory.Functor.map_id, id_comp, inr_f_fst_v,
      inl_v_snd_v, inr_f_snd_v]
state_before: C : Type u_1
D : Type u_2
inst✝⁶ : Category.{?u.266427, u_1} C
inst✝⁵ : Category.{?u.266431, u_2} D
inst✝⁴ : Preadditive C
inst✝³ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝² : HasHomotopyCofiber φ
H : C ⥤ D
inst✝¹ : H.Additive
inst✝ : HasHomotopyCofiber ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)
n m : ℤ
hnm : n + 1 = m
⊢ (↑(fst ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ))).v n m ⋯ ≫
          (inl ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).v m n ⋯ +
        (snd ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).v n n ⋯ ≫
          H.map 0 ≫ (inl ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).v m n ⋯ +
      ((↑(fst ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ))).v n m ⋯ ≫
          H.map 0 ≫ (inr ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).f n +
        (snd ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).v n n ⋯ ≫
          (inr ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).f n) =
    𝟙 ((mappingCone ((H.mapHomologicalComplex (ComplexShape.up ℤ)).map φ)).X n)
state_after: no goals
tactic: simp [ext_from_iff _ _ _ hnm]