The structure sheaf on prime_spectrum R. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
We define the structure sheaf on Top.of (prime_spectrum R), for a commutative ring R and prove
basic properties about it. We define this as a subsheaf of the sheaf of dependent functions into the
localizations, cut out by the condition that the function must be locally equal to a ratio of
elements of R.
Because the condition "is equal to a fraction" passes to smaller open subsets, the subset of functions satisfying this condition is automatically a subpresheaf. Because the condition "is locally equal to a fraction" is local, it is also a subsheaf.
(It may be helpful to refer back to topology.sheaves.sheaf_of_functions,
where we show that dependent functions into any type family form a sheaf,
and also topology.sheaves.local_predicate, where we characterise the predicates
which pick out sub-presheaves and sub-sheaves of these sheaves.)
We also set up the ring structure, obtaining
structure_sheaf R : sheaf CommRing (Top.of (prime_spectrum R)).
We then construct two basic isomorphisms, relating the structure sheaf to the underlying ring R.
First, structure_sheaf.stalk_iso gives an isomorphism between the stalk of the structure sheaf
at a point p and the localization of R at the prime ideal p. Second,
structure_sheaf.basic_open_iso gives an isomorphism between the structure sheaf on basic_open f
and the localization of R at the submonoid of powers of f.
References #
The prime spectrum, just as a topological space.
Equations
The type family over prime_spectrum R consisting of the localization over each point.
Instances for algebraic_geometry.structure_sheaf.localizations
        
        - algebraic_geometry.structure_sheaf.localizations.comm_ring
- algebraic_geometry.structure_sheaf.localizations.local_ring
- algebraic_geometry.structure_sheaf.localizations.inhabited
- algebraic_geometry.structure_sheaf.localizations.algebra
- algebraic_geometry.structure_sheaf.as_ideal.is_localization.at_prime
Equations
The predicate saying that a dependent function on an open U is realised as a fixed fraction
r / s in each of the stalks (which are localizations at various prime ideals).
Equations
- algebraic_geometry.structure_sheaf.is_fraction f = ∃ (r s : R), ∀ (x : ↥U), s ∉ x.val.as_ideal ∧ f x * ⇑(algebra_map R (algebraic_geometry.structure_sheaf.localizations R ↑x)) s = ⇑(algebra_map R (algebraic_geometry.structure_sheaf.localizations R ↑x)) r
The predicate is_fraction is "prelocal",
in the sense that if it holds on U it holds on any open subset V of U.
Equations
We will define the structure sheaf as
the subsheaf of all dependent functions in Π x : U, localizations R x
consisting of those functions which can locally be expressed as a ratio of
(the images in the localization of) elements of R.
Quoting Hartshorne:
For an open set $U ⊆ Spec A$, we define $𝒪(U)$ to be the set of functions $s : U → ⨆_{𝔭 ∈ U} A_𝔭$, such that $s(𝔭) ∈ A_𝔭$ for each $𝔭$, and such that $s$ is locally a quotient of elements of $A$: to be precise, we require that for each $𝔭 ∈ U$, there is a neighborhood $V$ of $𝔭$, contained in $U$, and elements $a, f ∈ A$, such that for each $𝔮 ∈ V, f ∉ 𝔮$, and $s(𝔮) = a/f$ in $A_𝔮$.
Now Hartshorne had the disadvantage of not knowing about dependent functions,
so we replace his circumlocution about functions into a disjoint union with
Π x : U, localizations x.
The functions satisfying is_locally_fraction form a subring.
Equations
- algebraic_geometry.structure_sheaf.sections_subring R U = {carrier := {f : Π (x : ↥(opposite.unop U)), algebraic_geometry.structure_sheaf.localizations R ↑x | (algebraic_geometry.structure_sheaf.is_locally_fraction R).to_prelocal_predicate.pred f}, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, neg_mem' := _}
The structure sheaf (valued in Type, not yet CommRing) is the subsheaf consisting of
functions satisfying is_locally_fraction.
The structure presheaf, valued in CommRing, constructed by dressing up the Type valued
structure presheaf.
Equations
- algebraic_geometry.structure_presheaf_in_CommRing R = {obj := λ (U : (topological_space.opens ↥(algebraic_geometry.prime_spectrum.Top R))ᵒᵖ), CommRing.of ((algebraic_geometry.structure_sheaf_in_Type R).val.obj U), map := λ (U V : (topological_space.opens ↥(algebraic_geometry.prime_spectrum.Top R))ᵒᵖ) (i : U ⟶ V), {to_fun := (algebraic_geometry.structure_sheaf_in_Type R).val.map i, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}, map_id' := _, map_comp' := _}
Some glue, verifying that that structure presheaf valued in CommRing agrees
with the Type valued structure presheaf.
Equations
The structure sheaf on $Spec R$, valued in CommRing.
This is provided as a bundled SheafedSpace as Spec.SheafedSpace R later.
Equations
- algebraic_geometry.Spec.structure_sheaf R = {val := algebraic_geometry.structure_presheaf_in_CommRing R _inst_1, cond := _}
The section of structure_sheaf R on an open U sending each x ∈ U to the element
f/g in the localization of R at x.
Equations
- algebraic_geometry.structure_sheaf.const R f g U hu = ⟨λ (x : ↥(opposite.unop (opposite.op U))), is_localization.mk' (algebraic_geometry.structure_sheaf.localizations R ↑x) f ⟨g, _⟩, _⟩
The canonical ring homomorphism interpreting an element of R as
a section of the structure sheaf.
Equations
- algebraic_geometry.structure_sheaf.to_open R U = {to_fun := λ (f : ↥(CommRing.of R)), ⟨λ (x : ↥(opposite.unop (opposite.op U))), ⇑(algebra_map R (algebraic_geometry.structure_sheaf.localizations R ↑x)) f, _⟩, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}
Instances for algebraic_geometry.structure_sheaf.to_open
        
        
    The canonical ring homomorphism interpreting an element of R as an element of
the stalk of structure_sheaf R at x.
Equations
The canonical ring homomorphism from the localization of R at p to the stalk
of the structure sheaf at the point p.
Equations
Instances for algebraic_geometry.structure_sheaf.localization_to_stalk
        
        
    The ring homomorphism that takes a section of the structure sheaf of R on the open set U,
implemented as a subtype of dependent functions to localizations at prime ideals, and evaluates
the section on the point corresponding to a given prime ideal.
Equations
- algebraic_geometry.structure_sheaf.open_to_localization R U x hx = {to_fun := λ (s : ↥((algebraic_geometry.Spec.structure_sheaf R).val.obj (opposite.op U))), s.val ⟨x, hx⟩, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}
The ring homomorphism from the stalk of the structure sheaf of R at a point corresponding to
a prime ideal p to the localization of R at p,
formed by gluing the open_to_localization maps.
Equations
- algebraic_geometry.structure_sheaf.stalk_to_fiber_ring_hom R x = category_theory.limits.colimit.desc ((topological_space.open_nhds.inclusion x).op ⋙ (algebraic_geometry.Spec.structure_sheaf R).val) {X := {α := localization.at_prime x.as_ideal _, str := localization.comm_ring x.as_ideal.prime_compl}, ι := {app := λ (U : (topological_space.open_nhds x)ᵒᵖ), algebraic_geometry.structure_sheaf.open_to_localization R ((topological_space.open_nhds.inclusion x).obj (opposite.unop U)) x _, naturality' := _}}
Instances for algebraic_geometry.structure_sheaf.stalk_to_fiber_ring_hom
        
        
    The ring isomorphism between the stalk of the structure sheaf of R at a point p
corresponding to a prime ideal in R and the localization of R at p.
Equations
The canonical ring homomorphism interpreting s ∈ R_f as a section of the structure sheaf
on the basic open defined by f ∈ R.
Equations
Instances for algebraic_geometry.structure_sheaf.to_basic_open
        
        
    The ring isomorphism between the structure sheaf on basic_open f and the localization of R
at the submonoid of powers of f.
Equations
Stalk of the structure sheaf at a prime p as localization of R
Sections of the structure sheaf of Spec R on a basic open as localization of R
The ring isomorphism between the ring R and the global sections Γ(X, 𝒪ₓ).
Given a ring homomorphism f : R →+* S, an open set U of the prime spectrum of R and an open
set V of the prime spectrum of S, such that V ⊆ (comap f) ⁻¹' U, we can push a section s
on U to a section on V, by composing with localization.local_ring_hom _ _ f from the left and
comap f from the right. Explicitly, if s evaluates on comap f p to a / b, its image on V
evaluates on p to f(a) / f(b).
At the moment, we work with arbitrary dependent functions s : Π x : U, localizations R x. Below,
we prove the predicate is_locally_fraction is preserved by this map, hence it can be extended to
a morphism between the structure sheaves of R and S.
Equations
- algebraic_geometry.structure_sheaf.comap_fun f U V hUV s y = ⇑(localization.local_ring_hom (⇑(prime_spectrum.comap f) y.val).as_ideal y.val.as_ideal f _) (s ⟨⇑(prime_spectrum.comap f) y.val, _⟩)
For a ring homomorphism f : R →+* S and open sets U and V of the prime spectra of R and
S such that V ⊆ (comap f) ⁻¹ U, the induced ring homomorphism from the structure sheaf of R
at U to the structure sheaf of S at V.
Explicitly, this map is given as follows: For a point p : V, if the section s evaluates on p
to the fraction a / b, its image on V evaluates on p to the fraction f(a) / f(b).
Equations
- algebraic_geometry.structure_sheaf.comap f U V hUV = {to_fun := λ (s : ↥((algebraic_geometry.Spec.structure_sheaf R).val.obj (opposite.op U))), ⟨algebraic_geometry.structure_sheaf.comap_fun f U V hUV s.val, _⟩, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}
For an inclusion i : V ⟶ U between open sets of the prime spectrum of R, the comap of the
identity from OO_X(U) to OO_X(V) equals as the restriction map of the structure sheaf.
This is a generalization of the fact that, for fixed U, the comap of the identity from OO_X(U)
to OO_X(U) is the identity.
The comap of the identity is the identity. In this variant of the lemma, two open subsets U and
V are given as arguments, together with a proof that U = V. This is be useful when U and V
are not definitionally equal.