Clearing the denominator on a principal open gives an equality on the larger open, because the defining global section acts injectively there.
Source context 5 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
open CategoryTheory TopologicalSpace
open scoped TensorProduct nonZeroDivisors
namespace AlgebraicGeometry
universe u vtheorem exists_restrict_eq_pow_mul_of_basicOpen_le
(X : Scheme.{u}) [IsAffine X] (U : X.Opens)
(hU : IsCompact U.1) (hU' : IsQuasiSeparated U.1)
(r : Γ(X, ⊤)) (hr : r ∈ nonZeroDivisors Γ(X, ⊤))
(hRU : X.basicOpen r ≤ U) (s : Γ(X, U)) :
∃ (a : Γ(X, ⊤)) (n : ℕ),
X.presheaf.map (homOfLE (show U ≤ ⊤ from le_top)).op a =
(X.presheaf.map (homOfLE (show U ≤ ⊤ from le_top)).op r) ^ n * s := by
let f : Γ(X, ⊤) ⟶ Γ(X, U) := X.presheaf.map (homOfLE le_top).op
let rU : Γ(X, U) := f r
let D := X.basicOpen rU
let j : Γ(X, U) ⟶ Γ(X, D) :=
X.presheaf.map (homOfLE (X.basicOpen_le rU)).op
let k : Γ(X, ⊤) ⟶ Γ(X, D) := X.presheaf.map (homOfLE le_top).op
have hD : D = X.basicOpen r := by
exact (X.basicOpen_res r (homOfLE (show U ≤ ⊤ from le_top)).op).trans
(inf_eq_right.mpr hRU)
let : Algebra Γ(X, ⊤) Γ(X, D) := k.hom.toAlgebra
let : IsLocalization.Away r Γ(X, D) :=
(isAffineOpen_top X).isLocalization_of_eq_basicOpen r (homOfLE le_top) hD
obtain ⟨n, a, ha⟩ := IsLocalization.Away.surj r (j s)
have hcomp : f ≫ j = k := by
dsimp only [f, j, k]
rw [← Functor.map_comp]
rfl
have hcomp_apply (a : Γ(X, ⊤)) : j (f a) = k a :=
congrArg (fun t : Γ(X, ⊤) ⟶ Γ(X, D) => t a) hcomp
refine ⟨a, n, ?_⟩
apply restrict_basicOpen_injective_of_affine X U hU hU' r hr
change j (f a) = j (rU ^ n * s)
rw [map_mul, map_pow, hcomp_apply, show j rU = k r from hcomp_apply r]
exact ha.symm.trans (mul_comm _ _)