-- Lean 4 proof step from Mathlib.AlgebraicGeometry.Properties (hypothesis)
Goal:
X_1 X Y : Scheme
f : X ⟶ Y
inst : IsOpenImmersion f
hX : IsReduced Y
s : (↑Γ(Y, Scheme.Hom.opensRange f) : Type u_1)
hs : Y.basicOpen s = ⊥
x : ↥X
this : IsReduced X
H_1 :
  Eq (α := (↑(X.sheaf.presheaf.stalk x) : Type u_1))
    ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
            CommRingCat.carrier) (X := X.sheaf.presheaf.obj (op (f ⁻¹ᵁ Scheme.Hom.opensRange f))) (Y :=
            X.sheaf.presheaf.stalk x) (X.sheaf.presheaf.germ (f ⁻¹ᵁ Scheme.Hom.opensRange f) x ⋯) :
          (a : (↑(X.sheaf.presheaf.obj (op (f ⁻¹ᵁ Scheme.Hom.opensRange f))) : Type u_1)) →
            (↑(X.sheaf.presheaf.stalk x) : Type u_1))
        ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
                CommRingCat.carrier) (X := Γ(Y, Scheme.Hom.opensRange f)) (Scheme.Hom.app f (Scheme.Hom.opensRange f)) :
              (a : (↑Γ(Y, Scheme.Hom.opensRange f) : Type u_1)) → (↑Γ(X, f ⁻¹ᵁ Scheme.Hom.opensRange f) : Type u_1))
            s :
          (↑Γ(X, f ⁻¹ᵁ Scheme.Hom.opensRange f) : Type u_1)) :
      (↑(X.sheaf.presheaf.stalk x) : Type u_1))
    (0 : (↑(X.sheaf.presheaf.stalk x) : Type u_1))
H :
  Eq (α := (↑(X.presheaf.stalk x) : Type u_1))
    ((CommRingCat.Hom.hom (X.presheaf.germ (f ⁻¹ᵁ Scheme.Hom.opensRange f) x ⋯) :
          (a : (↑(X.presheaf.obj (op (f ⁻¹ᵁ Scheme.Hom.opensRange f))) : Type u_1)) →
            (↑(X.presheaf.stalk x) : Type u_1))
        ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
                CommRingCat.carrier) (X := Γ(Y, Scheme.Hom.opensRange f)) (Scheme.Hom.app f (Scheme.Hom.opensRange f)) :
              (a : (↑Γ(Y, Scheme.Hom.opensRange f) : Type u_1)) → (↑Γ(X, f ⁻¹ᵁ Scheme.Hom.opensRange f) : Type u_1))
            s :
          (↑Γ(X, f ⁻¹ᵁ Scheme.Hom.opensRange f) : Type u_1)) :
      (↑(X.presheaf.stalk x) : Type u_1))
    (0 : (↑(X.presheaf.stalk x) : Type u_1))
⊢ Eq (α := (↑(Y.sheaf.presheaf.stalk (f x)) : Type u_1))
    ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
            CommRingCat.carrier) (X := Y.sheaf.presheaf.obj (op (Scheme.Hom.opensRange f))) (Y :=
            Y.sheaf.presheaf.stalk (f x)) (Y.sheaf.presheaf.germ (Scheme.Hom.opensRange f) (f x) ⋯) :
          (a : (↑(Y.sheaf.presheaf.obj (op (Scheme.Hom.opensRange f))) : Type u_1)) →
            (↑(Y.sheaf.presheaf.stalk (f x)) : Type u_1))
        s :
      (↑(Y.sheaf.presheaf.stalk (f x)) : Type u_1))
    (0 : (↑(Y.sheaf.presheaf.stalk (f x)) : Type u_1))
have H₁ : Eq (α := (↑(X.presheaf.stalk x) : Type u_1))
  ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
          CommRingCat.carrier) (Scheme.Hom.stalkMap f x) :
        (a : (↑(Y.presheaf.stalk (f x)) : Type u_1)) → (↑(X.presheaf.stalk x) : Type u_1))
      ((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u_1}) ↦ (↑R : Type u_1) →+* (↑S : Type u_1)) (CC :=
              CommRingCat.carrier) (X :=
              Y.presheaf.obj (op { carrier := (Scheme.Hom.opensRange f).carrier, is_open' := sorry })) (Y :=
              Y.presheaf.stalk (f x))
              (Y.presheaf.germ { carrier := (Scheme.Hom.opensRange f).carrier, is_open' := sorry } (f x) sorry) :
            (a : (↑(Y.presheaf.obj (op { carrier := (Scheme.Hom.opensRange f).carrier, is_open' := sorry })) : Type u_1)) →
              (↑(Y.presheaf.stalk (f x)) : Type u_1))
          s :
        (↑(Y.presheaf.stalk (f x)) : Type u_1)) :
    (↑(X.presheaf.stalk x) : Type u_1))
  (0 : (↑(X.presheaf.stalk x) : Type u_1))
Tactic: rw [← Scheme.Hom.germ_stalkMap_apply f ⟨_, _⟩ x] at H
Cleared hypotheses: H