Theorem: CategoryTheory.Functor.mapCochainComplexShiftIso_inv_app_f
File: Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean

Proof steps:
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : Preadditive D
F : C ⥤ D
inst✝ : F.Additive
n : ℤ
K : HomologicalComplex C (ComplexShape.up ℤ)
⊢ ∀ (i j : ℤ),
    (ComplexShape.up ℤ).Rel i j →
      ((fun x =>
                Iso.refl
                  (((shiftFunctor (HomologicalComplex C (ComplexShape.up ℤ)) n ⋙
                            F.mapHomologicalComplex (ComplexShape.up ℤ)).obj
                        K).X
                    x))
              i).hom ≫
          ((F.mapHomologicalComplex (ComplexShape.up ℤ) ⋙ shiftFunctor (HomologicalComplex D (ComplexShape.up ℤ)) n).obj
                K).d
            i j =
        ((shiftFunctor (HomologicalComplex C (ComplexShape.up ℤ)) n ⋙ F.mapHomologicalComplex (ComplexShape.up ℤ)).obj
                K).d
            i j ≫
          ((fun x =>
                Iso.refl
                  (((shiftFunctor (HomologicalComplex C (ComplexShape.up ℤ)) n ⋙
                            F.mapHomologicalComplex (ComplexShape.up ℤ)).obj
                        K).X
                    x))
              j).hom
state_after: no goals
tactic: aesop_cat
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : Preadditive D
F : C ⥤ D
inst✝ : F.Additive
n : ℤ
X✝ Y✝ : HomologicalComplex C (ComplexShape.up ℤ)
x✝ : X✝ ⟶ Y✝
⊢ (shiftFunctor (HomologicalComplex C (ComplexShape.up ℤ)) n ⋙ F.mapHomologicalComplex (ComplexShape.up ℤ)).map x✝ ≫
      ((fun K =>
            HomologicalComplex.Hom.isoOfComponents
              (fun x =>
                Iso.refl
                  (((shiftFunctor (HomologicalComplex C (ComplexShape.up ℤ)) n ⋙
                            F.mapHomologicalComplex (ComplexShape.up ℤ)).obj
                        K).X
                    x))
              ⋯)
          Y✝).hom =
    ((fun K =>
            HomologicalComplex.Hom.isoOfComponents
              (fun x =>
                Iso.refl
                  (((shiftFunctor (HomologicalComplex C (ComplexShape.up ℤ)) n ⋙
                            F.mapHomologicalComplex (ComplexShape.up ℤ)).obj
                        K).X
                    x))
              ⋯)
          X✝).hom ≫
      (F.mapHomologicalComplex (ComplexShape.up ℤ) ⋙ shiftFunctor (HomologicalComplex D (ComplexShape.up ℤ)) n).map x✝
state_after: case h
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : Preadditive D
F : C ⥤ D
inst✝ : F.Additive
n : ℤ
X✝ Y✝ : HomologicalComplex C (ComplexShape.up ℤ)
x✝ : X✝ ⟶ Y✝
i✝ : ℤ
⊢ ((shiftFunctor (HomologicalComplex C (ComplexShape.up ℤ)) n ⋙ F.mapHomologicalComplex (ComplexShape.up ℤ)).map x✝ ≫
          ((fun K =>
                HomologicalComplex.Hom.isoOfComponents
                  (fun x =>
                    Iso.refl
                      (((shiftFunctor (HomologicalComplex C (ComplexShape.up ℤ)) n ⋙
                                F.mapHomologicalComplex (ComplexShape.up ℤ)).obj
                            K).X
                        x))
                  ⋯)
              Y✝).hom).f
      i✝ =
    (((fun K =>
                HomologicalComplex.Hom.isoOfComponents
                  (fun x =>
                    Iso.refl
                      (((shiftFunctor (HomologicalComplex C (ComplexShape.up ℤ)) n ⋙
                                F.mapHomologicalComplex (ComplexShape.up ℤ)).obj
                            K).X
                        x))
                  ⋯)
              X✝).hom ≫
          (F.mapHomologicalComplex (ComplexShape.up ℤ) ⋙ shiftFunctor (HomologicalComplex D (ComplexShape.up ℤ)) n).map
            x✝).f
      i✝
tactic: ext
state_before: case h
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : Preadditive D
F : C ⥤ D
inst✝ : F.Additive
n : ℤ
X✝ Y✝ : HomologicalComplex C (ComplexShape.up ℤ)
x✝ : X✝ ⟶ Y✝
i✝ : ℤ
⊢ ((shiftFunctor (HomologicalComplex C (ComplexShape.up ℤ)) n ⋙ F.mapHomologicalComplex (ComplexShape.up ℤ)).map x✝ ≫
          ((fun K =>
                HomologicalComplex.Hom.isoOfComponents
                  (fun x =>
                    Iso.refl
                      (((shiftFunctor (HomologicalComplex C (ComplexShape.up ℤ)) n ⋙
                                F.mapHomologicalComplex (ComplexShape.up ℤ)).obj
                            K).X
                        x))
                  ⋯)
              Y✝).hom).f
      i✝ =
    (((fun K =>
                HomologicalComplex.Hom.isoOfComponents
                  (fun x =>
                    Iso.refl
                      (((shiftFunctor (HomologicalComplex C (ComplexShape.up ℤ)) n ⋙
                                F.mapHomologicalComplex (ComplexShape.up ℤ)).obj
                            K).X
                        x))
                  ⋯)
              X✝).hom ≫
          (F.mapHomologicalComplex (ComplexShape.up ℤ) ⋙ shiftFunctor (HomologicalComplex D (ComplexShape.up ℤ)) n).map
            x✝).f
      i✝
state_after: case h
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : Preadditive D
F : C ⥤ D
inst✝ : F.Additive
n : ℤ
X✝ Y✝ : HomologicalComplex C (ComplexShape.up ℤ)
x✝ : X✝ ⟶ Y✝
i✝ : ℤ
⊢ F.map (x✝.f (i✝ + n)) ≫ 𝟙 (F.obj (Y✝.X (i✝ + n))) = 𝟙 (F.obj (X✝.X (i✝ + n))) ≫ F.map (x✝.f (i✝ + n))
tactic: dsimp
state_before: case h
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : Preadditive D
F : C ⥤ D
inst✝ : F.Additive
n : ℤ
X✝ Y✝ : HomologicalComplex C (ComplexShape.up ℤ)
x✝ : X✝ ⟶ Y✝
i✝ : ℤ
⊢ F.map (x✝.f (i✝ + n)) ≫ 𝟙 (F.obj (Y✝.X (i✝ + n))) = 𝟙 (F.obj (X✝.X (i✝ + n))) ≫ F.map (x✝.f (i✝ + n))
state_after: no goals
tactic: rw [id_comp, comp_id]