Theorem: CategoryTheory.ShortComplex.FunctorEquivalence.unitIso_inv_app_τ₁_app
File: Mathlib/Algebra/Homology/ShortComplex/FunctorEquivalence.lean

Proof steps:
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{?u.31225, u_1} J
inst✝¹ : Category.{?u.31229, u_2} C
inst✝ : HasZeroMorphisms C
x✝ : ShortComplex (J ⥤ C)
⊢ ∀ {X Y : J} (f : X ⟶ Y),
    ((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₁.map f ≫
        ((fun x => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₁.obj x)) Y).hom =
      ((fun x => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₁.obj x)) X).hom ≫
        ((functor J C ⋙ inverse J C).obj x✝).X₁.map f
state_after: no goals
tactic: aesop_cat
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{?u.31225, u_1} J
inst✝¹ : Category.{?u.31229, u_2} C
inst✝ : HasZeroMorphisms C
x✝ : ShortComplex (J ⥤ C)
⊢ ∀ {X Y : J} (f : X ⟶ Y),
    ((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₂.map f ≫
        ((fun x => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₂.obj x)) Y).hom =
      ((fun x => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₂.obj x)) X).hom ≫
        ((functor J C ⋙ inverse J C).obj x✝).X₂.map f
state_after: no goals
tactic: aesop_cat
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{?u.31225, u_1} J
inst✝¹ : Category.{?u.31229, u_2} C
inst✝ : HasZeroMorphisms C
x✝ : ShortComplex (J ⥤ C)
⊢ ∀ {X Y : J} (f : X ⟶ Y),
    ((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₃.map f ≫
        ((fun x => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₃.obj x)) Y).hom =
      ((fun x => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₃.obj x)) X).hom ≫
        ((functor J C ⋙ inverse J C).obj x✝).X₃.map f
state_after: no goals
tactic: aesop_cat
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{?u.31225, u_1} J
inst✝¹ : Category.{?u.31229, u_2} C
inst✝ : HasZeroMorphisms C
x✝ : ShortComplex (J ⥤ C)
⊢ (NatIso.ofComponents (fun x => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₁.obj x)) ⋯).hom ≫
      ((functor J C ⋙ inverse J C).obj x✝).f =
    ((𝟭 (ShortComplex (J ⥤ C))).obj x✝).f ≫
      (NatIso.ofComponents (fun x => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₂.obj x)) ⋯).hom
state_after: no goals
tactic: aesop_cat
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{?u.31225, u_1} J
inst✝¹ : Category.{?u.31229, u_2} C
inst✝ : HasZeroMorphisms C
x✝ : ShortComplex (J ⥤ C)
⊢ (NatIso.ofComponents (fun x => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₂.obj x)) ⋯).hom ≫
      ((functor J C ⋙ inverse J C).obj x✝).g =
    ((𝟭 (ShortComplex (J ⥤ C))).obj x✝).g ≫
      (NatIso.ofComponents (fun x => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x✝).X₃.obj x)) ⋯).hom
state_after: no goals
tactic: aesop_cat
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{?u.31225, u_1} J
inst✝¹ : Category.{?u.31229, u_2} C
inst✝ : HasZeroMorphisms C
⊢ ∀ {X Y : ShortComplex (J ⥤ C)} (f : X ⟶ Y),
    (𝟭 (ShortComplex (J ⥤ C))).map f ≫
        ((fun x =>
              isoMk (NatIso.ofComponents (fun x_1 => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x).X₁.obj x_1)) ⋯)
                (NatIso.ofComponents (fun x_1 => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x).X₂.obj x_1)) ⋯)
                (NatIso.ofComponents (fun x_1 => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x).X₃.obj x_1)) ⋯) ⋯ ⋯)
            Y).hom =
      ((fun x =>
              isoMk (NatIso.ofComponents (fun x_1 => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x).X₁.obj x_1)) ⋯)
                (NatIso.ofComponents (fun x_1 => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x).X₂.obj x_1)) ⋯)
                (NatIso.ofComponents (fun x_1 => Iso.refl (((𝟭 (ShortComplex (J ⥤ C))).obj x).X₃.obj x_1)) ⋯) ⋯ ⋯)
            X).hom ≫
        (functor J C ⋙ inverse J C).map f
state_after: no goals
tactic: aesop_cat