Theorem: CategoryTheory.Idempotents.functorExtension₂CompWhiskeringLeftToKaroubiIso_inv_app_app_f
File: Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝² : Category.{?u.66660, u_1} C
inst✝¹ : Category.{?u.66664, u_2} D
inst✝ : Category.{?u.66668, u_3} E
F : C ⥤ D
⊢ ∀ {X Y : C} (f : X ⟶ Y),
    ((functorExtension₂ C D ⋙ (whiskeringLeft C (Karoubi C) (Karoubi D)).obj (toKaroubi C)).obj F).map f ≫
        ((fun X =>
              {
                hom :=
                  {
                    f :=
                      𝟙
                        (((functorExtension₂ C D ⋙ (whiskeringLeft C (Karoubi C) (Karoubi D)).obj (toKaroubi C)).obj
                                F).obj
                            X).X,
                    comm := ⋯ },
                inv := { f := 𝟙 ((((whiskeringRight C D (Karoubi D)).obj (toKaroubi D)).obj F).obj X).X, comm := ⋯ },
                hom_inv_id := ⋯, inv_hom_id := ⋯ })
            Y).hom =
      ((fun X =>
              {
                hom :=
                  {
                    f :=
                      𝟙
                        (((functorExtension₂ C D ⋙ (whiskeringLeft C (Karoubi C) (Karoubi D)).obj (toKaroubi C)).obj
                                F).obj
                            X).X,
                    comm := ⋯ },
                inv := { f := 𝟙 ((((whiskeringRight C D (Karoubi D)).obj (toKaroubi D)).obj F).obj X).X, comm := ⋯ },
                hom_inv_id := ⋯, inv_hom_id := ⋯ })
            X).hom ≫
        (((whiskeringRight C D (Karoubi D)).obj (toKaroubi D)).obj F).map f
state_after: no goals
tactic: aesop_cat
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝² : Category.{?u.66660, u_1} C
inst✝¹ : Category.{?u.66664, u_2} D
inst✝ : Category.{?u.66668, u_3} E
⊢ ∀ {X Y : C ⥤ D} (f : X ⟶ Y),
    (functorExtension₂ C D ⋙ (whiskeringLeft C (Karoubi C) (Karoubi D)).obj (toKaroubi C)).map f ≫
        ((fun F =>
              NatIso.ofComponents
                (fun X =>
                  {
                    hom :=
                      {
                        f :=
                          𝟙
                            (((functorExtension₂ C D ⋙ (whiskeringLeft C (Karoubi C) (Karoubi D)).obj (toKaroubi C)).obj
                                    F).obj
                                X).X,
                        comm := ⋯ },
                    inv :=
                      { f := 𝟙 ((((whiskeringRight C D (Karoubi D)).obj (toKaroubi D)).obj F).obj X).X, comm := ⋯ },
                    hom_inv_id := ⋯, inv_hom_id := ⋯ })
                ⋯)
            Y).hom =
      ((fun F =>
              NatIso.ofComponents
                (fun X =>
                  {
                    hom :=
                      {
                        f :=
                          𝟙
                            (((functorExtension₂ C D ⋙ (whiskeringLeft C (Karoubi C) (Karoubi D)).obj (toKaroubi C)).obj
                                    F).obj
                                X).X,
                        comm := ⋯ },
                    inv :=
                      { f := 𝟙 ((((whiskeringRight C D (Karoubi D)).obj (toKaroubi D)).obj F).obj X).X, comm := ⋯ },
                    hom_inv_id := ⋯, inv_hom_id := ⋯ })
                ⋯)
            X).hom ≫
        ((whiskeringRight C D (Karoubi D)).obj (toKaroubi D)).map f
state_after: no goals
tactic: aesop_cat