-- Lean 4 proof step from Mathlib.AlgebraicGeometry.ProjectiveSpectrum.Scheme (goal)
Goal:
A : Type u_1
σ : Type u_2
inst : CommRing A
inst_1 : SetLike σ A
inst_2 : AddSubgroupClass σ A
𝒜 : ℕ → σ
inst_3 : GradedRing 𝒜
f : A
x :
  (↑(↑(Proj.restrict (U := Functor.obj (C := Opens (↑Proj.T : Type u_1)) (Opens.toTopCat Proj.T) (pbo f))
              ⋯).toPresheafedSpace :
        TopCat) :
    Type u_1)
⊢ Eq (α :=
    CommRingCat.of (A⁰_ f) ⟶
      CommRingCat.of (↑(Presheaf.stalk (Sheaf.presheaf (structureSheaf 𝒜)) (↑x : (↑Proj.T : Type u_1))) : Type u_1))
    (awayToSection 𝒜 f ≫
        CategoryStruct.comp (Y :=
          LocallyRingedSpace.Γ.obj
            (op (Proj.restrict (U := Functor.obj (C := Opens (↑Proj.T : Type u_1)) (Opens.toTopCat Proj.T) (pbo f)) ⋯)))
          (CategoryTheory.Functor.map
              (ObjectProperty.FullSubcategory.obj (P :=
                (CategoryTheory.Presheaf.IsSheaf (Opens.grothendieckTopology (↑(ProjectiveSpectrum.top 𝒜) : Type u_1)) :
                  (P : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat) → Prop))
                (structureSheaf 𝒜 : TopCat.Sheaf CommRingCat (ProjectiveSpectrum.top 𝒜)))
              (Quiver.Hom.op (homOfLE ⋯)) :
            Functor.obj (C := (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ)
                (ObjectProperty.FullSubcategory.obj (P :=
                    (CategoryTheory.Presheaf.IsSheaf
                        (Opens.grothendieckTopology (↑(ProjectiveSpectrum.top 𝒜) : Type u_1)) :
                      (P : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat) → Prop))
                    (structureSheaf 𝒜 : TopCat.Sheaf CommRingCat (ProjectiveSpectrum.top 𝒜)) :
                  (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat)
                (op (pbo f) : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ) ⟶
              Functor.obj (C := (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ)
                (ObjectProperty.FullSubcategory.obj (P :=
                    (CategoryTheory.Presheaf.IsSheaf
                        (Opens.grothendieckTopology (↑(ProjectiveSpectrum.top 𝒜) : Type u_1)) :
                      (P : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat) → Prop))
                    (structureSheaf 𝒜 : TopCat.Sheaf CommRingCat (ProjectiveSpectrum.top 𝒜)) :
                  (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat)
                (Functor.obj (C :=
                    (Opens
                        (↑(Functor.obj (C := Opens (↑Proj.T : Type u_1)) (Opens.toTopCat Proj.T) (pbo f)) :
                          Type u_1))ᵒᵖ)
                    (Functor.op (Topology.IsOpenEmbedding.functor ⋯)) (op ⊤) :
                  (Opens (↑Proj.T : Type u_1))ᵒᵖ))
          (Proj.presheaf.germ
              (Functor.obj (C :=
                Opens (↑(Functor.obj (C := Opens (↑Proj.T : Type u_1)) (Opens.toTopCat Proj.T) (pbo f)) : Type u_1))
                (Topology.IsOpenEmbedding.functor ⋯) ⊤)
              ((ConcreteCategory.hom (FC := fun (X Y : TopCat.{u_1}) ↦ C((↑X : Type u_1), (↑Y : Type u_1))) (CC :=
                    carrier) (X := Functor.obj (C := Opens (↑Proj.T : Type u_1)) (Opens.toTopCat Proj.T) (pbo f))
                    (Opens.inclusion' (pbo f)) :
                  (a : (↑((Opens.toTopCat Proj.T).obj (pbo f)) : Type u_1)) → (↑Proj.toTopCat : Type u_1))
                x)
              ⋯ :
            Proj.presheaf.obj
                (op
                  (Functor.obj (C :=
                    Opens (↑(Functor.obj (C := Opens (↑Proj.T : Type u_1)) (Opens.toTopCat Proj.T) (pbo f)) : Type u_1))
                    (Topology.IsOpenEmbedding.functor ⋯) ⊤)) ⟶
              Proj.presheaf.stalk
                ((ConcreteCategory.hom (FC := fun (X Y : TopCat.{u_1}) ↦ C((↑X : Type u_1), (↑Y : Type u_1))) (CC :=
                      carrier) (X := Functor.obj (C := Opens (↑Proj.T : Type u_1)) (Opens.toTopCat Proj.T) (pbo f))
                      (Opens.inclusion' (pbo f)) :
                    (a : (↑((Opens.toTopCat Proj.T).obj (pbo f)) : Type u_1)) → (↑Proj.toTopCat : Type u_1))
                  x)) :
      CommRingCat.of (A⁰_ f) ⟶
        CommRingCat.of (↑(Presheaf.stalk (Sheaf.presheaf (structureSheaf 𝒜)) (↑x : (↑Proj.T : Type u_1))) : Type u_1))
    (CategoryStruct.comp (Y :=
        CommRingCat.of (HomogeneousLocalization 𝒜 (↑x : (↑Proj.T : Type u_1)).asHomogeneousIdeal.toIdeal.primeCompl))
        (CommRingCat.ofHom (HomogeneousLocalization.mapId 𝒜 ⋯))
        (Iso.inv (RingEquiv.toCommRingCatIso («Proj».stalkIso' 𝒜 (↑x : (↑Proj.T : Type u_1))))) :
      CommRingCat.of (HomogeneousLocalization 𝒜 (Submonoid.powers f)) ⟶
        CommRingCat.of (↑(Presheaf.stalk (Sheaf.presheaf (structureSheaf 𝒜)) (↑x : (↑Proj.T : Type u_1))) : Type u_1))
have simp : Eq (α :=
  CommRingCat.of (A⁰_ f) ⟶
    CommRingCat.of (↑(Presheaf.stalk (Sheaf.presheaf (structureSheaf 𝒜)) (↑x : ProjectiveSpectrum 𝒜)) : Type u_1))
  (awayToSection 𝒜 f ≫
      CategoryStruct.comp (Y :=
        LocallyRingedSpace.Γ.obj
          (op
            ({ carrier := TopCat.of (ProjectiveSpectrum 𝒜),
                  presheaf :=
                    (ObjectProperty.FullSubcategory.obj (P :=
                        (CategoryTheory.Presheaf.IsSheaf
                            (Opens.grothendieckTopology (↑(ProjectiveSpectrum.top 𝒜) : Type u_1)) :
                          (P : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat) → Prop))
                        (structureSheaf 𝒜 : TopCat.Sheaf CommRingCat (ProjectiveSpectrum.top 𝒜)) :
                      (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat),
                  IsSheaf := sorry, isLocalRing := sorry }.restrict
              (U :=
              Functor.obj (C := Opens (ProjectiveSpectrum 𝒜)) (Opens.toTopCat (TopCat.of (ProjectiveSpectrum 𝒜)))
                (pbo f))
              (f :=
              (Opens.inclusion' (pbo f) :
                Functor.obj (C := Opens (↑(TopCat.of (ProjectiveSpectrum 𝒜)) : Type u_1))
                    (Opens.toTopCat (TopCat.of (ProjectiveSpectrum 𝒜))) (pbo f) ⟶
                  TopCat.of (ProjectiveSpectrum 𝒜)))
              sorry)))
        (CategoryTheory.Functor.map
            (ObjectProperty.FullSubcategory.obj (P :=
              (CategoryTheory.Presheaf.IsSheaf (Opens.grothendieckTopology (↑(ProjectiveSpectrum.top 𝒜) : Type u_1)) :
                (P : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat) → Prop))
              (structureSheaf 𝒜 : TopCat.Sheaf CommRingCat (ProjectiveSpectrum.top 𝒜)))
            (Quiver.Hom.op (homOfLE sorry)) :
          Functor.obj (C := (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ)
              (ObjectProperty.FullSubcategory.obj (P :=
                  (CategoryTheory.Presheaf.IsSheaf
                      (Opens.grothendieckTopology (↑(ProjectiveSpectrum.top 𝒜) : Type u_1)) :
                    (P : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat) → Prop))
                  (structureSheaf 𝒜 : TopCat.Sheaf CommRingCat (ProjectiveSpectrum.top 𝒜)) :
                (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat)
              (op (pbo f) : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ) ⟶
            Functor.obj (C := (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ)
              (ObjectProperty.FullSubcategory.obj (P :=
                  (CategoryTheory.Presheaf.IsSheaf
                      (Opens.grothendieckTopology (↑(ProjectiveSpectrum.top 𝒜) : Type u_1)) :
                    (P : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat) → Prop))
                  (structureSheaf 𝒜 : TopCat.Sheaf CommRingCat (ProjectiveSpectrum.top 𝒜)) :
                (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat)
              (Functor.obj (C :=
                  (Opens
                      (↑(Functor.obj (C := Opens (ProjectiveSpectrum 𝒜))
                            (Opens.toTopCat (TopCat.of (ProjectiveSpectrum 𝒜))) (pbo f)) :
                        Type u_1))ᵒᵖ)
                  (Functor.op (Topology.IsOpenEmbedding.functor sorry)) (op ⊤) :
                (Opens (ProjectiveSpectrum 𝒜))ᵒᵖ))
        (Presheaf.germ
            (ObjectProperty.FullSubcategory.obj (P :=
              (CategoryTheory.Presheaf.IsSheaf (Opens.grothendieckTopology (↑(ProjectiveSpectrum.top 𝒜) : Type u_1)) :
                (P : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat) → Prop))
              (structureSheaf 𝒜 : TopCat.Sheaf CommRingCat (ProjectiveSpectrum.top 𝒜)))
            (Functor.obj (C :=
              Opens
                (↑(Functor.obj (C := Opens (ProjectiveSpectrum 𝒜)) (Opens.toTopCat (TopCat.of (ProjectiveSpectrum 𝒜)))
                      (pbo f)) :
                  Type u_1))
              (Topology.IsOpenEmbedding.functor sorry) ⊤)
            ((ConcreteCategory.hom (FC := fun (X Y : TopCat.{u_1}) ↦ C((↑X : Type u_1), (↑Y : Type u_1))) (CC :=
                  carrier) (X :=
                  Functor.obj (C := Opens (ProjectiveSpectrum 𝒜)) (Opens.toTopCat (TopCat.of (ProjectiveSpectrum 𝒜)))
                    (pbo f))
                  (Opens.inclusion' (pbo f)) :
                (a : (↑((Opens.toTopCat (TopCat.of (ProjectiveSpectrum 𝒜))).obj (pbo f)) : Type u_1)) →
                  (↑{ carrier := TopCat.of (ProjectiveSpectrum 𝒜), presheaf := (structureSheaf 𝒜).obj, IsSheaf := sorry,
                          isLocalRing := sorry }.toTopCat :
                    Type u_1))
              x)
            sorry :
          Functor.obj (C := (Opens (↑(TopCat.of (ProjectiveSpectrum 𝒜)) : Type u_1))ᵒᵖ)
              (ObjectProperty.FullSubcategory.obj (P :=
                  (CategoryTheory.Presheaf.IsSheaf
                      (Opens.grothendieckTopology (↑(ProjectiveSpectrum.top 𝒜) : Type u_1)) :
                    (P : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat) → Prop))
                  (structureSheaf 𝒜 : TopCat.Sheaf CommRingCat (ProjectiveSpectrum.top 𝒜)) :
                (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat)
              (op
                  (Functor.obj (C :=
                    Opens
                      (↑(Functor.obj (C := Opens (ProjectiveSpectrum 𝒜))
                            (Opens.toTopCat (TopCat.of (ProjectiveSpectrum 𝒜))) (pbo f)) :
                        Type u_1))
                    (Topology.IsOpenEmbedding.functor sorry) ⊤) :
                (Opens (↑(TopCat.of (ProjectiveSpectrum 𝒜)) : Type u_1))ᵒᵖ) ⟶
            Presheaf.stalk (X := TopCat.of (ProjectiveSpectrum 𝒜))
              (ObjectProperty.FullSubcategory.obj (P :=
                  (CategoryTheory.Presheaf.IsSheaf
                      (Opens.grothendieckTopology (↑(ProjectiveSpectrum.top 𝒜) : Type u_1)) :
                    (P : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat) → Prop))
                  (structureSheaf 𝒜 : TopCat.Sheaf CommRingCat (ProjectiveSpectrum.top 𝒜)) :
                (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat)
              ((ConcreteCategory.hom (FC := fun (X Y : TopCat.{u_1}) ↦ C((↑X : Type u_1), (↑Y : Type u_1))) (CC :=
                      carrier) (X :=
                      Functor.obj (C := Opens (ProjectiveSpectrum 𝒜))
                        (Opens.toTopCat (TopCat.of (ProjectiveSpectrum 𝒜))) (pbo f))
                      (Opens.inclusion' (pbo f)) :
                    (a : (↑((Opens.toTopCat (TopCat.of (ProjectiveSpectrum 𝒜))).obj (pbo f)) : Type u_1)) →
                      (↑{ carrier := TopCat.of (ProjectiveSpectrum 𝒜), presheaf := (structureSheaf 𝒜).obj, IsSheaf := sorry,
                              isLocalRing := sorry }.toTopCat :
                        Type u_1))
                  x :
                (↑{ carrier := TopCat.of (ProjectiveSpectrum 𝒜),
                        presheaf :=
                          (ObjectProperty.FullSubcategory.obj (P :=
                              (CategoryTheory.Presheaf.IsSheaf
                                  (Opens.grothendieckTopology (↑(ProjectiveSpectrum.top 𝒜) : Type u_1)) :
                                (P : (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat) → Prop))
                              (structureSheaf 𝒜 : TopCat.Sheaf CommRingCat (ProjectiveSpectrum.top 𝒜)) :
                            (Opens (↑(ProjectiveSpectrum.top 𝒜) : Type u_1))ᵒᵖ ⥤ CommRingCat),
                        IsSheaf := sorry, isLocalRing := sorry }.toTopCat :
                  Type u_1))) :
    CommRingCat.of (A⁰_ f) ⟶
      CommRingCat.of (↑(Presheaf.stalk (Sheaf.presheaf (structureSheaf 𝒜)) (↑x : ProjectiveSpectrum 𝒜)) : Type u_1))
  (CategoryStruct.comp (Y :=
      CommRingCat.of (HomogeneousLocalization 𝒜 (↑x : ProjectiveSpectrum 𝒜).asHomogeneousIdeal.toIdeal.primeCompl))
      (CommRingCat.ofHom (HomogeneousLocalization.mapId 𝒜 sorry))
      (Iso.inv (RingEquiv.toCommRingCatIso («Proj».stalkIso' 𝒜 (↑x : ProjectiveSpectrum 𝒜)))) :
    CommRingCat.of (HomogeneousLocalization 𝒜 (Submonoid.powers f)) ⟶
      CommRingCat.of (↑(Presheaf.stalk (Sheaf.presheaf (structureSheaf 𝒜)) (↑x : ProjectiveSpectrum 𝒜)) : Type u_1))
Tactic: simp only [Proj.toLocallyRingedSpace, Proj.toSheafedSpace]