-- Module: Mathlib.AlgebraicGeometry.Spec
Goal:
R S : CommRingCat
f : R ⟶ S
p : PrimeSpectrum (↑R : Type u)
inst : Algebra (↑R : Type u) (↑S : Type u)
x : (↑S : Type u)
hx :
  Eq (α :=
    (↑(TopCat.Presheaf.stalk
          (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
            (TopCat.Presheaf.pushforward CommRingCat
              (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
            (ObjectProperty.FullSubcategory.obj (P :=
              Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
              (structureSheaf (↑S : Type u))))
          p) :
      Type u))
    (((CommRingCat.Hom.hom'
              (TopCat.Presheaf.germ
                (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
                  (TopCat.Presheaf.pushforward CommRingCat
                    (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                  (ObjectProperty.FullSubcategory.obj (P :=
                    Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
                    (structureSheaf (↑S : Type u))))
                ⊤ p trivial) :
            (↑(CommRingCat.of
                    (Functor.obj (C := (TopologicalSpace.Opens (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u))ᵒᵖ)
                      (ObjectProperty.FullSubcategory.obj (P :=
                        Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
                        (structureSheafInType (↑S : Type u) (↑S : Type u)))
                      (op
                        (Functor.obj (C := TopologicalSpace.Opens (PrimeSpectrum (↑R : Type u)))
                          (TopologicalSpace.Opens.map
                            (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                          ⊤)))) :
                Type u) →+*
              (↑(TopCat.Presheaf.stalk
                    (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
                      (TopCat.Presheaf.pushforward CommRingCat
                        (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                      (ObjectProperty.FullSubcategory.obj (P :=
                        Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
                        (structureSheaf (↑S : Type u))))
                    p) :
                Type u)) :
          (a :
              (structureSheafInType (↑S : Type u) (↑S : Type u)).obj.obj
                (op
                  ((TopologicalSpace.Opens.map
                        (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))).obj
                    ⊤))) →
            (↑(((TopCat.Presheaf.pushforward CommRingCat
                          (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))).obj
                      (structureSheaf (↑S : Type u)).obj).stalk
                  p) :
              Type u))
        ((CommRingCat.Hom.hom'
                (CommRingCat.ofHom
                  (algebraMap (↑S : Type u)
                    (Functor.obj (C := (TopologicalSpace.Opens (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u))ᵒᵖ)
                      (ObjectProperty.FullSubcategory.obj (P :=
                        Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
                        (structureSheafInType (↑S : Type u) (↑S : Type u)))
                      (op
                        (Functor.obj (C := TopologicalSpace.Opens (PrimeSpectrum (↑R : Type u)))
                          (TopologicalSpace.Opens.map
                            (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                          ⊤))))) :
              (a : (↑S : Type u)) →
                (structureSheafInType (↑S : Type u) (↑S : Type u)).obj.obj
                  (op
                    ((TopologicalSpace.Opens.map
                          (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))).obj
                      ⊤)))
            x :
          Functor.obj (C := (TopologicalSpace.Opens (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u))ᵒᵖ)
            (ObjectProperty.FullSubcategory.obj (P :=
              Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
              (structureSheafInType (↑S : Type u) (↑S : Type u)))
            (op
              (Functor.obj (C := TopologicalSpace.Opens (PrimeSpectrum (↑R : Type u)))
                (TopologicalSpace.Opens.map (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                ⊤))) :
      (↑(TopCat.Presheaf.stalk
            (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
              (TopCat.Presheaf.pushforward CommRingCat
                (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
              (ObjectProperty.FullSubcategory.obj (P :=
                Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
                (structureSheaf (↑S : Type u))))
            p) :
        Type u))
    ((CommRingCat.Hom.hom
            (CategoryStruct.comp (Y :=
              CommRingCat.of
                (Functor.obj (C :=
                  (TopologicalSpace.Opens (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u))ᵒᵖ)
                  (ObjectProperty.FullSubcategory.obj (P :=
                    Presheaf.IsSheaf
                      (Opens.grothendieckTopology
                        (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u)))
                    (structureSheafInType (↑(CommRingCat.of (↑S : Type u)) : Type u)
                      (↑(CommRingCat.of (↑S : Type u)) : Type u)))
                  (Functor.obj (C :=
                    (TopologicalSpace.Opens (↑(Spec.topObj (CommRingCat.of (↑R : Type u))) : Type u))ᵒᵖ)
                    (Functor.op
                      (TopologicalSpace.Opens.map
                        (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))))
                    (op ⊤))))
              (CommRingCat.ofHom
                (algebraMap (↑(CommRingCat.of (↑S : Type u)) : Type u)
                  (Functor.obj (C :=
                    (TopologicalSpace.Opens
                        (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u))ᵒᵖ)
                    (ObjectProperty.FullSubcategory.obj (P :=
                      Presheaf.IsSheaf
                        (Opens.grothendieckTopology
                          (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u)))
                      (structureSheafInType (↑(CommRingCat.of (↑S : Type u)) : Type u)
                        (↑(CommRingCat.of (↑S : Type u)) : Type u)))
                    (Functor.obj (C :=
                      (TopologicalSpace.Opens (↑(Spec.topObj (CommRingCat.of (↑R : Type u))) : Type u))ᵒᵖ)
                      (Functor.op
                        (TopologicalSpace.Opens.map
                          (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))))
                      (op ⊤)))))
              (TopCat.Presheaf.germ
                (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
                  (TopCat.Presheaf.pushforward CommRingCat
                    (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                  (ObjectProperty.FullSubcategory.obj (P :=
                    Presheaf.IsSheaf
                      (Opens.grothendieckTopology
                        (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u)))
                    (structureSheaf (↑(CommRingCat.of (↑S : Type u)) : Type u))))
                ⊤ p trivial)) :
          (a : (↑(CommRingCat.of (↑S : Type u)) : Type u)) →
            (↑(((TopCat.Presheaf.pushforward CommRingCat
                          (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))).obj
                      (structureSheaf (↑(CommRingCat.of (↑S : Type u)) : Type u)).obj).stalk
                  p) :
              Type u))
        0 :
      (↑(TopCat.Presheaf.stalk
            (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
              (TopCat.Presheaf.pushforward CommRingCat
                (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
              (ObjectProperty.FullSubcategory.obj (P :=
                Presheaf.IsSheaf
                  (Opens.grothendieckTopology
                    (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u)))
                (structureSheaf (↑(CommRingCat.of (↑S : Type u)) : Type u))))
            p) :
        Type u))
⊢ Eq (α :=
    (↑(TopCat.Presheaf.stalk
          (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
            (TopCat.Presheaf.pushforward CommRingCat
              (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
            (ObjectProperty.FullSubcategory.obj (P :=
              Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
              (structureSheaf (↑S : Type u))))
          p) :
      Type u))
    (((CommRingCat.Hom.hom'
              (TopCat.Presheaf.germ
                (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
                  (TopCat.Presheaf.pushforward CommRingCat
                    (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                  (ObjectProperty.FullSubcategory.obj (P :=
                    Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
                    (structureSheaf (↑S : Type u))))
                ⊤ p trivial) :
            (↑(CommRingCat.of
                    (Functor.obj (C := (TopologicalSpace.Opens (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u))ᵒᵖ)
                      (ObjectProperty.FullSubcategory.obj (P :=
                        Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
                        (structureSheafInType (↑S : Type u) (↑S : Type u)))
                      (op
                        (Functor.obj (C := TopologicalSpace.Opens (PrimeSpectrum (↑R : Type u)))
                          (TopologicalSpace.Opens.map
                            (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                          ⊤)))) :
                Type u) →+*
              (↑(TopCat.Presheaf.stalk
                    (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
                      (TopCat.Presheaf.pushforward CommRingCat
                        (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                      (ObjectProperty.FullSubcategory.obj (P :=
                        Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
                        (structureSheaf (↑S : Type u))))
                    p) :
                Type u)) :
          (a :
              (structureSheafInType (↑S : Type u) (↑S : Type u)).obj.obj
                (op
                  ((TopologicalSpace.Opens.map
                        (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))).obj
                    ⊤))) →
            (↑(((TopCat.Presheaf.pushforward CommRingCat
                          (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))).obj
                      (structureSheaf (↑S : Type u)).obj).stalk
                  p) :
              Type u))
        ((CommRingCat.Hom.hom'
                (CommRingCat.ofHom
                  (algebraMap (↑S : Type u)
                    (Functor.obj (C := (TopologicalSpace.Opens (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u))ᵒᵖ)
                      (ObjectProperty.FullSubcategory.obj (P :=
                        Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
                        (structureSheafInType (↑S : Type u) (↑S : Type u)))
                      (op
                        (Functor.obj (C := TopologicalSpace.Opens (PrimeSpectrum (↑R : Type u)))
                          (TopologicalSpace.Opens.map
                            (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                          ⊤))))) :
              (a : (↑S : Type u)) →
                (structureSheafInType (↑S : Type u) (↑S : Type u)).obj.obj
                  (op
                    ((TopologicalSpace.Opens.map
                          (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))).obj
                      ⊤)))
            x :
          Functor.obj (C := (TopologicalSpace.Opens (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u))ᵒᵖ)
            (ObjectProperty.FullSubcategory.obj (P :=
              Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
              (structureSheafInType (↑S : Type u) (↑S : Type u)))
            (op
              (Functor.obj (C := TopologicalSpace.Opens (PrimeSpectrum (↑R : Type u)))
                (TopologicalSpace.Opens.map (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                ⊤))) :
      (↑(TopCat.Presheaf.stalk
            (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
              (TopCat.Presheaf.pushforward CommRingCat
                (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
              (ObjectProperty.FullSubcategory.obj (P :=
                Presheaf.IsSheaf (Opens.grothendieckTopology (↑(PrimeSpectrum.Top (↑S : Type u)) : Type u)))
                (structureSheaf (↑S : Type u))))
            p) :
        Type u))
    (((ConcreteCategory.hom (FC := fun (R S : CommRingCat.{u}) ↦ (↑R : Type u) →+* (↑S : Type u)) (CC :=
              CommRingCat.carrier) (X :=
              CommRingCat.of
                (Functor.obj (C :=
                  (TopologicalSpace.Opens (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u))ᵒᵖ)
                  (ObjectProperty.FullSubcategory.obj (P :=
                    Presheaf.IsSheaf
                      (Opens.grothendieckTopology
                        (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u)))
                    (structureSheafInType (↑(CommRingCat.of (↑S : Type u)) : Type u)
                      (↑(CommRingCat.of (↑S : Type u)) : Type u)))
                  (Functor.obj (C :=
                    (TopologicalSpace.Opens (↑(Spec.topObj (CommRingCat.of (↑R : Type u))) : Type u))ᵒᵖ)
                    (Functor.op
                      (TopologicalSpace.Opens.map
                        (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))))
                    (op ⊤))))
              (Y :=
              TopCat.Presheaf.stalk
                (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
                  (TopCat.Presheaf.pushforward CommRingCat
                    (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                  (ObjectProperty.FullSubcategory.obj (P :=
                    Presheaf.IsSheaf
                      (Opens.grothendieckTopology
                        (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u)))
                    (structureSheaf (↑(CommRingCat.of (↑S : Type u)) : Type u))))
                p)
              (TopCat.Presheaf.germ
                  (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
                    (TopCat.Presheaf.pushforward CommRingCat
                      (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                    (ObjectProperty.FullSubcategory.obj (P :=
                      Presheaf.IsSheaf
                        (Opens.grothendieckTopology
                          (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u)))
                      (structureSheaf (↑(CommRingCat.of (↑S : Type u)) : Type u))))
                  ⊤ p trivial :
                Functor.obj (C := (TopologicalSpace.Opens (↑(Spec.topObj (CommRingCat.of (↑R : Type u))) : Type u))ᵒᵖ)
                    (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
                      (TopCat.Presheaf.pushforward CommRingCat
                        (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                      (ObjectProperty.FullSubcategory.obj (P :=
                        Presheaf.IsSheaf
                          (Opens.grothendieckTopology
                            (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u)))
                        (structureSheaf (↑(CommRingCat.of (↑S : Type u)) : Type u))))
                    (op ⊤) ⟶
                  TopCat.Presheaf.stalk
                    (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
                      (TopCat.Presheaf.pushforward CommRingCat
                        (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                      (ObjectProperty.FullSubcategory.obj (P :=
                        Presheaf.IsSheaf
                          (Opens.grothendieckTopology
                            (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u)))
                        (structureSheaf (↑(CommRingCat.of (↑S : Type u)) : Type u))))
                    p) :
            (↑(CommRingCat.of
                    (Functor.obj (C :=
                      (TopologicalSpace.Opens
                          (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u))ᵒᵖ)
                      (ObjectProperty.FullSubcategory.obj (P :=
                        Presheaf.IsSheaf
                          (Opens.grothendieckTopology
                            (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u)))
                        (structureSheafInType (↑(CommRingCat.of (↑S : Type u)) : Type u)
                          (↑(CommRingCat.of (↑S : Type u)) : Type u)))
                      (Functor.obj (C :=
                        (TopologicalSpace.Opens (↑(Spec.topObj (CommRingCat.of (↑R : Type u))) : Type u))ᵒᵖ)
                        (Functor.op
                          (TopologicalSpace.Opens.map
                            (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))))
                        (op ⊤)))) :
                Type u) →+*
              (↑(TopCat.Presheaf.stalk
                    (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
                      (TopCat.Presheaf.pushforward CommRingCat
                        (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
                      (ObjectProperty.FullSubcategory.obj (P :=
                        Presheaf.IsSheaf
                          (Opens.grothendieckTopology
                            (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u)))
                        (structureSheaf (↑(CommRingCat.of (↑S : Type u)) : Type u))))
                    p) :
                Type u)) :
          (a :
              (↑(CommRingCat.of
                    ((structureSheafInType (↑(CommRingCat.of (↑S : Type u)) : Type u)
                            (↑(CommRingCat.of (↑S : Type u)) : Type u)).obj.obj
                      ((TopologicalSpace.Opens.map
                              (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))).op.obj
                        (op ⊤)))) :
                Type u)) →
            (↑(((TopCat.Presheaf.pushforward CommRingCat
                          (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u))))).obj
                      (structureSheaf (↑(CommRingCat.of (↑S : Type u)) : Type u)).obj).stalk
                  p) :
              Type u))
        0 :
      (↑(TopCat.Presheaf.stalk
            (Functor.obj (C := TopCat.Presheaf CommRingCat (Spec.topObj (CommRingCat.of (↑S : Type u))))
              (TopCat.Presheaf.pushforward CommRingCat
                (Spec.topMap (CommRingCat.ofHom (algebraMap (↑R : Type u) (↑S : Type u)))))
              (ObjectProperty.FullSubcategory.obj (P :=
                Presheaf.IsSheaf
                  (Opens.grothendieckTopology
                    (↑(PrimeSpectrum.Top (↑(CommRingCat.of (↑S : Type u)) : Type u)) : Type u)))
                (structureSheaf (↑(CommRingCat.of (↑S : Type u)) : Type u))))
            p) :
        Type u))

Tactic:
rw [CommRingCat.comp_apply, map_zero] at hx

Premises used: map_zero, CommRingCat.comp_apply