/-- Using `homogeneousLocalizationToStalk`, we construct a ring isomorphism between stalk at `x`
and homogeneous localization at `x` for any point `x` in `Proj`.-/
def Proj.stalkIso' (x : ProjectiveSpectrum.top 𝒜) :
    (Proj.structureSheaf 𝒜).presheaf.stalk x ≃+* CommRingCat.of (at x) :=
  RingEquiv.ofBijective (stalkToFiberRingHom _ x)
    ⟨fun z1 z2 eq1 => by
      obtain ⟨u1, memu1, s1, rfl⟩ := (Proj.structureSheaf 𝒜).presheaf.germ_exist x z1
      obtain ⟨u2, memu2, s2, rfl⟩ := (Proj.structureSheaf 𝒜).presheaf.germ_exist x z2
      obtain ⟨v1, memv1, i1, ⟨j1, ⟨a1, a1_mem⟩, ⟨b1, b1_mem⟩, hs1⟩⟩ := s1.2 ⟨x, memu1⟩
      obtain ⟨v2, memv2, i2, ⟨j2, ⟨a2, a2_mem⟩, ⟨b2, b2_mem⟩, hs2⟩⟩ := s2.2 ⟨x, memu2⟩
      obtain ⟨b1_nin_x, eq2⟩ := hs1 ⟨x, memv1⟩
      obtain ⟨b2_nin_x, eq3⟩ := hs2 ⟨x, memv2⟩
      dsimp only at eq1 eq2 eq3
      erw [stalkToFiberRingHom_germ 𝒜 u1 ⟨x, memu1⟩ s1,
        stalkToFiberRingHom_germ 𝒜 u2 ⟨x, memu2⟩ s2] at eq1
      erw [eq1] at eq2
      erw [eq2, Quotient.eq''] at eq3
      change Localization.mk _ _ = Localization.mk _ _ at eq3
      rw [Localization.mk_eq_mk', IsLocalization.eq] at eq3
      obtain ⟨⟨c, hc⟩, eq3⟩ := eq3
      have eq3' :
        ∀ (y : ProjectiveSpectrum.top 𝒜)
          (hy : y ∈ ProjectiveSpectrum.basicOpen 𝒜 b1 ⊓ ProjectiveSpectrum.basicOpen 𝒜 b2 ⊓
                ProjectiveSpectrum.basicOpen 𝒜 c), (Localization.mk a1 ⟨b1,
                  show b1 ∉ y.asHomogeneousIdeal by
                    rw [← ProjectiveSpectrum.mem_basicOpen]
                    exact leOfHom (Opens.infLELeft _ _ ≫ Opens.infLELeft _ _) hy⟩ :
              Localization.AtPrime y.1.toIdeal) = Localization.mk a2
              ⟨b2, by
                change b2 ∉ y.asHomogeneousIdeal
                rw [← ProjectiveSpectrum.mem_basicOpen]
                exact leOfHom (Opens.infLELeft _ _ ≫ Opens.infLERight _ _) hy⟩ := by
        intro y hy
        rw [Localization.mk_eq_mk', IsLocalization.eq]
        exact
          ⟨⟨c, show c ∉ y.asHomogeneousIdeal by
                  rw [← ProjectiveSpectrum.mem_basicOpen]
                  exact leOfHom (Opens.infLERight _ _) hy⟩, eq3⟩
      refine'
        Presheaf.germ_ext (Proj.structureSheaf 𝒜).1
          (ProjectiveSpectrum.basicOpen _ b1 ⊓ ProjectiveSpectrum.basicOpen _ b2 ⊓
                ProjectiveSpectrum.basicOpen _ c ⊓ v1 ⊓ v2)
          ⟨⟨⟨⟨b1_nin_x, b2_nin_x⟩, hc⟩, memv1⟩, memv2⟩
          (Opens.infLELeft _ _ ≫ Opens.infLERight _ _ ≫ i1) (Opens.infLERight _ _ ≫ i2) _
      rw [Subtype.ext_iff_val]
      ext1 y
      simp only [res_apply]
      obtain ⟨b1_nin_y, eq6⟩ :=
        hs1 ⟨_, leOfHom (Opens.infLELeft _ _ ≫ Opens.infLERight _ _) y.2⟩
      obtain ⟨b2_nin_y, eq7⟩ := hs2 ⟨_, leOfHom (Opens.infLERight _ _) y.2⟩
      simp only at eq6 eq7
      erw [eq6, eq7, Quotient.eq'']
      change Localization.mk _ _ = Localization.mk _ _
      exact eq3' _
          ⟨⟨leOfHom
                (Opens.infLELeft _ _ ≫
                  Opens.infLELeft _ _ ≫ Opens.infLELeft _ _ ≫ Opens.infLELeft _ _) y.2,
              leOfHom
                (Opens.infLELeft _ _ ≫
                  Opens.infLELeft _ _ ≫ Opens.infLELeft _ _ ≫ Opens.infLERight _ _) y.2⟩,
            leOfHom (Opens.infLELeft _ _ ≫ Opens.infLELeft _ _ ≫ Opens.infLERight _ _) y.2⟩,
      Function.surjective_iff_hasRightInverse.mpr
        ⟨homogeneousLocalizationToStalk 𝒜 x, fun f => by
          rw [homogeneousLocalizationToStalk]
          erw [stalkToFiberRingHom_germ 𝒜 (ProjectiveSpectrum.basicOpen 𝒜 f.den) ⟨x, _⟩
              (sectionInBasicOpen _ x f)]
          

Proof state:
R : Type u_1
A : Type u_2
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
x : ↑(ProjectiveSpectrum.top 𝒜)
f : ↑(CommRingCat.of (at x))
⊢ ↑(sectionInBasicOpen 𝒜 x f)
      { val := x, property := (_ : x ∈ ProjectiveSpectrum.basicOpen 𝒜 (HomogeneousLocalization.den f)) } =
    f

Next tactic:
rw [sectionInBasicOpen, HomogeneousLocalization.ext_iff_val, f.eq_num_div_den]