-- Lean 4 proof step from Mathlib.CategoryTheory.Sites.Point.Basic (hypothesis)
Goal:
C : Type u
inst : Category.{v, u} C
J : GrothendieckTopology.{v, u} C
Φ : Point.{w, v, u} J
A : Type u'
inst_1 : Category.{v', u'} A
inst_2 : HasColimitsOfSize.{w, w, v', u'} A
FC : A → A → Type u_1
CC : A → Type w'
inst_3 : (X Y : A) → FunLike.{u_1 + 1, w' + 1, w' + 1} (FC X Y) (CC X) (CC Y)
inst_4 : ConcreteCategory.{w', v', u', u_1} A FC (CC := CC)
P Q : Functor.{v, v', u, u'} Cᵒᵖ A
inst_5 : PreservesFilteredColimitsOfSize.{w, w, v', w', u', w' + 1} (forget A (FC := FC) (CC := CC))
inst_6 : LocallySmall.{w, v, u} C
f : P ⟶ Q
inst_7 : Presheaf.IsLocallyInjective (FD := FC) (CD := CC) J f
this :
  ∀ (X : C) (x : Φ.fiber.obj X) (p₁ p₂ : ToType.{w', v', u', u_1} (FC := FC) (CC := CC) (P.obj (op X)))
    (hp :
      Eq (α := CC (Q.obj (op X)))
        ((ConcreteCategory.hom (FC := FC) (CC := CC) (f.app (op X)) : (a : CC (P.obj (op X))) → CC (Q.obj (op X))) p₁ :
          CC (Q.obj (op X)))
        ((ConcreteCategory.hom (FC := FC) (CC := CC) (f.app (op X)) : (a : CC (P.obj (op X))) → CC (Q.obj (op X))) p₂ :
          CC (Q.obj (op X)))),
    Eq (α := CC (Functor.obj Φ.presheafFiber P))
      ((ConcreteCategory.hom (FC := FC) (CC := CC) (Φ.toPresheafFiber X x P) :
            (a : CC (P.obj (op X))) → CC (Φ.presheafFiber.obj P))
          p₁ :
        CC (Functor.obj Φ.presheafFiber P))
      ((ConcreteCategory.hom (FC := FC) (CC := CC) (Φ.toPresheafFiber X x P) :
            (a : CC (P.obj (op X))) → CC (Φ.presheafFiber.obj P))
          p₂ :
        CC (Functor.obj Φ.presheafFiber P))
X : C
p₁ p₂ : ToType.{w', v', u', u_1} (FC := FC) (CC := CC) (P.obj (op X))
Y : C
g : Y ⟶ X
y : Φ.fiber.obj Y
h :
  Eq (α := CC (Q.obj (op Y)))
    ((ConcreteCategory.hom (FC := FC) (CC := CC) (Q.map g.op) : (a : CC (Q.obj (op X))) → CC (Q.obj (op Y)))
        ((ConcreteCategory.hom (FC := FC) (CC := CC) (f.app (op X)) : (a : CC (P.obj (op X))) → CC (Q.obj (op X))) p₁ :
          CC (Q.obj (op X))) :
      CC (Q.obj (op Y)))
    ((ConcreteCategory.hom (FC := FC) (CC := CC) (Q.map g.op) : (a : CC (Q.obj (op X))) → CC (Q.obj (op Y)))
        ((ConcreteCategory.hom (FC := FC) (CC := CC) (f.app (op X)) : (a : CC (P.obj (op X))) → CC (Q.obj (op X))) p₂ :
          CC (Q.obj (op X))) :
      CC (Q.obj (op Y)))
⊢ Eq (α := CC (Functor.obj Φ.presheafFiber P))
    ((ConcreteCategory.hom (FC := FC) (CC := CC)
            (Φ.toPresheafFiber X
              ((ConcreteCategory.hom (FC := TypeCat.Fun) (Φ.fiber.map g) : (a : Φ.fiber.obj Y) → Φ.fiber.obj X) y) P) :
          (a : CC (P.obj (op X))) → CC (Φ.presheafFiber.obj P))
        p₁ :
      CC (Functor.obj Φ.presheafFiber P))
    ((ConcreteCategory.hom (FC := FC) (CC := CC)
            (Φ.toPresheafFiber X
              ((ConcreteCategory.hom (FC := TypeCat.Fun) (Φ.fiber.map g) : (a : Φ.fiber.obj Y) → Φ.fiber.obj X) y) P) :
          (a : CC (P.obj (op X))) → CC (Φ.presheafFiber.obj P))
        p₂ :
      CC (Functor.obj Φ.presheafFiber P))
have h₁ : Eq (α := CC (Q.obj (op Y)))
  ((ConcreteCategory.hom (FC := FC) (CC := CC) (f.app (op Y)) : (a : CC (P.obj (op Y))) → CC (Q.obj (op Y)))
      ((ConcreteCategory.hom (FC := FC) (CC := CC) (P.map g.op) : (a : CC (P.obj (op X))) → CC (P.obj (op Y))) p₁ :
        CC (P.obj (op Y))) :
    CC (Q.obj (op Y)))
  ((ConcreteCategory.hom (FC := FC) (CC := CC) (f.app (op Y)) : (a : CC (P.obj (op Y))) → CC (Q.obj (op Y)))
      ((ConcreteCategory.hom (FC := FC) (CC := CC) (P.map g.op) : (a : CC (P.obj (op X))) → CC (P.obj (op Y))) p₂ :
        CC (P.obj (op Y))) :
    CC (Q.obj (op Y)))
Tactic: simp only [← NatTrans.naturality_apply] at h
Cleared hypotheses: h