Resolution of Singularities in Characteristic Zero

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.

Definition2.1.1.1source[Sta, Tag 01T0] ↗
uses 0
Used by 21
Reverse dependency previews
Preview
Definition 2.1.1.2
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
Definition2.1.1.2source[Hir64, Ch. 0, §1, p. 119] ↗
uses 1
Used by 19
Reverse dependency previews
Preview
Definition 2.4.4.1
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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

2.1.2. Regular points and the singular locus🔗

Definition2.1.2.1source[Hir64, Ch. 0, §1] ↗
uses 0
Used by 9
Reverse dependency previews
Preview
Definition 2.4.2.2
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
Definition2.1.2.2
uses 0
Used by 4
Reverse dependency previews
Preview
Definition 2.1.5.1
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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

2.1.3. Stalks and orders of ideal sheaves🔗

Definition2.1.3.1source[Hir64, Main Theorem II] ↗
uses 0
Used by 7
Reverse dependency previews
Preview
Definition 2.1.3.2
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
Definition2.1.3.2source[Hir64, Ch. 0, §4] ↗
uses 0
Used by 5
Reverse dependency previews
Preview
Definition 3.1.3.1
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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

2.1.4. Invertible ideal sheaves🔗

Definition2.1.4.1source[Sta, Tag 01WS] ↗
uses 0
Used by 2
Reverse dependency previews
Preview
Definition 2.2.3.1
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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

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.

uses 0
Used by 4
Reverse dependency previews
Preview
Definition 4.2.1.1
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • complete
    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)

    E has only normal crossings with D [Hir64, Ch. 0, §5, Definition 2] (equivalently, D has only normal crossings with E): at every point x of D there is a regular system of parameters (z_1, …, z_n) of 𝒪_{X,x} such that the ideal in 𝒪_{X,x} of each irreducible component of E containing x (a minimal prime of E_x) is generated by one of the z_i, and the ideal of D in 𝒪_{X,x} is generated by some of the z_i.

    On a scheme Hironaka's components are the global irreducible components of E (their local ideals at x are the minimal primes of E_x), each of which is asked to be cut out by a parameter at each of its points of D; so at the points of D the condition is that the reduced subscheme E has simple normal crossings there, and has them with D. On a Noetherian scheme it agrees with DivisorFamily.HasSncWith of the family of irreducible components of E [Kol07, Definition 24 (4)] (Hironaka.Sequence.isSncBoundaryWith_iff_hasSncWith_componentFamily), which is also a condition at the points of D only.

    Nothing is asserted at the points off D: for the unit ideal D = ⊤ (the empty subscheme) the condition holds for every E. 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 with D at the points of D. On a scheme the condition at every point is IsSncBoundary below, asserted separately where it is wanted.

  • complete
    def IsSncBoundary {X : Scheme} (E : X.IdealSheafData) : Prop :=
      E.IsSncBoundaryWith ⊥
    def IsSncBoundary {X : Scheme}
      (E : X.IdealSheafData) : Prop :=
      E.IsSncBoundaryWith ⊥

    Hironaka's "E has only normal crossings" [Hir64, Ch. 0, §5, Definition 2], his Definition 2 with D = X ("we simply say that E has only normal crossings at x") at every point of X ("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 of X itself.

    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 subscheme E. On a Noetherian scheme smooth over a field it agrees with DivisorFamily.IsSnc of the family of irreducible components of E [Kol07, Definition 24 (1)–(3)] (Hironaka.Sequence.isSncBoundary_iff_isSnc_componentFamily).