awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
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
T : Type u₇
inst_6 : Category.{v₇, u₇} T
U : Functor.{v₄, v₅, u₄, u₅} X Y
V : Functor.{v₅, v₆, u₅, u₆} Y Z
W : Functor.{v₆, v₇, u₆, u₇} Z T
w :
  ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₇, u₁, u₂, u₃, u₇} F G T) (x_1 : X),
    NatTrans.app (Hom.fst (NatTrans.app (map (precompose F G) (U.associator V W).hom) x)) x_1 =
      (((precomposeObjComp F G (U ⋙ V) W).hom ≫
                  (obj (precompose F G) W).whiskerLeft (precomposeObjComp F G U V).hom ≫
                    ((obj (precompose F G) W).associator (obj (precompose F G) V) (obj (precompose F G) U)).inv ≫
                      whiskerRight (precomposeObjComp F G V W).inv (obj (precompose F G) U) ≫
                        (precomposeObjComp F G U (V ⋙ W)).inv).app
              x).fst.app
        x_1
⊢ map (precompose F G) (U.associator V W).hom =
    (precomposeObjComp F G (U ⋙ V) W).hom ≫
      (obj (precompose F G) W).whiskerLeft (precomposeObjComp F G U V).hom ≫
        ((obj (precompose F G) W).associator (obj (precompose F G) V) (obj (precompose F G) U)).inv ≫
          whiskerRight (precomposeObjComp F G V W).inv (obj (precompose F G) U) ≫ (precomposeObjComp F G U (V ⋙ W)).inv
have w₁ : ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₇, u₁, u₂, u₃, u₇} F G T) (x_1 : X),
  NatTrans.app (Hom.snd (NatTrans.app (map (precompose F G) (U.associator V W).hom) x)) x_1 =
    (((precomposeObjComp F G (U ⋙ V) W).hom ≫
                (obj (precompose F G) W).whiskerLeft (precomposeObjComp F G U V).hom ≫
                  ((obj (precompose F G) W).associator (obj (precompose F G) V) (obj (precompose F G) U)).inv ≫
                    whiskerRight (precomposeObjComp F G V W).inv (obj (precompose F G) U) ≫
                      (precomposeObjComp F G U (V ⋙ W)).inv).app
            x).snd.app
      x_1
Tactic: ext
-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
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₅
inst_3 : Category.{v₄, u₄} X
inst_4 : Category.{v₅, u₅} Y
U : Functor.{v₄, v₅, u₄, u₅} X Y
⊢ map (precompose F G) U.leftUnitor.hom =
    Iso.hom (precomposeObjComp F G (𝟭 X) U) ≫
      (obj (precompose F G) U).whiskerLeft (Iso.hom (precomposeObjId F G X)) ≫ (obj (precompose F G) U).rightUnitor.hom
have w : ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) (x_1 : X),
  NatTrans.app (Hom.fst (NatTrans.app (map (precompose F G) U.leftUnitor.hom) x)) x_1 =
    ((Iso.hom (precomposeObjComp F G (𝟭 X) U) ≫
                (obj (precompose F G) U).whiskerLeft (Iso.hom (precomposeObjId F G X)) ≫
                  (obj (precompose F G) U).rightUnitor.hom).app
            x).fst.app
      x_1
Tactic: ext
-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
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₅
inst_3 : Category.{v₄, u₄} X
inst_4 : Category.{v₅, u₅} Y
U : Functor.{v₄, v₅, u₄, u₅} X Y
w :
  ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) (x_1 : X),
    NatTrans.app (Hom.fst (NatTrans.app (map (precompose F G) U.leftUnitor.hom) x)) x_1 =
      ((Iso.hom (precomposeObjComp F G (𝟭 X) U) ≫
                  (obj (precompose F G) U).whiskerLeft (Iso.hom (precomposeObjId F G X)) ≫
                    (obj (precompose F G) U).rightUnitor.hom).app
              x).fst.app
        x_1
⊢ map (precompose F G) U.leftUnitor.hom =
    Iso.hom (precomposeObjComp F G (𝟭 X) U) ≫
      (obj (precompose F G) U).whiskerLeft (Iso.hom (precomposeObjId F G X)) ≫ (obj (precompose F G) U).rightUnitor.hom
have w₁ : ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) (x_1 : X),
  NatTrans.app (Hom.snd (NatTrans.app (map (precompose F G) U.leftUnitor.hom) x)) x_1 =
    ((Iso.hom (precomposeObjComp F G (𝟭 X) U) ≫
                (obj (precompose F G) U).whiskerLeft (Iso.hom (precomposeObjId F G X)) ≫
                  (obj (precompose F G) U).rightUnitor.hom).app
            x).snd.app
      x_1
Tactic: ext
-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
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₅
inst_3 : Category.{v₄, u₄} X
inst_4 : Category.{v₅, u₅} Y
U : Functor.{v₄, v₅, u₄, u₅} X Y
⊢ map (precompose F G) U.rightUnitor.hom =
    (precomposeObjComp F G U (𝟭 Y)).hom ≫
      whiskerRight (Iso.hom (precomposeObjId F G Y)) (obj (precompose F G) U) ≫ (obj (precompose F G) U).leftUnitor.hom
have w : ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) (x_1 : X),
  NatTrans.app (Hom.fst (NatTrans.app (map (precompose F G) U.rightUnitor.hom) x)) x_1 =
    (((precomposeObjComp F G U (𝟭 Y)).hom ≫
                whiskerRight (Iso.hom (precomposeObjId F G Y)) (obj (precompose F G) U) ≫
                  (obj (precompose F G) U).leftUnitor.hom).app
            x).fst.app
      x_1
Tactic: ext
-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
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₅
inst_3 : Category.{v₄, u₄} X
inst_4 : Category.{v₅, u₅} Y
U : Functor.{v₄, v₅, u₄, u₅} X Y
w :
  ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) (x_1 : X),
    NatTrans.app (Hom.fst (NatTrans.app (map (precompose F G) U.rightUnitor.hom) x)) x_1 =
      (((precomposeObjComp F G U (𝟭 Y)).hom ≫
                  whiskerRight (Iso.hom (precomposeObjId F G Y)) (obj (precompose F G) U) ≫
                    (obj (precompose F G) U).leftUnitor.hom).app
              x).fst.app
        x_1
⊢ map (precompose F G) U.rightUnitor.hom =
    (precomposeObjComp F G U (𝟭 Y)).hom ≫
      whiskerRight (Iso.hom (precomposeObjId F G Y)) (obj (precompose F G) U) ≫ (obj (precompose F G) U).leftUnitor.hom
have w₁ : ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₅, u₁, u₂, u₃, u₅} F G Y) (x_1 : X),
  NatTrans.app (Hom.snd (NatTrans.app (map (precompose F G) U.rightUnitor.hom) x)) x_1 =
    (((precomposeObjComp F G U (𝟭 Y)).hom ≫
                whiskerRight (Iso.hom (precomposeObjId F G Y)) (obj (precompose F G) U) ≫
                  (obj (precompose F G) U).leftUnitor.hom).app
            x).snd.app
      x_1
Tactic: ext
-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
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
A₁ : Type u₄
B₁ : Type u₅
C₁ : Type u₆
inst_3 : Category.{v₄, u₄} A₁
inst_4 : Category.{v₅, u₅} B₁
inst_5 : 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₈
inst_6 : Category.{v₇, u₇} X
inst_7 : Category.{v₈, u₈} Y
ψ : CatCospanTransform F G F₁ G₁
U : Functor.{v₇, v₈, u₇, u₈} X Y
x y : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y
f : x ⟶ y
⊢ (obj (precompose F G) U ⋙ obj (transform X) ψ).map f ≫
      Iso.hom
        ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
            (mkIso (U.associator x.fst ψ.left) (U.associator x.snd ψ.right) ⋯ :
              (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x ≅
                (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x))
          y) =
    Iso.hom
        ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
            (mkIso (U.associator x.fst ψ.left) (U.associator x.snd ψ.right) ⋯ :
              (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x ≅
                (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x))
          x) ≫
      (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).map f
have h₁ : ∀ (x_1 : X),
  NatTrans.app
      (Hom.fst
        ((obj (precompose F G) U ⋙ obj (transform X) ψ).map f ≫
          Iso.hom
            ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
                (mkIso (U.associator x.fst ψ.left) (U.associator x.snd ψ.right) sorry :
                  (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x ≅
                    (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x))
              y)))
      x_1 =
    NatTrans.app
      (Hom.fst
        (Iso.hom
            ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
                (mkIso (U.associator x.fst ψ.left) (U.associator x.snd ψ.right) sorry :
                  (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x ≅
                    (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x))
              x) ≫
          (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).map f))
      x_1
Tactic: ext
-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
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
A₁ : Type u₄
B₁ : Type u₅
C₁ : Type u₆
inst_3 : Category.{v₄, u₄} A₁
inst_4 : Category.{v₅, u₅} B₁
inst_5 : 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₈
inst_6 : Category.{v₇, u₇} X
inst_7 : Category.{v₈, u₈} Y
ψ : CatCospanTransform F G F₁ G₁
U V : Functor.{v₇, v₈, u₇, u₈} X Y
α : U ⟶ V
⊢ Eq (α := obj (precompose F G) U ⋙ obj (transform X) ψ ⟶ obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) V)
    (whiskerRight (map (precompose F G) α) (obj (transform X) ψ) ≫
      Iso.hom
        (CatCommSq.iso (obj (precompose F G) V) (obj (transform Y) ψ) (obj (transform X) ψ) (obj (precompose F₁ G₁) V)))
    (Iso.hom
        (CatCommSq.iso (obj (precompose F G) U) (obj (transform Y) ψ) (obj (transform X) ψ)
          (obj (precompose F₁ G₁) U)) ≫
      whiskerLeft (obj (transform Y) ψ) (map (precompose F₁ G₁) α))
have w : ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) (x_1 : X),
  Eq (α :=
    ((obj (precompose F G) U ⋙ obj (transform X) ψ).obj x).fst.obj x_1 ⟶
      ((obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) V).obj x).fst.obj x_1)
    (NatTrans.app
      (Hom.fst
        (NatTrans.app
          (whiskerRight (map (precompose F G) α) (obj (transform X) ψ) ≫
            Iso.hom
              (CatCommSq.iso (obj (precompose F G) V) (obj (transform Y) ψ) (obj (transform X) ψ)
                (obj (precompose F₁ G₁) V)))
          x))
      x_1)
    (NatTrans.app
      (Hom.fst
        (NatTrans.app
          (Iso.hom
              (CatCommSq.iso (obj (precompose F G) U) (obj (transform Y) ψ) (obj (transform X) ψ)
                (obj (precompose F₁ G₁) U)) ≫
            whiskerLeft (obj (transform Y) ψ) (map (precompose F₁ G₁) α))
          x))
      x_1)
Tactic: ext
-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
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
A₁ : Type u₄
B₁ : Type u₅
C₁ : Type u₆
inst_3 : Category.{v₄, u₄} A₁
inst_4 : Category.{v₅, u₅} B₁
inst_5 : 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₈
inst_6 : Category.{v₇, u₇} X
inst_7 : Category.{v₈, u₈} Y
ψ : CatCospanTransform F G F₁ G₁
U V : Functor.{v₇, v₈, u₇, u₈} X Y
α : U ⟶ V
w :
  ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) (x_1 : X),
    Eq (α :=
      ((obj (precompose F G) U ⋙ obj (transform X) ψ).obj x).fst.obj x_1 ⟶
        ((obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) V).obj x).fst.obj x_1)
      (NatTrans.app
        (Hom.fst
          (NatTrans.app
            (whiskerRight (map (precompose F G) α) (obj (transform X) ψ) ≫
              Iso.hom
                (CatCommSq.iso (obj (precompose F G) V) (obj (transform Y) ψ) (obj (transform X) ψ)
                  (obj (precompose F₁ G₁) V)))
            x))
        x_1)
      (NatTrans.app
        (Hom.fst
          (NatTrans.app
            (Iso.hom
                (CatCommSq.iso (obj (precompose F G) U) (obj (transform Y) ψ) (obj (transform X) ψ)
                  (obj (precompose F₁ G₁) U)) ≫
              whiskerLeft (obj (transform Y) ψ) (map (precompose F₁ G₁) α))
            x))
        x_1)
⊢ Eq (α := obj (precompose F G) U ⋙ obj (transform X) ψ ⟶ obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) V)
    (whiskerRight (map (precompose F G) α) (obj (transform X) ψ) ≫
      Iso.hom
        (CatCommSq.iso (obj (precompose F G) V) (obj (transform Y) ψ) (obj (transform X) ψ) (obj (precompose F₁ G₁) V)))
    (Iso.hom
        (CatCommSq.iso (obj (precompose F G) U) (obj (transform Y) ψ) (obj (transform X) ψ)
          (obj (precompose F₁ G₁) U)) ≫
      whiskerLeft (obj (transform Y) ψ) (map (precompose F₁ G₁) α))
have w₁ : ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) (x_1 : X),
  Eq (α :=
    ((obj (precompose F G) U ⋙ obj (transform X) ψ).obj x).snd.obj x_1 ⟶
      ((obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) V).obj x).snd.obj x_1)
    (NatTrans.app
      (Hom.snd
        (NatTrans.app
          (whiskerRight (map (precompose F G) α) (obj (transform X) ψ) ≫
            Iso.hom
              (CatCommSq.iso (obj (precompose F G) V) (obj (transform Y) ψ) (obj (transform X) ψ)
                (obj (precompose F₁ G₁) V)))
          x))
      x_1)
    (NatTrans.app
      (Hom.snd
        (NatTrans.app
          (Iso.hom
              (CatCommSq.iso (obj (precompose F G) U) (obj (transform Y) ψ) (obj (transform X) ψ)
                (obj (precompose F₁ G₁) U)) ≫
            whiskerLeft (obj (transform Y) ψ) (map (precompose F₁ G₁) α))
          x))
      x_1)
Tactic: ext
-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
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
A₁ : Type u₄
B₁ : Type u₅
C₁ : Type u₆
inst_3 : Category.{v₄, u₄} A₁
inst_4 : Category.{v₅, u₅} B₁
inst_5 : Category.{v₆, u₆} C₁
F₁ : Functor.{v₄, v₅, u₄, u₅} A₁ B₁
G₁ : Functor.{v₆, v₅, u₆, u₅} C₁ B₁
ψ : CatCospanTransform F G F₁ G₁
X : Type u₇
inst_6 : Category.{v₇, u₇} X
⊢ Eq (α :=
    Quiver.Hom (V :=
      CatCommSqOver.{v₁, v₂, v₃, v₇, u₁, u₂, u₃, u₇} F G X ⥤ CatCommSqOver.{v₄, v₅, v₆, v₇, u₄, u₅, u₆, u₇} F₁ G₁ X)
      (obj (precompose F G) (𝟭 X) ⋙ obj (transform X) ψ)
      (obj (transform X) ψ ⋙ 𝟭 (CatCommSqOver.{v₄, v₅, v₆, v₇, u₄, u₅, u₆, u₇} F₁ G₁ X)))
    (Iso.hom
        (CatCommSq.iso (obj (precompose F G) (𝟭 X)) (obj (transform X) ψ) (obj (transform X) ψ)
          (obj (precompose F₁ G₁) (𝟭 X))) ≫
      whiskerLeft (obj (transform X) ψ) (Iso.hom (precomposeObjId F₁ G₁ X)))
    (whiskerRight (Iso.hom (precomposeObjId F G X)) (obj (transform X) ψ) ≫
      Iso.hom (leftUnitor (obj (transform X) ψ)) ≫ Iso.inv (rightUnitor (obj (transform X) ψ)))
have w : ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₇, u₁, u₂, u₃, u₇} F G X) (x_1 : X),
  Eq (α :=
    (obj (obj (precompose F G) (𝟭 X) ⋙ obj (transform X) ψ) x).fst.obj x_1 ⟶
      (obj (obj (transform X) ψ ⋙ 𝟭 (CatCommSqOver.{v₄, v₅, v₆, v₇, u₄, u₅, u₆, u₇} F₁ G₁ X)) x).fst.obj x_1)
    (NatTrans.app
      (Hom.fst
        (NatTrans.app
          (Iso.hom
              (CatCommSq.iso (obj (precompose F G) (𝟭 X)) (obj (transform X) ψ) (obj (transform X) ψ)
                (obj (precompose F₁ G₁) (𝟭 X))) ≫
            whiskerLeft (obj (transform X) ψ) (Iso.hom (precomposeObjId F₁ G₁ X)))
          x))
      x_1)
    (NatTrans.app
      (Hom.fst
        (NatTrans.app
          (whiskerRight (Iso.hom (precomposeObjId F G X)) (obj (transform X) ψ) ≫
            Iso.hom (leftUnitor (obj (transform X) ψ)) ≫ Iso.inv (rightUnitor (obj (transform X) ψ)))
          x))
      x_1)
Tactic: ext
-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
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
A₁ : Type u₄
B₁ : Type u₅
C₁ : Type u₆
inst_3 : Category.{v₄, u₄} A₁
inst_4 : Category.{v₅, u₅} B₁
inst_5 : Category.{v₆, u₆} C₁
F₁ : Functor.{v₄, v₅, u₄, u₅} A₁ B₁
G₁ : Functor.{v₆, v₅, u₆, u₅} C₁ B₁
ψ : CatCospanTransform F G F₁ G₁
X : Type u₇
inst_6 : Category.{v₇, u₇} X
w :
  ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₇, u₁, u₂, u₃, u₇} F G X) (x_1 : X),
    Eq (α :=
      (obj (obj (precompose F G) (𝟭 X) ⋙ obj (transform X) ψ) x).fst.obj x_1 ⟶
        (obj (obj (transform X) ψ ⋙ 𝟭 (CatCommSqOver.{v₄, v₅, v₆, v₇, u₄, u₅, u₆, u₇} F₁ G₁ X)) x).fst.obj x_1)
      (NatTrans.app
        (Hom.fst
          (NatTrans.app
            (Iso.hom
                (CatCommSq.iso (obj (precompose F G) (𝟭 X)) (obj (transform X) ψ) (obj (transform X) ψ)
                  (obj (precompose F₁ G₁) (𝟭 X))) ≫
              whiskerLeft (obj (transform X) ψ) (Iso.hom (precomposeObjId F₁ G₁ X)))
            x))
        x_1)
      (NatTrans.app
        (Hom.fst
          (NatTrans.app
            (whiskerRight (Iso.hom (precomposeObjId F G X)) (obj (transform X) ψ) ≫
              Iso.hom (leftUnitor (obj (transform X) ψ)) ≫ Iso.inv (rightUnitor (obj (transform X) ψ)))
            x))
        x_1)
⊢ Eq (α :=
    Quiver.Hom (V :=
      CatCommSqOver.{v₁, v₂, v₃, v₇, u₁, u₂, u₃, u₇} F G X ⥤ CatCommSqOver.{v₄, v₅, v₆, v₇, u₄, u₅, u₆, u₇} F₁ G₁ X)
      (obj (precompose F G) (𝟭 X) ⋙ obj (transform X) ψ)
      (obj (transform X) ψ ⋙ 𝟭 (CatCommSqOver.{v₄, v₅, v₆, v₇, u₄, u₅, u₆, u₇} F₁ G₁ X)))
    (Iso.hom
        (CatCommSq.iso (obj (precompose F G) (𝟭 X)) (obj (transform X) ψ) (obj (transform X) ψ)
          (obj (precompose F₁ G₁) (𝟭 X))) ≫
      whiskerLeft (obj (transform X) ψ) (Iso.hom (precomposeObjId F₁ G₁ X)))
    (whiskerRight (Iso.hom (precomposeObjId F G X)) (obj (transform X) ψ) ≫
      Iso.hom (leftUnitor (obj (transform X) ψ)) ≫ Iso.inv (rightUnitor (obj (transform X) ψ)))
have w₁ : ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₇, u₁, u₂, u₃, u₇} F G X) (x_1 : X),
  Eq (α :=
    (obj (obj (precompose F G) (𝟭 X) ⋙ obj (transform X) ψ) x).snd.obj x_1 ⟶
      (obj (obj (transform X) ψ ⋙ 𝟭 (CatCommSqOver.{v₄, v₅, v₆, v₇, u₄, u₅, u₆, u₇} F₁ G₁ X)) x).snd.obj x_1)
    (NatTrans.app
      (Hom.snd
        (NatTrans.app
          (Iso.hom
              (CatCommSq.iso (obj (precompose F G) (𝟭 X)) (obj (transform X) ψ) (obj (transform X) ψ)
                (obj (precompose F₁ G₁) (𝟭 X))) ≫
            whiskerLeft (obj (transform X) ψ) (Iso.hom (precomposeObjId F₁ G₁ X)))
          x))
      x_1)
    (NatTrans.app
      (Hom.snd
        (NatTrans.app
          (whiskerRight (Iso.hom (precomposeObjId F G X)) (obj (transform X) ψ) ≫
            Iso.hom (leftUnitor (obj (transform X) ψ)) ≫ Iso.inv (rightUnitor (obj (transform X) ψ)))
          x))
      x_1)
Tactic: ext
-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
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
A₁ : Type u₄
B₁ : Type u₅
C₁ : Type u₆
inst_3 : Category.{v₄, u₄} A₁
inst_4 : Category.{v₅, u₅} B₁
inst_5 : 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₈
inst_6 : Category.{v₇, u₇} X
inst_7 : Category.{v₈, u₈} Y
U : Functor.{v₇, v₈, u₇, u₈} X Y
ψ : CatCospanTransform F G F₁ G₁
x y : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y
f : x ⟶ y
⊢ (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).map f ≫
      Iso.hom
        ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
            (mkIso (U.associator x.fst ψ.left).symm (U.associator x.snd ψ.right).symm ⋯ :
              (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x ≅
                (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x))
          y) =
    Iso.hom
        ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
            (mkIso (U.associator x.fst ψ.left).symm (U.associator x.snd ψ.right).symm ⋯ :
              (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x ≅
                (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x))
          x) ≫
      (obj (precompose F G) U ⋙ obj (transform X) ψ).map f
have h₁ : ∀ (x_1 : X),
  NatTrans.app
      (Hom.fst
        ((obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).map f ≫
          Iso.hom
            ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
                (mkIso (U.associator x.fst ψ.left).symm (U.associator x.snd ψ.right).symm sorry :
                  (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x ≅
                    (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x))
              y)))
      x_1 =
    NatTrans.app
      (Hom.fst
        (Iso.hom
            ((fun (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) ↦
                (mkIso (U.associator x.fst ψ.left).symm (U.associator x.snd ψ.right).symm sorry :
                  (obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x ≅
                    (obj (precompose F G) U ⋙ obj (transform X) ψ).obj x))
              x) ≫
          (obj (precompose F G) U ⋙ obj (transform X) ψ).map f))
      x_1
Tactic: ext
-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Pullback.Categorical.Basic (goal)
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
A₁ : Type u₄
B₁ : Type u₅
C₁ : Type u₆
inst_3 : Category.{v₄, u₄} A₁
inst_4 : Category.{v₅, u₅} B₁
inst_5 : 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₈
inst_6 : Category.{v₇, u₇} X
inst_7 : Category.{v₈, u₈} Y
U : Functor.{v₇, v₈, u₇, u₈} X Y
ψ ψ' : CatCospanTransform F G F₁ G₁
η : ψ ⟶ ψ'
⊢ Eq (α := obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U ⟶ obj (precompose F G) U ⋙ obj (transform X) ψ')
    (whiskerRight (map (transform Y) η) (obj (precompose F₁ G₁) U) ≫
      Iso.hom
        (CatCommSq.iso (obj (transform Y) ψ') (obj (precompose F G) U) (obj (precompose F₁ G₁) U)
          (obj (transform X) ψ')))
    (Iso.hom
        (CatCommSq.iso (obj (transform Y) ψ) (obj (precompose F G) U) (obj (precompose F₁ G₁) U)
          (obj (transform X) ψ)) ≫
      (obj (precompose F G) U).whiskerLeft (map (transform X) η))
have w : ∀ (x : CatCommSqOver.{v₁, v₂, v₃, v₈, u₁, u₂, u₃, u₈} F G Y) (x_1 : X),
  Eq (α :=
    ((obj (transform Y) ψ ⋙ obj (precompose F₁ G₁) U).obj x).fst.obj x_1 ⟶
      ((obj (precompose F G) U ⋙ obj (transform X) ψ').obj x).fst.obj x_1)
    (NatTrans.app
      (Hom.fst
        (NatTrans.app
          (whiskerRight (map (transform Y) η) (obj (precompose F₁ G₁) U) ≫
            Iso.hom
              (CatCommSq.iso (obj (transform Y) ψ') (obj (precompose F G) U) (obj (precompose F₁ G₁) U)
                (obj (transform X) ψ')))
          x))
      x_1)
    (NatTrans.app
      (Hom.fst
        (NatTrans.app
          (Iso.hom
              (CatCommSq.iso (obj (transform Y) ψ) (obj (precompose F G) U) (obj (precompose F₁ G₁) U)
                (obj (transform X) ψ)) ≫
            (obj (precompose F G) U).whiskerLeft (map (transform X) η))
          x))
      x_1)
Tactic: ext