2.1. Algebraic k-schemes, singularities and normal crossings
Lean names in this section are shown relative to AlgebraicGeometry.Scheme.IdealSheafData, AlgebraicGeometry.Scheme, AlgebraicGeometry, CategoryTheory.
This chapter collects the basic vocabulary of the algebraic theorems: algebraic k-schemes,
regular points and the singular locus, the stalk and the order of an ideal sheaf, invertible ideal sheaves, and
Hironaka's normal crossings. Regularity and the singular locus are in AlgebraicGeometry. The
stalk and the order of an ideal sheaf, invertibility and Hironaka's normal crossings are in
AlgebraicGeometry.Scheme.IdealSheafData, the order of an ideal of a local ring and regular
systems of parameters in IsLocalRing.
An ideal sheaf on a scheme is Mathlib's X.IdealSheafData: a quasi-coherent ideal sheaf, given by
an ideal of \Gamma(X, U) for every affine open U, compatible with localization. Closed
subschemes are handled through their ideal sheaves (Ideal sheaves and closed
subschemes).
2.1.1. Algebraic k-schemes
An algebraic k-scheme is a scheme X with a structure morphism to \operatorname{Spec} k that
is of finite type (locally of finite type and quasi-compact) and separated: Hironaka's "algebraic
B-scheme" (p. 119, "scheme" as opposed to "prescheme"), and Kollár's "scheme of finite type over
a field", made separated. In the statements it is an object X : AlgScheme k of the category of
algebraic k-schemes with the k-morphisms (Definition 2.1.1.2); X.left is the
underlying scheme, X.hom : X.left ⟶ Spec (.of k) the structure morphism, also written
X.left ↘ Spec (.of k), and .of k is the ring k as an object of CommRingCat. In prose
X also denotes the scheme X.left. Reduced and irreducible is IsIntegral X.left. Smooth over
k is Mathlib's Smooth of the structure morphism, and equidimensional means smooth of a
single relative dimension, ∃ n, SmoothOfRelativeDimension n (X.left ↘ Spec (.of k)), or, for a
possibly singular X, that its smooth locus is smooth of a single relative dimension
(Scheme.IsReducedEquidimensional for a reduced X, Definition 4.2.6.1). The
functorial theorems quantify over the field k : Type u as well as the input, so that commuting
with change of fields (Definition 4.2.4.4) can compare the values over k and over an
extension L.
-
FiniteType[complete] -
FiniteType.toLocallyOfFiniteType[complete]
A morphism of schemes is of finite type (FiniteType f) if it is locally of finite type and
quasi-compact [TSPA, Tag 01T0]. The class bundles Mathlib's LocallyOfFiniteType and
QuasiCompact, as Mathlib's IsProper bundles its parts: its parents are instances
(FiniteType.toLocallyOfFiniteType supplies the LocallyOfFiniteType that Mathlib's
smoothLocus asks for), and conversely FiniteType f is inferred from
the two parts.
Lean code for Definition2.1.1.1●2 declarations
Associated Lean declarations
-
FiniteType[complete]
-
FiniteType.toLocallyOfFiniteType[complete]
-
FiniteType[complete] -
FiniteType.toLocallyOfFiniteType[complete]
-
classdefined in Hironaka/Scheme/Defs.leancomplete
A morphism of schemes is of finite type if it is locally of finite type and quasi-compact.
Extends
Methods
finiteType_appLE : ∀ {U : Y.Opens}, IsAffineOpen U → ∀ {V : X.Opens}, IsAffineOpen V → ∀ (e : V ≤ f ⁻¹ᵁ U), (CommRingCat.Hom.hom (Hom.appLE f U V e)).FiniteType
Inherited from-
AlgebraicGeometry.LocallyOfFiniteType
isCompact_preimage : ∀ (U : Set ↥Y), IsOpen U → IsCompact U → IsCompact (⇑f ⁻¹' U)
Inherited from-
AlgebraicGeometry.QuasiCompact
-
-
theoremdefined in Hironaka/Scheme/Defs.leancomplete
theorem FiniteType.toLocallyOfFiniteType {X Y : Scheme} {f : X ⟶ Y} [self : FiniteType f] : LocallyOfFiniteType f
theorem FiniteType.toLocallyOfFiniteType {X Y : Scheme} {f : X ⟶ Y} [self : FiniteType f] : LocallyOfFiniteType f
AlgScheme k is the category of algebraic k-schemes: Mathlib's MorphismProperty.Over for
the property "of finite type and separated" of the structure morphism to \operatorname{Spec} k.
An object X is a scheme X.left with a structure morphism X.hom having the property, and a
morphism h : Y ⟶ X is a morphism of schemes h.left over \operatorname{Spec} k. The instances
AlgScheme.over and AlgScheme.finiteType make the structure morphism available to Mathlib's
notation X.left ↘ Spec (.of k) and its finite type available to instance search, which does not
see through the bundled property.
Lean code for Definition2.1.1.2●2 definitions
Associated Lean declarations
-
AlgScheme[complete]
-
AlgScheme.over[complete]
-
AlgScheme[complete] -
AlgScheme.over[complete]
-
abbrevdefined in Hironaka/Scheme/Resolution/Defs.leancomplete
abbrev AlgScheme (k : Type u) [Field k] : Type (u + 1) := (@FiniteType ⊓ @IsSeparated).Over ⊤ (Spec ↧k)
abbrev AlgScheme (k : Type u) [Field k] : Type (u + 1) := (@FiniteType ⊓ @IsSeparated).Over ⊤ (Spec ↧k)
The category of algebraic
k-schemes, the schemes separated and of finite type overSpec k, with thek-morphisms: Mathlib'sMorphismProperty.Over. An objectXhas the underlying schemeX.leftand the structure morphismX.hom : X.left ⟶ Spec k; a morphismh : Y ⟶ Xhas the underlying morphism of schemesh.left.
2.1.2. Regular points and the singular locus
-
IsRegularAt[complete] -
IsRegular[complete] -
singularLocus[complete]
A point x of a scheme X is simple (X.IsRegularAt x) if the local ring
\mathcal{O}_{X,x} is a regular local ring; X is non-singular (IsRegular X, a class with
the single field isRegularAt) if every point is simple, and the singular locus
X.singularLocus is the set of points that are not simple.
These are Hironaka's notions, defined by the local rings alone and without reference to a base
field. In the functorial theorems the singular locus is instead the complement of Mathlib's
smoothLocus of the structure morphism over k; over a field of
characteristic zero the two agree for a scheme of finite type, since regularity and smoothness
coincide over a perfect field.
Lean code for Definition2.1.2.1●3 definitions
Associated Lean declarations
-
IsRegularAt[complete]
-
IsRegular[complete]
-
singularLocus[complete]
-
IsRegularAt[complete] -
IsRegular[complete] -
singularLocus[complete]
-
defdefined in Hironaka/Algebra/RegularSmooth/Defs.leancomplete
def IsRegularAt (X : Scheme) (x : ↥X) : Prop := IsRegularLocalRing ↑(X.presheaf.stalk x)
def IsRegularAt (X : Scheme) (x : ↥X) : Prop := IsRegularLocalRing ↑(X.presheaf.stalk x)
Xis regular atx, andxis a simple point ofX, when the stalk𝒪_{X,x}is a regular local ring [Hir64, Ch. I, p. 163; footnote 29, p. 161]. -
classdefined in Hironaka/Algebra/RegularSmooth/Defs.leancomplete
Xis regular when it is regular at every point.Methods
isRegularAt : ∀ (x : ↥X), X.IsRegularAt x
-
defdefined in Hironaka/Algebra/RegularSmooth/Defs.leancomplete
The singular locus: the set of points at which
Xis not regular. It is Hironaka's set of multiple points, "the singular locus of an algebraic scheme V is by definition the set of multiple points of V" [Hir64, Ch. I, p. 163]; the complement of "the open subscheme of X which consists of the simple points of X" [Hir64, Introduction, p. 112]. It is closed whenXis locally of finite type over a perfect field.
A family z_1, \dots, z_n in a local ring R is a regular system of parameters if it generates
the maximal ideal and n is the Krull dimension of R. In a regular local ring these are the
minimal generating systems of \mathfrak m; they play the role of local coordinates in the normal
crossings conditions (Definition 2.1.5.1, Definition 2.4.2.2).
Lean code for Definition2.1.2.2●1 definition
Associated Lean declarations
-
IsLocalRing.IsRegularSystemOfParameters[complete]
-
IsLocalRing.IsRegularSystemOfParameters[complete]
-
defdefined in Hironaka/Algebra/Local/Defs.leancomplete
def IsLocalRing.IsRegularSystemOfParameters {R : Type u_1} [CommRing R] [IsLocalRing R] {n : ℕ} (z : Fin n → R) : Prop := Ideal.span (Set.range z) = IsLocalRing.maximalIdeal R ∧ ↑n = ringKrullDim R
def IsLocalRing.IsRegularSystemOfParameters {R : Type u_1} [CommRing R] [IsLocalRing R] {n : ℕ} (z : Fin n → R) : Prop := Ideal.span (Set.range z) = IsLocalRing.maximalIdeal R ∧ ↑n = ringKrullDim R
A family
z : Fin n → Ris a regular system of parameters of the local ringR: it generates the maximal ideal and has as many members as the Krull dimension ofR. In a regular local ring these are exactly the minimal generating systems of𝔪.
2.1.3. Stalks and orders of ideal sheaves
The stalk J_x \subseteq \mathcal{O}_{X,x} of an ideal sheaf, J.stalkIdeal x, is the ideal
generated by the germs at x of the sections of J over the affine opens containing x. An
ideal sheaf has nonzero stalks (IsNonzeroEverywhere J) if J_x \ne 0 at every point:
Hironaka's "coherent sheaf of non-zero ideals", read at every stalk. On a non-singular scheme this
is Kollár's "not zero on any irreducible component" [Kol07, Theorem 35].
Lean code for Definition2.1.3.1●2 definitions
Associated Lean declarations
-
stalkIdeal[complete]
-
IsNonzeroEverywhere[complete]
-
stalkIdeal[complete] -
IsNonzeroEverywhere[complete]
-
defdefined in Hironaka/Scheme/IdealSheaf/Defs.leancomplete
The stalk
J_x ⊆ 𝒪_{X,x}of an ideal sheaf: the ideal generated by the germs atxof the sections ofJover the affine opens containingx(every such open gives the same ideal,stalkIdeal_eq_map_germ; the supremum makes the definition choice-free) [Hir64, Ch. 0, §5, p. 142]. -
defdefined in Hironaka/Scheme/IdealSheaf/Defs.leancomplete
def IsNonzeroEverywhere {X : Scheme} (J : X.IdealSheafData) : Prop := ∀ (x : ↥X), J.stalkIdeal x ≠ ⊥
def IsNonzeroEverywhere {X : Scheme} (J : X.IdealSheafData) : Prop := ∀ (x : ↥X), J.stalkIdeal x ≠ ⊥
Hironaka's "coherent sheaf of non-zero ideals" [Hir64, Main Theorem II; Corollary 1], read stalkwise:
J_x ≠ 0at every point. On a non-singular scheme this is Kollár's "not zero on any irreducible component" [Kol07, Theorem 35].
The order of an ideal I of a local ring (R, \mathfrak m) is
\operatorname{ord} I = \sup\{r : I \subseteq \mathfrak m^r\} in \mathbb{N} \cup \{\infty\}
(IsLocalRing.ord, [Kol07, Definition 47]). The order of an ideal sheaf at a point,
J.ord x, is the order of the stalk: Hironaka's \nu(J_x). It is \infty exactly when
J_x = 0 (by the Krull intersection theorem) and 0 exactly when J_x is the unit ideal, so
an ideal sheaf with nonzero stalks has finite order everywhere, and the maximal order of Main
Theorem II (Theorem 4.2.1.2) is a natural number.
Lean code for Definition2.1.3.2●2 definitions
Associated Lean declarations
-
IsLocalRing.ord[complete]
-
ord[complete]
-
IsLocalRing.ord[complete] -
ord[complete]
-
defdefined in Hironaka/Algebra/Local/Defs.leancomplete
def IsLocalRing.ord {R : Type u_1} [CommRing R] [IsLocalRing R] (I : Ideal R) : ℕ∞ := ⨆ r, ⨆ (_ : I ≤ IsLocalRing.maximalIdeal R ^ r), ↑r
def IsLocalRing.ord {R : Type u_1} [CommRing R] [IsLocalRing R] (I : Ideal R) : ℕ∞ := ⨆ r, ⨆ (_ : I ≤ IsLocalRing.maximalIdeal R ^ r), ↑r
The order of an ideal [Kol07, Definition 47]:
ord I = sup {r : I ≤ 𝔪^r} ∈ ℕ∞. The zero ideal has order⊤. -
defdefined in Hironaka/Scheme/IdealSheaf/Defs.leancomplete
def ord {X : Scheme} (I : X.IdealSheafData) (x : ↥X) : ℕ∞ := sSup {n | ∃ m, n = ↑m ∧ I.stalkIdeal x ≤ IsLocalRing.maximalIdeal ↑(X.presheaf.stalk x) ^ m}
def ord {X : Scheme} (I : X.IdealSheafData) (x : ↥X) : ℕ∞ := sSup {n | ∃ m, n = ↑m ∧ I.stalkIdeal x ≤ IsLocalRing.maximalIdeal ↑(X.presheaf.stalk x) ^ m}
[Kol07, Definition 47]: the order of the ideal sheaf
Iat the pointx, the largestmwithI_x ⊆ 𝔪_xᵐin𝒪_{X,x}, as an element ofℕ∞(⊤exactly whenI_x = 0); Hironaka'sν(J_x)[Hir64, Ch. 0, §4].
2.1.4. Invertible ideal sheaves
An ideal sheaf is invertible if it is locally generated by a single nonzerodivisor; its closed
subscheme is then an effective Cartier divisor. IdealSheafData.IsInvertible is the form used
by the blow-up construction: every point has an affine open neighbourhood U on which J(U) is
generated by one nonzerodivisor [TSPA, Tag 01WS]; [Kol07, Warning 20]. The unit ideal sheaf is
invertible (isInvertible_top), which is why a blow-up with empty centre is an isomorphism
(Definition 2.2.3.1). The invertibility of a boundary follows from the hypotheses of the
main theorems and is not a separate hypothesis (Theorem 4.2.1.2); the notion enters their
statements through the blow-up and in the conclusion of Corollary 3 (Theorem 4.2.5.1).
Lean code for Definition2.1.4.1●1 definition
Associated Lean declarations
-
IsInvertible[complete]
-
IsInvertible[complete]
-
defdefined in Hironaka/Scheme/IdealSheaf/Defs.leancomplete
def IsInvertible {X : Scheme} (J : X.IdealSheafData) : Prop := ∀ (x : ↥X), ∃ U, x ∈ ↑U ∧ ∃ f ∈ nonZeroDivisors ↑Γ(X, ↑U), J.ideal U = Ideal.span {f}
def IsInvertible {X : Scheme} (J : X.IdealSheafData) : Prop := ∀ (x : ↥X), ∃ U, x ∈ ↑U ∧ ∃ f ∈ nonZeroDivisors ↑Γ(X, ↑U), J.ideal U = Ideal.span {f}
An ideal sheaf
JonXis invertible (its closed subscheme is an effective Cartier divisor [TSPA, Tag 01WS]; [Kol07, Warning 20]) if every pointxhas an affine open neighbourhoodUand a nonzerodivisorf ∈ Γ(X, U)withJ(U) = (f).
2.1.5. Normal crossings
On a regular scheme, a union of hypersurfaces has simple normal crossings when its components
are regular and meet like coordinate hyperplanes: near every point x there is a regular system
of parameters z_1, \dots, z_n of \mathcal{O}_{X,x} in which each component through x is a
hyperplane z_j = 0, distinct components using distinct coordinates. In the plane the two axes
xy = 0, or a smooth curve crossing a line transversally, have simple normal crossings; a curve
tangent to a line (x = y^2 and x = 0) and three lines through a point do not, the second
because the plane has only two coordinates; the node y^2 = x^2(x + 1) has normal crossings but
not simple ones, its single component not being regular. Hironaka's form of the condition
follows; Kollár's is Definition 2.4.2.2.
Hironaka's Definition 2: E has only normal crossings with D if at every point x of D
there is a regular system of parameters (z_1, \dots, z_n) of \mathcal{O}_{X,x} such that
the ideal of each irreducible component of E through x (a minimal prime of E_x) is
generated by one of the z_i, and the ideal of D is generated by some of the z_i. With
D = X (the zero ideal sheaf) one says that E has only normal crossings.
The components are read locally, as the minimal primes of the stalk, as Hironaka does; on a
scheme these are the local ideals of the global irreducible components of E, each asked to be
a parameter, so at the points of D the condition is simple normal crossings of the reduced
subscheme E, and with D. Nothing is asserted at the points off D (for the empty D the
condition always holds), whereas the manifold predicate of the same name
(Definition 3.1.5.1) also asserts simple normal crossings of the boundary at every
point. The functorial theorems use Kollár's simple normal crossings, which is phrased on a family
of global components (Definition 2.4.2.2); the two agree on the family of irreducible components
of E (isSncBoundaryWith_iff_hasSncWith_componentFamily, and
isSncBoundary_iff_isSnc_componentFamily on a scheme smooth over k).
Lean code for Definition2.1.5.1●2 definitions
Associated Lean declarations
-
IsSncBoundaryWith[complete]
-
IsSncBoundary[complete]
-
IsSncBoundaryWith[complete] -
IsSncBoundary[complete]
-
defdefined in Hironaka/Scheme/Snc/Defs.leancomplete
def IsSncBoundaryWith {X : Scheme} (E D : X.IdealSheafData) : Prop := ∀ x ∈ D.support, ∃ n z, IsLocalRing.IsRegularSystemOfParameters z ∧ ∀ P ∈ (E.stalkIdeal x).minimalPrimes, ∃ i, P = Ideal.span {z i} ∧ ∃ s, D.stalkIdeal x = Ideal.span (z '' ↑s)
def IsSncBoundaryWith {X : Scheme} (E D : X.IdealSheafData) : Prop := ∀ x ∈ D.support, ∃ n z, IsLocalRing.IsRegularSystemOfParameters z ∧ ∀ P ∈ (E.stalkIdeal x).minimalPrimes, ∃ i, P = Ideal.span {z i} ∧ ∃ s, D.stalkIdeal x = Ideal.span (z '' ↑s)
Ehas only normal crossings withD[Hir64, Ch. 0, §5, Definition 2] (equivalently,Dhas only normal crossings withE): at every pointxofDthere is a regular system of parameters(z_1, …, z_n)of𝒪_{X,x}such that the ideal in𝒪_{X,x}of each irreducible component ofEcontainingx(a minimal prime ofE_x) is generated by one of thez_i, and the ideal ofDin𝒪_{X,x}is generated by some of thez_i.On a scheme Hironaka's components are the global irreducible components of
E(their local ideals atxare the minimal primes ofE_x), each of which is asked to be cut out by a parameter at each of its points ofD; so at the points ofDthe condition is that the reduced subschemeEhas simple normal crossings there, and has them withD. On a Noetherian scheme it agrees withDivisorFamily.HasSncWithof the family of irreducible components ofE[Kol07, Definition 24 (4)] (Hironaka.Sequence.isSncBoundaryWith_iff_hasSncWith_componentFamily), which is also a condition at the points ofDonly.Nothing is asserted at the points off
D: for the unit idealD = ⊤(the empty subscheme) the condition holds for everyE. The manifold predicate of the same name (AnalyticManifold.IdealSheaf.IsSncBoundaryWith) says more: that its boundary is the ideal of a simple normal crossings hypersurface family at every point of the manifold, and in addition has simple normal crossings withDat the points ofD. On a scheme the condition at every point isIsSncBoundarybelow, asserted separately where it is wanted. -
defdefined in Hironaka/Scheme/Snc/Defs.leancomplete
def IsSncBoundary {X : Scheme} (E : X.IdealSheafData) : Prop := E.IsSncBoundaryWith ⊥
def IsSncBoundary {X : Scheme} (E : X.IdealSheafData) : Prop := E.IsSncBoundaryWith ⊥
Hironaka's "
Ehas only normal crossings" [Hir64, Ch. 0, §5, Definition 2], his Definition 2 withD = X("we simply say that E has only normal crossings at x") at every point ofX("with no reference to a point, if it is the case at every point of X"):IsSncBoundaryWith E ⊥, the zero ideal sheaf⊥being the ideal ofXitself.On a scheme Hironaka's components are the global irreducible components of
E, whose local ideals are asked to be parameters, so the condition is simple normal crossings of the reduced subschemeE. On a Noetherian scheme smooth over a field it agrees withDivisorFamily.IsSncof the family of irreducible components ofE[Kol07, Definition 24 (1)–(3)] (Hironaka.Sequence.isSncBoundary_iff_isSnc_componentFamily).