-- Lean 4 proof step from Mathlib.AlgebraicGeometry.ProjectiveSpectrum.Proper (goal)
Goal:
σ : Type u_1
A : Type u_2
inst : CommRing A
inst_1 : SetLike σ A
inst_2 : AddSubgroupClass σ A
𝒜 : ℕ → σ
inst_3 : GradedRing 𝒜
inst_4 : Algebra.FiniteType (↥(𝒜 0)) A
O : Type u_2
commRing : CommRing O
domain : IsDomain O
valuationRing : ValuationRing O
K : Type u_2
field : Field K
algebra : Algebra O K
isFractionRing : IsFractionRing O K
i₁ : Spec (CommRingCat.of K) ⟶ Proj 𝒜
i₂ : Spec (CommRingCat.of O) ⟶ Spec (CommRingCat.of ↥(𝒜 0))
w : CommSq i₁ (Spec.map (CommRingCat.ofHom (algebraMap O K))) (toSpecZero 𝒜) i₂
x_1 : Finset A
hx : Eq (α := Subalgebra (↥(𝒜 0)) A) (Algebra.adjoin ↥(𝒜 0) (↑x_1 : Set A)) ⊤
d : (i : A) → i ∈ x_1 → ℕ
hd : ∀ (i : A) (a : i ∈ x_1), d i a ≠ 0
hxd : ∀ (i : A) (a : i ∈ x_1), i ∈ 𝒜 (d i a)
i : ↥x_1
hi :
  Membership.mem (α := ↥(Proj 𝒜)) (γ := TopologicalSpace.Opens ↥(Proj 𝒜)) (basicOpen 𝒜 (↑i : A))
    (i₁ (IsLocalRing.closedPoint K) : ↥(Proj 𝒜))
this : Set.range (ι := ↥(Spec (CommRingCat.of K))) ⇑i₁ ⊆ (↑(Hom.opensRange (awayι 𝒜 (↑i : A) ⋯ ⋯)) : Set ↥(Proj 𝒜))
φ : Spec (CommRingCat.of K) ⟶ Spec (CommRingCat.of (Away 𝒜 (↑i : A))) :=
  IsOpenImmersion.lift (awayι 𝒜 (↑i : A) ⋯ ⋯) i₁ this
H :
  Spec.preimage i₂ ≫ CommRingCat.ofHom (algebraMap O K) =
    CommRingCat.ofHom (fromZeroRingHom 𝒜 (Submonoid.powers (↑i : A))) ≫ Spec.preimage φ
i₀ : ↥x_1
φ' : Away 𝒜 ((↑i : A) * (↑i₀ : A)) →+* K
hφ : φ'.comp (awayMap 𝒜 ⋯ ⋯) = CommRingCat.Hom.hom (Spec.preimage φ)
hφ' :
  LE.le.{u_2} (α := Subring K) (RingHom.range (R := Away 𝒜 (↑i₀ : A)) (φ'.comp (awayMap 𝒜 ⋯ ⋯)))
    (RingHom.range (R := O) (algebraMap O K))
e : O ≃+* ↥(RingHom.range (R := O) (algebraMap O K)) := AlgEquiv.toRingEquiv (AlgEquiv.ofInjective (Algebra.ofId O K) ⋯)
φ'' : Away 𝒜 (↑i₀ : A) →+* O :=
  e.symm.toRingHom.comp ((Subring.inclusion hφ').comp (RingHom.rangeRestrict (φ'.comp (awayMap 𝒜 ⋯ ⋯))))
hφ'' : RingHom.comp (algebraMap O K) φ'' = φ'.comp (awayMap 𝒜 ⋯ ⋯)
x : (↑(CommRingCat.of ↥(𝒜 0)) : Type u_2)
⊢ Eq (α := (↑(CommRingCat.of O) : Type u_2))
    ((CommRingCat.Hom.hom
            (CategoryStruct.comp (Y := CommRingCat.of (Away 𝒜 (↑i₀ : A)))
              (CommRingCat.ofHom (fromZeroRingHom 𝒜 (Submonoid.powers (↑i₀ : A)))) (CommRingCat.ofHom φ'')) :
          (a : (↑(CommRingCat.of ↥(𝒜 0)) : Type u_2)) → (↑(CommRingCat.of O) : Type u_2))
        x :
      (↑(CommRingCat.of O) : Type u_2))
    ((CommRingCat.Hom.hom (Spec.preimage i₂) :
          (a : (↑(CommRingCat.of ↥(𝒜 0)) : Type u_2)) → (↑(CommRingCat.of O) : Type u_2))
        x :
      (↑(CommRingCat.of O) : Type u_2))
have refine_2 : Eq (α := K)
  ((algebraMap O K : (a : O) → K)
      ((CommRingCat.Hom.hom
              (CategoryStruct.comp (Y := CommRingCat.of (Away 𝒜 (↑i₀ : A)))
                (CommRingCat.ofHom (fromZeroRingHom 𝒜 (Submonoid.powers (↑i₀ : A)))) (CommRingCat.ofHom φ'')) :
            (a : (↑(CommRingCat.of ↥(𝒜 0)) : Type u_2)) → (↑(CommRingCat.of O) : Type u_2))
          x :
        (↑(CommRingCat.of O) : Type u_2)) :
    K)
  ((algebraMap O K : (a : O) → K)
      ((CommRingCat.Hom.hom (Spec.preimage i₂) :
            (a : (↑(CommRingCat.of ↥(𝒜 0)) : Type u_2)) → (↑(CommRingCat.of O) : Type u_2))
          x :
        (↑(CommRingCat.of O) : Type u_2)) :
    K)
Tactic: apply IsFractionRing.injective O K