-- Module: Mathlib.CategoryTheory.Triangulated.Yoneda
Goal:
C : Type u_1
inst : Category.{v_1, u_1} C
inst_1 : Preadditive.{v_1, u_1} C
inst_2 : HasShift.{v_1, u_1, 0} C ℤ
inst_3 : ∀ (n : ℤ), Functor.Additive.{v_1, u_1, v_1, u_1} (shiftFunctor C n)
B : C
a : ℤ
w :
  ∀ (x : Cᵒᵖ)
    (x_1 :
      (↑(Functor.obj
            (shiftFunctor Cᵒᵖ (A := ℤ) 0 ⋙
              Functor.obj preadditiveYoneda (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B))
            x) :
        Type v_1)),
    Eq (α :=
      (↑(Functor.obj (Functor.obj preadditiveYoneda (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B)) x) :
        Type v_1))
      ((AddCommGrpCat.Hom.hom
              (NatTrans.app
                (Iso.hom
                  (NatIso.ofComponents
                    (fun (A : Cᵒᵖ) ↦
                      AddEquiv.toAddCommGrpIso
                        (let __Equiv :
                          (↑(Functor.obj
                                  (shiftFunctor Cᵒᵖ (A := ℤ) 0 ⋙
                                    Functor.obj preadditiveYoneda
                                      (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B))
                                  A) :
                              Type v_1) ≃
                            (↑(Functor.obj
                                  (Functor.obj preadditiveYoneda
                                    (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B))
                                  A) :
                              Type v_1) :=
                          Equiv.trans Quiver.Hom.opEquiv (Equiv.symm (ShiftedHom.opEquiv' 0 a a ⋯));
                        { toEquiv := __Equiv, map_add' := ⋯ }))
                    ⋯))
                x) :
            (a_1 : (↑((shiftFunctor Cᵒᵖ 0 ⋙ preadditiveYoneda.obj ((shiftFunctor C a).obj B)).obj x) : Type v_1)) →
              (↑((preadditiveYoneda.obj ((shiftFunctor C a).obj B)).obj x) : Type v_1))
          x_1 :
        (↑(Functor.obj (Functor.obj preadditiveYoneda (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B)) x) :
          Type v_1))
      ((AddCommGrpCat.Hom.hom
              (NatTrans.app
                (Iso.hom
                  (Functor.isoWhiskerRight (shiftFunctorZero Cᵒᵖ ℤ)
                      (Functor.obj preadditiveYoneda (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B)) ≪≫
                    Functor.leftUnitor
                      (Functor.obj preadditiveYoneda (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B))))
                x) :
            (a_1 : (↑((shiftFunctor Cᵒᵖ 0 ⋙ preadditiveYoneda.obj ((shiftFunctor C a).obj B)).obj x) : Type v_1)) →
              (↑((preadditiveYoneda.obj ((shiftFunctor C a).obj B)).obj x) : Type v_1))
          x_1 :
        (↑(Functor.obj (Functor.obj preadditiveYoneda (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B)) x) :
          Type v_1))
⊢ Eq (α :=
    Iso (C := Functor.{v_1, v_1, u_1, v_1 + 1} Cᵒᵖ AddCommGrpCat)
      (shiftFunctor Cᵒᵖ (A := ℤ) 0 ⋙
        Functor.obj preadditiveYoneda (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B))
      (Functor.obj preadditiveYoneda (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B)))
    (NatIso.ofComponents
      (fun (A : Cᵒᵖ) ↦
        AddEquiv.toAddCommGrpIso
          (let __Equiv :
            (↑(Functor.obj
                    (shiftFunctor Cᵒᵖ (A := ℤ) 0 ⋙
                      Functor.obj preadditiveYoneda (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B))
                    A) :
                Type v_1) ≃
              (↑(Functor.obj (Functor.obj preadditiveYoneda (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B))
                    A) :
                Type v_1) :=
            Equiv.trans Quiver.Hom.opEquiv (Equiv.symm (ShiftedHom.opEquiv' 0 a a ⋯));
          { toEquiv := __Equiv, map_add' := ⋯ }))
      ⋯)
    (Functor.isoWhiskerRight (shiftFunctorZero Cᵒᵖ ℤ)
        (Functor.obj preadditiveYoneda (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B)) ≪≫
      Functor.leftUnitor (Functor.obj preadditiveYoneda (Functor.obj.{v_1, v_1, u_1, u_1} (shiftFunctor C a) B)))

Tactic:
ext