-- Module: Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic
Goal:
A : Type u₁
B : Type u₂
C : Type u₃
inst : Category.{v₁, u₁} A
inst_1 : Category.{v₂, u₂} B
inst_2 : Category.{v₃, u₃} C
F : Functor.{v₁, v₂, u₁, u₂} A B
G : Functor.{v₃, v₂, u₃, u₂} C B
X : Type u₄
Y : Type u₅
Z : Type u₆
inst_3 : Category.{v₄, u₄} X
inst_4 : Category.{v₅, u₅} Y
inst_5 : Category.{v₆, u₆} Z
X_1 : Functor.{v₄, v₅, u₄, u₅} X Y
x : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y
x_1 : X
⊢ ({
                app := fun (x : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) ↦
                  { fst := whiskerRight (𝟙 X_1) x.fst, snd := whiskerRight (𝟙 X_1) x.snd, w := ⋯ :
                    Hom.{v₁, v₂, v₃, v₄, u₁, u₂, u₃, u₄} (A := A) (B := B) (C := C) (F := F) (G := G) X
                      ((fun (S : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) ↦
                          { fst := X_1 ⋙ S.fst, snd := X_1 ⋙ S.snd,
                            iso := X_1.associator S.fst F ≪≫ X_1.isoWhiskerLeft S.iso ≪≫ (X_1.associator S.snd G).symm :
                            CatCommSqOver.{v₁, v₂, v₃, v₄, u₁, u₂, u₃, u₄} F G X })
                        x)
                      ((fun (S : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) ↦
                          { fst := X_1 ⋙ S.fst, snd := X_1 ⋙ S.snd,
                            iso := X_1.associator S.fst F ≪≫ X_1.isoWhiskerLeft S.iso ≪≫ (X_1.associator S.snd G).symm :
                            CatCommSqOver.{v₁, v₂, v₃, v₄, u₁, u₂, u₃, u₄} F G X })
                        x) },
                naturality := ⋯ :
                NatTrans (C := CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) (D :=
                  CatCommSqOver.{v₁, v₂, v₃, v₄, u₁, u₂, u₃, u₄} F G X)
                  {
                    obj := fun (S : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) ↦
                      { fst := X_1 ⋙ S.fst, snd := X_1 ⋙ S.snd,
                        iso := X_1.associator S.fst F ≪≫ X_1.isoWhiskerLeft S.iso ≪≫ (X_1.associator S.snd G).symm :
                        CatCommSqOver.{v₁, v₂, v₃, v₄, u₁, u₂, u₃, u₄} F G X },
                    map := fun {S S' : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y} (φ : S ⟶ S') ↦
                      { fst := X_1.whiskerLeft φ.fst, snd := X_1.whiskerLeft φ.snd, w := ⋯ :
                        Hom X
                          { fst := X_1 ⋙ S.fst, snd := X_1 ⋙ S.snd,
                            iso := X_1.associator S.fst F ≪≫ X_1.isoWhiskerLeft S.iso ≪≫ (X_1.associator S.snd G).symm :
                            CatCommSqOver.{v₁, v₂, v₃, v₄, u₁, u₂, u₃, u₄} F G X }
                          { fst := X_1 ⋙ S'.fst, snd := X_1 ⋙ S'.snd,
                            iso :=
                              X_1.associator S'.fst F ≪≫ X_1.isoWhiskerLeft S'.iso ≪≫ (X_1.associator S'.snd G).symm :
                            CatCommSqOver.{v₁, v₂, v₃, v₄, u₁, u₂, u₃, u₄} F G X } },
                    map_id := ⋯, map_comp := ⋯ :
                    CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y ⥤
                      CatCommSqOver.{v₁, v₂, v₃, v₄, u₁, u₂, u₃, u₄} F G X }
                  {
                    obj := fun (S : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) ↦
                      { fst := X_1 ⋙ S.fst, snd := X_1 ⋙ S.snd,
                        iso := X_1.associator S.fst F ≪≫ X_1.isoWhiskerLeft S.iso ≪≫ (X_1.associator S.snd G).symm :
                        CatCommSqOver.{v₁, v₂, v₃, v₄, u₁, u₂, u₃, u₄} F G X },
                    map := fun {S S' : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y} (φ : S ⟶ S') ↦
                      { fst := X_1.whiskerLeft φ.fst, snd := X_1.whiskerLeft φ.snd, w := ⋯ :
                        Hom X
                          { fst := X_1 ⋙ S.fst, snd := X_1 ⋙ S.snd,
                            iso := X_1.associator S.fst F ≪≫ X_1.isoWhiskerLeft S.iso ≪≫ (X_1.associator S.snd G).symm :
                            CatCommSqOver.{v₁, v₂, v₃, v₄, u₁, u₂, u₃, u₄} F G X }
                          { fst := X_1 ⋙ S'.fst, snd := X_1 ⋙ S'.snd,
                            iso :=
                              X_1.associator S'.fst F ≪≫ X_1.isoWhiskerLeft S'.iso ≪≫ (X_1.associator S'.snd G).symm :
                            CatCommSqOver.{v₁, v₂, v₃, v₄, u₁, u₂, u₃, u₄} F G X } },
                    map_id := ⋯, map_comp := ⋯ :
                    CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y ⥤
                      CatCommSqOver.{v₁, v₂, v₃, v₄, u₁, u₂, u₃, u₄} F G X } }.app
            x).snd.app
      x_1 =
    NatTrans.app
      (Hom.snd
        (NatTrans.app
          (𝟙
            {
              obj := fun (S : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) ↦
                { fst := X_1 ⋙ S.fst, snd := X_1 ⋙ S.snd,
                  iso := X_1.associator S.fst F ≪≫ X_1.isoWhiskerLeft S.iso ≪≫ (X_1.associator S.snd G).symm },
              map := fun {S S' : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y} (φ : S ⟶ S') ↦
                { fst := X_1.whiskerLeft φ.fst, snd := X_1.whiskerLeft φ.snd, w := ⋯ },
              map_id := ⋯, map_comp := ⋯ })
          x))
      x_1

Tactic:
simp