2.2. The blow-up along an ideal sheaf
Lean names in this section are shown relative to AlgebraicGeometry.Scheme.IdealSheafData, AlgebraicGeometry.Scheme, AlgebraicGeometry, CategoryTheory.
Every resolution and every principalization in this document is a finite succession of blow-ups
\pi \colon \mathrm{Bl}_Z X \to X of a scheme X along a closed subscheme Z, the centre;
Hironaka calls \pi the monoidal transformation with centre Z. The blow-up is characterised
by a universal property: it is the least modification of X along which Z becomes a divisor
(The universal property). Mathlib has schemes, Proj of a graded ring
and gluing, but no blow-up. The library constructs the blow-up along an ideal sheaf I in the
usual way: over an affine open U = \operatorname{Spec} R it is \operatorname{Proj} of the Rees
algebra \bigoplus_n I(U)^n t^n, and these affine pieces are glued over the affine opens of X
[TSPA, Tag 01OF]; [Hau14, Definition 4.4]; [Kol07, Notation 19]. The construction lives in the
namespaces AlgebraicGeometry and AlgebraicGeometry.Scheme.IdealSheafData, and the statements use
it directly: the monoidal transformation with centre D is the blow-up D.blowUp
(Definition 2.2.2.2).
The chapter follows the construction: the grading on the Rees algebra, the affine blow-up, the gluing, the universal property and its consequences, the transforms of an ideal sheaf along a blow-up, and the remaining names of the statements for a single blow-up. It ends with a worked example, the resolution of the cusp by blow-ups of points (Example: resolving the cusp).
2.2.1. The Rees algebra and the affine blow-up
For an ideal I of a ring R, the Rees algebra R[It] = \bigoplus_{n \geq 0} I^n t^n, a
subring of R[t], is graded by the power of t, with R in degree zero; for I = 0 it is
R, and for I = R it is R[t].
For a graded ring A = \bigoplus_{n \geq 0} A_n, the scheme \operatorname{Proj} A has as
points the homogeneous prime ideals not containing the irrelevant ideal
A_+ = \bigoplus_{n > 0} A_n. It is covered by the charts
D_+(f) = \operatorname{Spec}(A_f)_0 for homogeneous f of positive degree, where (A_f)_0 is
the degree-zero part of the localisation, and the inclusion A_0 \to (A_f)_0 makes it a scheme
over \operatorname{Spec} A_0. The blow-up of \operatorname{Spec} R along V(I) is
\operatorname{Proj} R[It], over \operatorname{Spec} R through the degree-zero piece. If
I = (f_1, \dots, f_m), it is covered by the charts
D_+(f_i t) = \operatorname{Spec} R[I / f_i], where R[I/f_i] is the subring of R_{f_i}
generated by the fractions f_j / f_i (when f_i is a non-zero-divisor). In such a chart the
inverse image of V(I) is generated by the single element f_i, because
f_j = (f_j / f_i) f_i: the inverse image of the centre is a divisor, visibly. For
R = k[x, y] and I = (x, y) the charts are k[x, y/x] and k[x/y, y], the two charts of
the plane blown up at the origin: with v = y/x and u = x/y the blow-up map is
(x, v) \mapsto (x, xv) on the first and (u, y) \mapsto (uy, y) on the second, and the
exceptional divisor is x = 0 in the first. Geometrically, when V(I) is nowhere dense,
\operatorname{Proj} R[It] is the closure in \operatorname{Spec} R \times \mathbb{P}^{m-1}
of the graph of x \mapsto [f_1(x) : \dots : f_m(x)], defined off V(I); over a point of
V(I) it records the limiting directions of approach. For I = 0 the irrelevant ideal is zero,
every prime contains it, and \operatorname{Proj} is empty.
-
reesAlgebra.grading[complete] -
reesAlgebra.gradedAlgebra[complete] -
reesAlgebra.gradingZeroEquiv[complete] -
reesAlgebra.mapOfLe[complete]
Mathlib's reesAlgebra I is the subalgebra \bigoplus_n I^n t^n of R[t]. The library
equips it with its grading: the n-th piece reesAlgebra.grading I n consists of the monomials
c\, t^n with c \in I^n. The pieces multiply correctly (gradedMonoid) and span the algebra
as an internal direct sum (isInternal_grading), which makes it a graded algebra
(gradedAlgebra), the input Proj needs. The degree-zero piece is R itself
(gradingZeroEquiv, with algebraMap_mem_grading_zero).
A ring map \varphi \colon R \to S with \varphi(I) \subseteq J induces a graded map of Rees
algebras (mapOfLe); when J = I S the irrelevant ideal of the target lies in the image of
that of the source (irrelevant_le_map_mapOfEq), which is the hypothesis under which Proj
is functorial.
Lean code for Definition2.2.1.1●4 definitions
Associated Lean declarations
-
reesAlgebra.grading[complete]
-
reesAlgebra.gradedAlgebra[complete]
-
reesAlgebra.gradingZeroEquiv[complete]
-
reesAlgebra.mapOfLe[complete]
-
reesAlgebra.grading[complete] -
reesAlgebra.gradedAlgebra[complete] -
reesAlgebra.gradingZeroEquiv[complete] -
reesAlgebra.mapOfLe[complete]
-
defdefined in Hironaka/Scheme/BlowUp/Rees/Defs.leancomplete
The graded pieces of the Rees algebra [Hau14, Definition 4.6]: the variable
thas degree1, so that the elements ofIⁱ · tⁱhave degreei. Thei-th piece is theR-submodule ofreesAlgebra Iof the polynomials all of whose coefficients of indexj ≠ ivanish, that is, of the monomialsc tⁱwithc ∈ I ^ i(reesAlgebra.eq_monomial_of_mem_grading). -
defdefined in Hironaka/Scheme/BlowUp/Rees/Defs.leancomplete
def reesAlgebra.gradedAlgebra {R : Type u} [CommRing R] (I : Ideal R) : GradedAlgebra (reesAlgebra.grading I)
def reesAlgebra.gradedAlgebra {R : Type u} [CommRing R] (I : Ideal R) : GradedAlgebra (reesAlgebra.grading I)
The grading on the Rees algebra,
reesAlgebra I = ⨁ᵢ Iⁱ tⁱas a gradedR-algebra [Hau14, Definition 4.6], from Mathlib's constructorDirectSum.IsInternal.gradedAlgebraapplied toreesAlgebra.isInternal_grading. -
defdefined in Hironaka/Scheme/BlowUp/Rees/Defs.leancomplete
Degree zero is
R[Hau14, Definition 4.6]:Rembeds into the Rees algebra by sendinggto the degree-zero elementg · t⁰. An element of degree zero is the constant polynomial of its constant coefficient, andr ∈ Rgoes to the constantalgebraMap R (reesAlgebra I) r. The compatibility with the grading-induced algebra structure isreesAlgebra.algebraMap_gradingZeroEquiv_symm. -
defdefined in Hironaka/Scheme/BlowUp/Rees/Defs.leancomplete
def reesAlgebra.mapOfLe {R S : Type u} [CommRing R] [CommRing S] (φ : R →+* S) {I : Ideal R} {J : Ideal S} (hIJ : Ideal.map φ I ≤ J) : reesAlgebra.grading I →+*ᵍ reesAlgebra.grading J := let __RingHom := (Polynomial.mapRingHom φ).restrict (reesAlgebra I) (reesAlgebra J) ⋯; { toRingHom := __RingHom, map_mem := ⋯ }
def reesAlgebra.mapOfLe {R S : Type u} [CommRing R] [CommRing S] (φ : R →+* S) {I : Ideal R} {J : Ideal S} (hIJ : Ideal.map φ I ≤ J) : reesAlgebra.grading I →+*ᵍ reesAlgebra.grading J := let __RingHom := (Polynomial.mapRingHom φ).restrict (reesAlgebra I) (reesAlgebra J) ⋯; { toRingHom := __RingHom, map_mem := ⋯ }
The graded ring map
Rees(I) → Rees(J)induced byφ : R →+* Swhenφ(I) ⊆ J:∑ pₙ tⁿ ↦ ∑ φ(pₙ) tⁿ[TSPA, Tag 01OF].
-
affineBlowUp[complete] -
affineBlowUp.π[complete] -
affineBlowUp.mapOfEq[complete] -
affineBlowUp.mapHom[complete]
The affine blow-up of \operatorname{Spec} R along an ideal I is
affineBlowUp I, \operatorname{Proj} of the graded Rees algebra, with the blow-up map
affineBlowUp.π I to \operatorname{Spec} R induced by R \cong (\operatorname{Rees} I)_0.
A ring map \varphi with \varphi(I) S = J induces a morphism affineBlowUp J ⟶ affineBlowUp I
(mapOfEq, and mapHom for a morphism of CommRingCat), lying over
\operatorname{Spec} \varphi; for the restriction to a smaller affine open these are the
transition maps of the gluing. The equality \varphi(I) S = J, and not just an inclusion, is
what makes the induced map of \operatorname{Proj}s defined everywhere: the image of the
irrelevant ideal of R[It] must generate that of S[Jt] up to radical.
Lean code for Definition2.2.1.2●4 definitions
Associated Lean declarations
-
affineBlowUp[complete]
-
affineBlowUp.π[complete]
-
affineBlowUp.mapOfEq[complete]
-
affineBlowUp.mapHom[complete]
-
affineBlowUp[complete] -
affineBlowUp.π[complete] -
affineBlowUp.mapOfEq[complete] -
affineBlowUp.mapHom[complete]
-
abbrevdefined in Hironaka/Scheme/BlowUp/AffineBlowUp/Defs.leancomplete
abbrev affineBlowUp {R : Type u} [CommRing R] (I : Ideal R) : Scheme := Proj (reesAlgebra.grading I)
abbrev affineBlowUp {R : Type u} [CommRing R] (I : Ideal R) : Scheme := Proj (reesAlgebra.grading I)
The affine blow-up of
Spec RalongI:Projof the graded Rees algebra⨁ₙ Iⁿ tⁿ[Hau14, Definition 4.7]; [TSPA, Tags 01OF and 0804]. Anabbrev, so that Mathlib's instances onProj(separatedness, the chart cover, …) apply to it directly. -
defdefined in Hironaka/Scheme/BlowUp/AffineBlowUp/Defs.leancomplete
def affineBlowUp.π {R : Type u} [CommRing R] (I : Ideal R) : affineBlowUp I ⟶ Spec ↧R := Proj.toSpecZero (reesAlgebra.grading I) ≫ Spec.map (reesAlgebra.gradingZeroEquiv I).symm.toCommRingCatIso.hom
def affineBlowUp.π {R : Type u} [CommRing R] (I : Ideal R) : affineBlowUp I ⟶ Spec ↧R := Proj.toSpecZero (reesAlgebra.grading I) ≫ Spec.map (reesAlgebra.gradingZeroEquiv I).symm.toCommRingCatIso.hom
The blow-up map
π : affineBlowUp I ⟶ Spec R, induced by the natural ring homomorphismR → Rees(I)[Hau14, Definition 4.7]:Proj.toSpecZerofollowed bySpecof the degree-zero identificationR ≅ (Rees I)₀. -
defdefined in Hironaka/Scheme/BlowUp/AffineBlowUp/Defs.leancomplete
def affineBlowUp.mapOfEq {R S : Type u} [CommRing R] [CommRing S] {I : Ideal R} {J : Ideal S} (φ : R →+* S) (hJ : Ideal.map φ I = J) : affineBlowUp J ⟶ affineBlowUp I := Proj.map (reesAlgebra.mapOfLe φ ⋯) ⋯
def affineBlowUp.mapOfEq {R S : Type u} [CommRing R] [CommRing S] {I : Ideal R} {J : Ideal S} (φ : R →+* S) (hJ : Ideal.map φ I = J) : affineBlowUp J ⟶ affineBlowUp I := Proj.map (reesAlgebra.mapOfLe φ ⋯) ⋯
The morphism of affine blow-ups
affineBlowUp J ⟶ affineBlowUp Iinduced byφ : R →+* SwithI.map φ = J:Proj.mapof the graded mapRees(I) → Rees(J)[TSPA, Tag 01OF]. -
defdefined in Hironaka/Scheme/BlowUp/AffineBlowUp/Defs.leancomplete
def affineBlowUp.mapHom {R S : CommRingCat} {I : Ideal ↑R} {J : Ideal ↑S} (φ : R ⟶ S) (hJ : Ideal.map (CommRingCat.Hom.hom φ) I = J) : affineBlowUp J ⟶ affineBlowUp I := affineBlowUp.mapOfEq (CommRingCat.Hom.hom φ) hJ
def affineBlowUp.mapHom {R S : CommRingCat} {I : Ideal ↑R} {J : Ideal ↑S} (φ : R ⟶ S) (hJ : Ideal.map (CommRingCat.Hom.hom φ) I = J) : affineBlowUp J ⟶ affineBlowUp I := affineBlowUp.mapOfEq (CommRingCat.Hom.hom φ) hJ
affineBlowUp.mapOfEqfor a morphismφ : R ⟶ SofCommRingCat.
2.2.2. Gluing the affine blow-ups
For a general scheme X and ideal sheaf \mathcal{I}, the blow-up is
\operatorname{Proj}_X \bigoplus_n \mathcal{I}^n, obtained by gluing the affine blow-ups of
\operatorname{Spec} \Gamma(X, U) along \mathcal{I}(U) over the affine opens U of X with
the relative gluing lemma [TSPA, Tag 01LH], in Mathlib's form
Scheme.Cover.RelativeGluingData. The lemma asks that for U \subseteq V the piece over
U be the preimage of U in the piece over V (the natural transformation to the affine cover
is equifibered, Mathlib's NatTrans.Equifibered); for blow-ups this holds because blowing
up commutes with restriction to open subsets, a case of the flat pull-back of blow-ups
(The universal property).
-
affineBlowUpFunctor[complete] -
affineBlowUpNatTrans[complete] -
relativeGluingDataOf[complete] -
blowUpOf[complete] -
blowUpOf.π[complete]
The affine blow-ups over the affine opens of X form a functor on the poset of affine opens,
affineBlowUpFunctor I, U \mapsto affineBlowUp (I.ideal U), with a natural transformation
affineBlowUpNatTrans I to the diagram of the directed affine cover of X. Its naturality squares
are pullbacks (affineBlowUpNatTrans_equifibered): the blow-up of a smaller affine open is the
restriction of the blow-up of a larger one. Given this, Mathlib's relative gluing along the directed
affine cover (relativeGluingDataOf) produces a scheme over X, blowUpOf I h with map
blowUpOf.π. The lemma affineOpens_isAffineOpen restates the affineness of an affine open
in the syntactic form the gluing lemmas need.
Lean code for Definition2.2.2.1●5 definitions
Associated Lean declarations
-
affineBlowUpFunctor[complete]
-
affineBlowUpNatTrans[complete]
-
relativeGluingDataOf[complete]
-
blowUpOf[complete]
-
blowUpOf.π[complete]
-
affineBlowUpFunctor[complete] -
affineBlowUpNatTrans[complete] -
relativeGluingDataOf[complete] -
blowUpOf[complete] -
blowUpOf.π[complete]
-
defdefined in Hironaka/Scheme/BlowUp/AffineBlowUp/Defs.leancomplete
The functor of affine blow-ups on the affine opens of
X,U ↦ affineBlowUp (I.ideal U), with transition map forU ≤ Vthe morphism induced by the restrictionΓ(X, V) → Γ(X, U), along whichI(U) = I(V) Γ(U)(IdealSheafData.map_ideal) [TSPA, Tags 01OF and 01LH]. -
defdefined in Hironaka/Scheme/BlowUp/AffineBlowUp/Defs.leancomplete
def affineBlowUpNatTrans {X : Scheme} (I : X.IdealSheafData) : affineBlowUpFunctor I ⟶ Cover.functorOfLocallyDirected X.directedAffineCover := { app := fun U => affineBlowUp.π (I.ideal U) ≫ ⋯.isoSpec.inv, naturality := ⋯ }
def affineBlowUpNatTrans {X : Scheme} (I : X.IdealSheafData) : affineBlowUpFunctor I ⟶ Cover.functorOfLocallyDirected X.directedAffineCover := { app := fun U => affineBlowUp.π (I.ideal U) ≫ ⋯.isoSpec.inv, naturality := ⋯ }
The structure maps
affineBlowUp (I.ideal U) ⟶ U,πfollowed byU ≅ Spec Γ(X, U), as a natural transformation to the directed affine cover's diagram [TSPA, Tag 01LH]. -
defdefined in Hironaka/Scheme/BlowUp/AffineBlowUp/Defs.leancomplete
def relativeGluingDataOf {X : Scheme} (I : X.IdealSheafData) (h : NatTrans.Equifibered (affineBlowUpNatTrans I)) : Cover.RelativeGluingData X.directedAffineCover := { functor := affineBlowUpFunctor I, natTrans := affineBlowUpNatTrans I, equifibered := h }
def relativeGluingDataOf {X : Scheme} (I : X.IdealSheafData) (h : NatTrans.Equifibered (affineBlowUpNatTrans I)) : Cover.RelativeGluingData X.directedAffineCover := { functor := affineBlowUpFunctor I, natTrans := affineBlowUpNatTrans I, equifibered := h }
The relative gluing datum of the affine blow-ups over the directed affine cover [TSPA, Tag 01LH], given the pullback squares
h. -
abbrevdefined in Hironaka/Scheme/BlowUp/AffineBlowUp/Defs.leancomplete
abbrev blowUpOf {X : Scheme} (I : X.IdealSheafData) (h : NatTrans.Equifibered (affineBlowUpNatTrans I)) : Scheme := (relativeGluingDataOf I h).glued
abbrev blowUpOf {X : Scheme} (I : X.IdealSheafData) (h : NatTrans.Equifibered (affineBlowUpNatTrans I)) : Scheme := (relativeGluingDataOf I h).glued
The blow-up of
XalongI, glued from the affine blow-ups over the affine opens [TSPA, Tags 01OF and 01LH], given the pullback squaresh. -
defdefined in Hironaka/Scheme/BlowUp/AffineBlowUp/Defs.leancomplete
def blowUpOf.π {X : Scheme} (I : X.IdealSheafData) (h : NatTrans.Equifibered (affineBlowUpNatTrans I)) : blowUpOf I h ⟶ X := (relativeGluingDataOf I h).toBase
def blowUpOf.π {X : Scheme} (I : X.IdealSheafData) (h : NatTrans.Equifibered (affineBlowUpNatTrans I)) : blowUpOf I h ⟶ X := (relativeGluingDataOf I h).toBase
The blow-up map
blowUpOf I h ⟶ X.
The blow-up of X along I is I.blowUp, the glued scheme blowUpOf I applied to the
pullback property of the squares, with the blow-up map I.blowUpπ : I.blowUp ⟶ X
[TSPA, Tag 01OF]; [Hau14, Definition 4.4]; [Kol07, Notation 19].
These are the names the statements use: the monoidal transformation of X with centre the
closed subscheme of ideal sheaf D is D.blowUp, with projection D.blowUpπ (Hironaka's f)
[Hir64, Ch. 0, §2].
Lean code for Definition2.2.2.2●2 definitions
-
defdefined in Hironaka/Scheme/BlowUp/Defs.leancomplete
def blowUp {X : Scheme} (I : X.IdealSheafData) : Scheme := blowUpOf I ⋯
def blowUp {X : Scheme} (I : X.IdealSheafData) : Scheme := blowUpOf I ⋯
The blow-up of
XalongI[TSPA, Tag 01OF]; [Hau14, Definition 4.4]; [Kol07, Notation 19]: glued from the affine blow-upsProj Rees(I(U))over the affine opensUofX. -
defdefined in Hironaka/Scheme/BlowUp/Defs.leancomplete
def blowUpπ {X : Scheme} (I : X.IdealSheafData) : I.blowUp ⟶ X := blowUpOf.π I ⋯
def blowUpπ {X : Scheme} (I : X.IdealSheafData) : I.blowUp ⟶ X := blowUpOf.π I ⋯
The blow-up map
π : blowUp I ⟶ X.
2.2.3. The universal property
A morphism f \colon Y \to X is admissible for Z if the inverse image f^{-1}(Z) is an
effective Cartier divisor on Y: its ideal sheaf f^{-1}\mathcal{I}_Z \cdot \mathcal{O}_Y is
invertible, locally generated by one non-zero-divisor (Definition 2.1.4.1). The blow-up
\pi \colon \mathrm{Bl}_Z X \to X is admissible for Z and terminal among admissible
morphisms: every admissible f factors as f = \pi \circ \tilde f for a unique
\tilde f \colon Y \to \mathrm{Bl}_Z X [TSPA, Tag 0806]; it is Kollár's B_Z X
[Kol07, Notation 19]. Being so characterised, it is unique up to unique isomorphism over X,
and the following facts, which the statements rely on, follow.
-
If
Zis already a Cartier divisor,\piis an isomorphism. In particular the blow-up with empty centre (\mathcal{I}_Z = \mathcal{O}_X, the ideal sheaf⊤) changes nothing, and\piis an isomorphism overX \setminus Z. -
Blow-ups pull back. For
h \colon Y \to Xthe blow-up ofYalongh^{-1}(Z)maps to\mathrm{Bl}_Z Xoverh, and whenhis flat (an open immersion, or a smooth morphism) the square is cartesian,\mathrm{Bl}_{h^{-1}Z} Y = \mathrm{Bl}_Z X \times_X Y[TSPA, Tag 0805]. This is the step behind the pull-back of a succession of blow-ups (Definition 2.4.3.1), and so behind the compatibility of the functorial theorems with smooth morphisms (Definition 4.2.4.3). -
Blowing up a whole component deletes it. If
Zcontains an irreducible component of a reducedX, then\mathcal{I}_Zvanishes there and\mathrm{Bl}_Z Xhas nothing over that component. Main Theorem II uses this in a degenerate case (Theorem 4.2.1.2). -
Smooth centre in smooth ambient. If
Xis smooth andZis smooth of codimensionc \geq 2, then\mathrm{Bl}_Z Xis smooth andE = \pi^{-1}(Z) \to Zis the bundle of projective spaces\mathbb{P}^{c-1}of normal directions\mathbb{P}(N_{Z/X}). The principalization theorems blow up only such centres, and assert this of their successions (Definition 4.2.1.1, Definition 4.2.4.2); a resolution of a singularXis read off from such a succession by restriction to the strict transforms ofX, whose centres need not be smooth [Kol07, Warning 23].
The centre is a subscheme, not a set. The blow-up depends on the ideal, not only on its zero
set. Blowing up the plane along (x, y) gives a smooth surface. Blowing it up along (x^2, y),
which has the same zero set, gives a surface with a chart
\operatorname{Spec} k[x, y, u]/(yu - x^2), which is singular. This is why the library takes the
centre as an ideal sheaf, D : X.IdealSheafData, and why "the centre is smooth" is a condition on
the subscheme.
A morphism f \colon Y \to X along which the inverse image of I is invertible lifts through the
blow-up (blowUp.exists_lift, [TSPA, Tag 0806]; [Hau14, Theorem 4.18 (a)]); blowUp.lift
is a lift, chosen from this existence statement. In particular, when I itself is invertible the
blow-up map is an isomorphism, its inverse being the lift of the identity
(blowUp.isIso_π_of_isInvertible, [Kol07, Warning 20]); this covers the empty centre I = \top.
For h \colon Y \to X, the composite of the blow-up map of Y along h^{-1}(D) with h
pulls D back to an invertible ideal (isInvertible_comap_π_comp), so it lifts to the morphism
of blow-ups Scheme.Hom.blowUpMap h D : (D.comap h).blowUp ⟶ D.blowUp over h
[Kol07, Definition 30, 30.1]; [TSPA, Tag 0805]. This is how successions of blow-ups are pulled
back along morphisms (Definition 2.4.3.1).
Lean code for Definition2.2.3.1●2 definitions
Associated Lean declarations
-
blowUp.lift[complete]
-
Hom.blowUpMap[complete]
-
blowUp.lift[complete] -
Hom.blowUpMap[complete]
-
defdefined in Hironaka/Scheme/BlowUp/BlowUpMap/Defs.leancomplete
def blowUp.lift {X : Scheme} (I : X.IdealSheafData) {Y : Scheme} (f : Y ⟶ X) (hf : (I.comap f).IsInvertible) : Y ⟶ I.blowUp := ⋯.choose
def blowUp.lift {X : Scheme} (I : X.IdealSheafData) {Y : Scheme} (f : Y ⟶ X) (hf : (I.comap f).IsInvertible) : Y ⟶ I.blowUp := ⋯.choose
The lift of an admissible
f : Y ⟶ Xto the blow-up. -
defdefined in Hironaka/Scheme/BlowUp/BlowUpMap/Defs.leancomplete
The morphism of blow-ups induced by
h : Y ⟶ X,blowUp (D.comap h) ⟶ blowUp Doverh[Kol07, Definition 30, 30.1]; [TSPA, Tag 0805]: the lift of the admissibleπ_Y ≫ hthrough the universal property ofB_D X. For an open immersionh = U.ιit is the restrictionblowUp (D|_U) ⟶ blowUp D, an isomorphism ontoπ⁻¹(U)(blowUp.restrictIso).
2.2.4. Transforms along a blow-up
-
colon[complete] -
saturate[complete] -
exceptionalOrderAlong[complete] -
controlledTransformAlong[complete] -
weakTransformAlong[complete] -
strictTransformAlong[complete]
For a morphism \pi \colon B \to X, an ideal sheaf E on B (the exceptional divisor, in the
application) and an ideal sheaf J on X with total transform J^* = \pi^{-1}(J):
-
the colon ideal sheaf
(I : K), the largest ideal sheafLwithL K \le I(colon), and theK-power saturation\bigcup_i (I : K^i)(saturate); -
the exceptional order (
exceptionalOrderAlong): the largestmwithE^mdividingJ^*[Hir64, Ch. 0, §5, p. 142]; -
the controlled transform with control
c,(J^* : E^c)(controlledTransformAlong, [Hau14, Definition 6.8]; [Kol07, Definition 60]); -
the weak transform (
weakTransformAlong), the controlled transform with the exceptional order as control:J^*divided by the largest power ofEdividing it; -
the strict transform (
strictTransformAlong), theE-saturation ofJ^*[Hau14, Definition 6.2]; [TSPA, Tag 080D].
The weak transform divides by one exponent for the whole exceptional divisor. For an irreducible
non-singular centre this is Hironaka's weak transform, the exponent being the order of J along
the centre; see Definition 2.2.5.2 for the convention for a disconnected centre.
Lean code for Definition2.2.4.1●6 definitions
Associated Lean declarations
-
colon[complete]
-
saturate[complete]
-
exceptionalOrderAlong[complete]
-
controlledTransformAlong[complete]
-
weakTransformAlong[complete]
-
strictTransformAlong[complete]
-
colon[complete] -
saturate[complete] -
exceptionalOrderAlong[complete] -
controlledTransformAlong[complete] -
weakTransformAlong[complete] -
strictTransformAlong[complete]
-
defdefined in Hironaka/Scheme/IdealSheaf/Defs.leancomplete
def colon {X : Scheme} (I K : X.IdealSheafData) : X.IdealSheafData := ofIdeals fun U => Submodule.colon (I.ideal U) ↑(K.ideal U)
def colon {X : Scheme} (I K : X.IdealSheafData) : X.IdealSheafData := ofIdeals fun U => Submodule.colon (I.ideal U) ↑(K.ideal U)
The colon ideal sheaf
(I : K): the largest ideal sheaf whose sections over every affine open lie in the colon ideal(I(U) : K(U)); equivalently (le_colon_iff_mul_le) the largestJwithJ * K ≤ I. -
defdefined in Hironaka/Scheme/IdealSheaf/Defs.leancomplete
def saturate {X : Scheme} (I K : X.IdealSheafData) : X.IdealSheafData := ⨆ i, I.colon (K ^ i)
def saturate {X : Scheme} (I K : X.IdealSheafData) : X.IdealSheafData := ⨆ i, I.colon (K ^ i)
The
K-power torsion saturation⋃ᵢ (I : Kⁱ)ofI[Hau14, Definition 6.2]; [TSPA, Tag 080D] (the sections supported on the divisor). -
defdefined in Hironaka/Scheme/BlowUp/Transform/Defs.leancomplete
The exceptional order: the largest
msuch thatE ^ mdividesJ.comap π, as a natural number (0if unbounded, i.e.J* = 0). For a non-singular irreducible centre in a non-singular scheme this isν(J)at the generic point of the centre [Hir64, Ch. 0, §5, p. 142]. -
defdefined in Hironaka/Scheme/BlowUp/Transform/Defs.leancomplete
def controlledTransformAlong {B X : Scheme} (J : X.IdealSheafData) (π : B ⟶ X) (E : B.IdealSheafData) (c : ℕ) : B.IdealSheafData := (J.comap π).colon (E ^ c)
def controlledTransformAlong {B X : Scheme} (J : X.IdealSheafData) (π : B ⟶ X) (E : B.IdealSheafData) (c : ℕ) : B.IdealSheafData := (J.comap π).colon (E ^ c)
The controlled transform of
Jwith controlc,(J* : E^c)[Hau14, Definition 6.8]; [Kol07, Definition 60, (60.1)]; forE ^ c ∣ J*it is the unique ideal sheaf withJ* = E^c · J^!(pow_mul_colon_of_dvd,colon_pow_eq_of_mul_eq). -
defdefined in Hironaka/Scheme/BlowUp/Transform/Defs.leancomplete
def weakTransformAlong {B X : Scheme} (J : X.IdealSheafData) (π : B ⟶ X) (E : B.IdealSheafData) : B.IdealSheafData := J.controlledTransformAlong π E (exceptionalOrderAlong π E J)
def weakTransformAlong {B X : Scheme} (J : X.IdealSheafData) (π : B ⟶ X) (E : B.IdealSheafData) : B.IdealSheafData := J.controlledTransformAlong π E (exceptionalOrderAlong π E J)
The weak transform, the controlled transform with the exceptional order as control [Hir64, Ch. 0, §5, p. 142]; [Hau14, Definition 6.8] (
I^g = I_E^{-ord_Z I} · I*). -
defdefined in Hironaka/Scheme/BlowUp/Transform/Defs.leancomplete
def strictTransformAlong {B X : Scheme} (J : X.IdealSheafData) (π : B ⟶ X) (E : B.IdealSheafData) : B.IdealSheafData := (J.comap π).saturate E
def strictTransformAlong {B X : Scheme} (J : X.IdealSheafData) (π : B ⟶ X) (E : B.IdealSheafData) : B.IdealSheafData := (J.comap π).saturate E
The strict transform of
Jalongπwith respect to the divisorE: theE-power torsion saturation of the total transformJ.comap π[Hau14, Definition 6.2]; [TSPA, Tag 080D]. The strict transform of a closed subscheme ofXunder the blow-up is this alongD.blowUpπwithEthe exceptional ideal.
2.2.5. The exceptional divisor and the push-forward of a blow-up
-
exceptionalDivisor[complete] -
Hom.pushforwardBlowUp[complete]
Along the monoidal transformation D.blowUp (Definition 2.2.2.2),
D.exceptionalDivisor is the inverse image ideal sheaf f^{-1}(D) of the centre on the blow-up.
For a closed immersion j \colon Y \to X and a centre Z \subseteq Y,
j.pushforwardBlowUp Z : Z.blowUp ⟶ (Z.map j).blowUp is the induced closed immersion onto the
strict transform of Y, the blow-up of X along j_* Z [Kol07, Definition 30, 30.2 and 30.3], a closed immersion by the instance Scheme.instIsClosedImmersionPushforwardBlowUp.
Lean code for Definition2.2.5.1●2 definitions
Associated Lean declarations
-
exceptionalDivisor[complete]
-
Hom.pushforwardBlowUp[complete]
-
exceptionalDivisor[complete] -
Hom.pushforwardBlowUp[complete]
-
defdefined in Hironaka/Scheme/BlowUp/Defs.leancomplete
def exceptionalDivisor {X : Scheme} (D : X.IdealSheafData) : D.blowUp.IdealSheafData := D.comap D.blowUpπ
def exceptionalDivisor {X : Scheme} (D : X.IdealSheafData) : D.blowUp.IdealSheafData := D.comap D.blowUpπ
The ideal sheaf of the exceptional divisor
f⁻¹(D): the inverse image ideal sheaf of the centre under the projection [Hir64, Ch. 0, §5, p. 142]; [Kol07, Notation 19]. -
defdefined in Hironaka/Scheme/BlowUp/BlowUpMap/Defs.leancomplete
def Hom.pushforwardBlowUp {X Y : Scheme} (j : Y ⟶ X) [IsClosedImmersion j] (Z : Y.IdealSheafData) : Z.blowUp ⟶ (Z.map j).blowUp := eqToHom ⋯ ≫ Hom.blowUpMap j (Z.map j)
def Hom.pushforwardBlowUp {X Y : Scheme} (j : Y ⟶ X) [IsClosedImmersion j] (Z : Y.IdealSheafData) : Z.blowUp ⟶ (Z.map j).blowUp := eqToHom ⋯ ≫ Hom.blowUpMap j (Z.map j)
For a closed immersion
j : Y ⟶ Xand a centreZ ⊆ Y, the induced closed immersionZ.blowUp ⟶ blowUp X (j_* Z)onto the strict transform ofY[Kol07, Definition 30, 30.2 and 30.3]: the liftblowUpMap j (j_* Z), whose sourceblowUp Y ((j_* Z)·𝒪_Y)isZ.blowUpbecause(Z.map j).comap j = Zfor a closed immersion (AlgebraicGeometry.comap_map_of_isClosedImmersion). The closed-immersion hypothesis is essential: for a generaljthe hom-set can be empty (the foldX ⊔ X ⟶ XwithZ = (⊤, ⊥)hasZ.blowUp ≅ Xand(Z.map j).blowUp = blowUp X ⊥ = ∅).
-
weakTransform[complete] -
strictTransform[complete] -
reducedTransform[complete]
Along the monoidal transformation with centre D:
-
J.weakTransform Dis Hironaka's weak transform ofJ: forDnon-singular and irreducible,f^{-1}(J)is divisible by them-th power of the ideal off^{-1}(D),mthe order ofJat the generic point ofD, and the weak transform is the quotient; -
Y.strictTransform Dis the strict (birational) transform of the closed subschemeY[Hir64, Ch. 0, §2, pp. 129–130]; [Kol07, Definition 30, 30.2]; -
E.reducedTransform Dis Hironaka's\mathrm{red}(f^{-1}(E) \cup f^{-1}(D)), the reduced closed subscheme of the blow-up on that set of points, the next boundary in Main Theorems II and II(N).
Lean code for Definition2.2.5.2●3 definitions
Associated Lean declarations
-
weakTransform[complete]
-
strictTransform[complete]
-
reducedTransform[complete]
-
weakTransform[complete] -
strictTransform[complete] -
reducedTransform[complete]
-
abbrevdefined in Hironaka/Scheme/BlowUp/Transform/Defs.leancomplete
abbrev weakTransform {X : Scheme} (J D : X.IdealSheafData) : D.blowUp.IdealSheafData := J.weakTransformAlong D.blowUpπ D.exceptionalDivisor
abbrev weakTransform {X : Scheme} (J D : X.IdealSheafData) : D.blowUp.IdealSheafData := J.weakTransformAlong D.blowUpπ D.exceptionalDivisor
Hironaka's weak transform of
Jby the monoidal transformation with centreD[Hir64, Ch. 0, §5, p. 142; Ch. I, §3, p. 176]: forDnon-singular irreducible andm = ν(J_x)at the generic pointxofD,f⁻¹(J)is divisible by them-th power of the ideal off⁻¹(D), and the weak transform is the quotient. -
abbrevdefined in Hironaka/Scheme/BlowUp/Transform/Defs.leancomplete
abbrev strictTransform {X : Scheme} (Y D : X.IdealSheafData) : D.blowUp.IdealSheafData := Y.strictTransformAlong D.blowUpπ D.exceptionalDivisor
abbrev strictTransform {X : Scheme} (Y D : X.IdealSheafData) : D.blowUp.IdealSheafData := Y.strictTransformAlong D.blowUpπ D.exceptionalDivisor
The strict (birational) transform of the closed subscheme
Yunder the blow-up with centreD[Hir64, Ch. 0, §2, pp. 129–130]; [Kol07, Definition 30, 30.2]:AlgebraicGeometry.Scheme.IdealSheafData.strictTransformAlong. -
defdefined in Hironaka/Scheme/BlowUp/Transform/Defs.leancomplete
def reducedTransform {X : Scheme} (E D : X.IdealSheafData) : D.blowUp.IdealSheafData := vanishingIdeal (E.support.preimage ⋯ ⊔ D.support.preimage ⋯)
def reducedTransform {X : Scheme} (E D : X.IdealSheafData) : D.blowUp.IdealSheafData := vanishingIdeal (E.support.preimage ⋯ ⊔ D.support.preimage ⋯)
Hironaka's
red(f⁻¹(E) ∪ f⁻¹(D))[Hir64, Main Theorem II (iii); Main Theorem II(N) (3)]: the reduced closed subscheme of the blow-up whose set of points isf⁻¹(E) ∪ f⁻¹(D), as the vanishing ideal sheaf of that closed set (II(N) writesred(f⁻¹(E ∪ D)), the same reduced subscheme: both are the reduced structure onf⁻¹(|E| ∪ |D|)).
2.2.6. Example: resolving the cusp
Take the cusp C = \{y^2 = x^3\} in the plane, singular at the origin, and blow up the plane at
the origin. In the chart (x, v) \mapsto (x, xv) the equation becomes x^2 v^2 = x^3, that is,
x^2 (v^2 - x) = 0. The factor x^2 is the exceptional divisor E_1 = \{x = 0\}, counted
twice. What remains, x = v^2, is the strict transform C_1, the closure of the part of
\pi^{-1}(C) lying off E_1: a parabola, which is smooth. In the other chart,
(u, y) \mapsto (uy, y), the equation is y^2(1 - u^3 y) = 0 and C_1 does not meet E_1.
Over \mathbb{C} the cusp is the image of t \mapsto (t^2, t^3), and C_1 is its smooth
parametrising curve, with v = y/x = t.
The curve on its own. The strict transform of C is the blow-up of C itself at the point
[TSPA, Tag 080E]. So C_1 \to C is a succession of one blow-up of C that is a strong
resolution (Definition 4.2.6.2, Theorem 4.2.7.1): C_1 is
smooth, the map is an isomorphism away from the cusp point, and the preimage of
\operatorname{Sing} C = \{0\} is one point on a smooth curve, a simple normal crossings
divisor. Whether Kollár's resolution functor assigns exactly this blow-up to C depends on his
construction; the theorems assert only these properties.
Inside the plane. Viewed in the plane, C_1 is tangent to E_1 at the origin of the chart
(the parabola x = v^2 touches the line x = 0), in the horizontal direction, the tangent line
y = 0 of the cusp. Making the curve and all the exceptional curves cross normally takes two more
blow-ups of points, each computed, like the first, in local coordinates centred at the point.
-
Blow up the tangency point. In the chart
x = vwthe equationx^2(v^2 - x)becomesv^3 w^2 (v - w): the new exceptional curveE_2 = \{v = 0\}with multiplicity3, the strict transform ofE_1as\{w = 0\}with multiplicity2, andC_2 = \{v = w\}. The three curves meet transversally in pairs, but all three pass through one point, which is not normal crossings (Normal crossings). -
Blow up the triple point. In the chart
w = vsthe equation becomesv^6 s^2 (1 - s): the new curveE_3 = \{v = 0\}with multiplicity6, the strict transform ofE_1ats = 0,C_3ats = 1, andE_2ats = \infty(in the other chart). The curvesE_1,C_3,E_2each crossE_3transversally at distinct points, and none of them meet each other. The total transform6E_3 + 3E_2 + 2E_1 + C_3has simple normal crossings.
This embedded problem is the one the proofs solve. Kollár's proof embeds X in a smooth ambient
space and principalizes the ideal of X (Theorem 4.2.4.6), making its pull-back
the ideal of a simple normal crossings divisor, as v^6 s^2 (1 - s) is above; the resolution of
X is read off from that succession, restricted to X and stopped at the right moment (the
proof sketch after Theorem 4.2.6.3).