Ideal sheaves are determined by their stalks: the stalk calculus #
The stalk J_x ⊆ 𝒪_{X,x} of an ideal sheaf (stalkIdeal) is the image of J(U) under the germ
map for any affine U ∋ x (stalkIdeal_eq_map_germ), and 𝒪_{X,x} is the localization of
Γ(X, U) at the prime of x (Mathlib's IsAffineOpen.isLocalization_stalk). Since an
inclusion of ideals holds as soon as it holds after localizing at every maximal ideal (Mathlib's
Ideal.le_of_localization_maximal), an inclusion of ideal sheaves can be checked on stalks
(le_of_stalkIdeal_le, ext_stalkIdeal), and on a Jacobson scheme at the
closed points alone (le_of_forall_stalkIdeal_le_of_isClosed). The stalk is compatible with the
operations used in the divisor calculus: products, powers, suprema, finite products, and the
colon by an invertible ideal sheaf (stalkIdeal_colon_of_isInvertible, Mathlib's colon commutes
with localization for finitely generated divisors, map_colon_of_fg).
These are the tools for computing saturations and orders of ideal sheaves on stalks throughout the blow-up sequences of the resolution.
Main declarations #
stalkIdeal_top,stalkIdeal_bot,stalkIdeal_mul,stalkIdeal_pow,ideal_iSup',stalkIdeal_iSup'/stalkIdeal_iSup,stalkIdeal_finset_prod,stalkIdeal_colon_le,stalkIdeal_colon_of_isInvertible,stalkIdeal_saturate_of_isInvertible.le_of_forall_stalkIdeal_le_of_isMaximal,le_of_stalkIdeal_le,le_of_forall_stalkIdeal_le_of_isClosed,ext_stalkIdeal. The last two but one and the last are one-line corollaries ofle_of_stalkIdeal_leandext_stalkIdealofHironaka.Scheme.BlowUp.Descent, kept under these names.
The stalk of the unit ideal sheaf is the unit ideal.
The stalk of the zero ideal sheaf is zero.
The stalk of a product is the product of the stalks.
The stalk of a power is the power of the stalk.
Mathlib's ideal_iSup for a Sort-indexed supremum (a bounded supremum ⨆ i ∈ s is one).
The stalk of a Sort-indexed supremum is the supremum of the stalks.
The stalk of a supremum is the supremum of the stalks (the Type-indexed instance of
stalkIdeal_iSup').
The stalk of a finite product of ideal sheaves is the product of the stalks
(stalkIdeal_mul iterated; the empty product is the unit ideal, stalkIdeal_top).
The stalk of a colon is contained in the colon of the stalks.
For an invertible K the stalk of the colon is the colon of the stalks (the colon by a
finitely generated ideal commutes with localization).
For an invertible K the stalk of the saturation ⋃ᵢ (I : Kⁱ) is the saturation of the
stalks.
The core of le_of_stalkIdeal_le: an inclusion of ideal sheaves holds as soon as it
holds at the stalks of the points hU.fromSpec ⟨P⟩ of the MAXIMAL ideals P of Γ(X, U), U
affine — 𝒪_{X,x} is the localization of Γ(X, U) at the prime of x for an affine U ∋ x, and
an inclusion of ideals holds after localizing at every maximal ideal (Mathlib's
Ideal.le_of_localization_maximal).
The closed-point form of le_of_stalkIdeal_le: on a Jacobson scheme — every scheme
locally of finite type over a field, Mathlib's LocallyOfFiniteType.jacobsonSpace — an inclusion
of ideal sheaves can be checked at the closed points: the maximal ideals of Γ(X, U), U affine,
are the closed points of Spec Γ(X, U), and a closed point of an open subset of a Jacobson space
is closed in the space (Topology.IsOpenEmbedding.preimage_closedPoints).