Blow-ups commute with flat base change #
For a flat g : X₁ ⟶ X₂ and a centre I on X₂, the blow-up of X₁ along I·𝒪_{X₁} = I.comap g
is the fibre product X₁ ×_{X₂} B_I X₂ [TSPA, Tag 0805]. The restriction of a blow-up to an open
subscheme [Hau14, Corollary 5.2 (b)] is the case of an open immersion, the blow-up of a product
[Hau14, Corollary 5.2 (e)] the case of a product projection. The flat case along
Spec 𝒪_{X,x} ⟶ X gives the local structure of a blow-up at a point
(Hironaka.Scheme.Smooth.LocalBlowUp), and along a flat morphism of bases it gives the induced
morphism of blow-ups (Hironaka.Scheme.BlowUp.BlowUpMap).
The argument, from the universal property #
The Stacks Project proves the lemma by computing the relative Proj: flatness makes
g^*Iⁿ → 𝒪_{X₁} injective with image (I·𝒪_{X₁})ⁿ. The proof below reaches the same statement
from the same hypotheses through the universal property [Hau14, Definition 4.4] alone, in the
manner of Hauser's proof of [Hau14, Proposition 5.1] (the universal property of the blow-up
against the universal property of the fibre product), so that it applies to any π with
IsBlowUp I π.
Let P := X₁ ×_{X₂} B₂ with projections p₁ : P ⟶ X₁, p₂ : P ⟶ B₂, and write I₁ := I.comap g.
P ⟶ X₁is admissible forI₁.I₁.comap p₁ = I.comap (p₁ ≫ g) = I.comap (p₂ ≫ π₂) = (I.comap π₂).comap p₂;I.comap π₂is invertible (clause (i) forπ₂) andp₂, the base change of the flatg, is flat, and the inverse image of an invertible ideal sheaf along a flat morphism is invertible (IsInvertible.comap_of_flat: a nonzerodivisor stays a nonzerodivisor under a flat ring map, the injectivity that flatness gives in [TSPA, Tag 0805], forn = 1). Sop₁lifts toτ : P ⟶ B₁withτ ≫ π₁ = p₁.π₁ ≫ gis admissible forI(I.comap (π₁ ≫ g) = I₁.comap π₁, clause (i) forπ₁), so it lifts toφ : B₁ ⟶ B₂withφ ≫ π₂ = π₁ ≫ g; this is the morphism of the square, andσ := (π₁, φ) : B₁ ⟶ Pis the canonical comparison map.σandτare inverse.σ ≫ τand𝟙 B₁are two lifts ofπ₁alongπ₁, which is admissible forI₁, so they agree (clause (ii)).τ ≫ φandp₂are two lifts alongπ₂of the admissiblep₁ ≫ g = p₂ ≫ π₂, so they agree; henceτ ≫ σagrees with𝟙 Pon both projections. ThereforeB₁ ≅ Pover the two projections: the square is cartesian.
Nothing about B₁, B₂ beyond the two clauses is used; no Noetherian, separatedness or
finiteness hypothesis enters ([TSPA, Tag 0805] has none).
Main declarations #
IdealSheafData.IsInvertible.comap_of_flat: the inverse image of an invertible ideal sheaf along a flat morphism is invertible.IsBlowUp.exists_isPullback_of_flat,IsBlowUp.exists_isPullback_of_etale,IsBlowUp.exists_isPullback_prod(with the pasted squareB_{Z × a}(Z ×_S Y) = Z ×_S B_a Y).exists_restrictIso_of_isPullback: the pullback square of a blow-up along an openU ⊆ Xread as Hauser prints it, an isomorphismB_{I|_U} U ≅ π⁻¹(U)carryingπ_Uto the restrictionπ ∣_ U— both are pullbacks of the same cospan.
Every morphism to Spec k, k a field, is flat (flat_of_field, in
Hironaka/Scheme/Smooth/ExceptionalBaseChange.lean), which makes Hauser's product formula over a
field an instance of flat base change.
The inverse image of an invertible ideal sheaf along a flat morphism is invertible (flatness
of g makes g^*𝓘ⁿ → 𝒪 injective [TSPA, Tag 0805], here for n = 1). On an affine open
V ⊆ f⁻¹(U) with J(U) = (a), (J.comap f)(V) = (f♯a) (ideal_comap_of_le) and f♯a is a
nonzerodivisor because f♯ : Γ(U) → Γ(V) is flat and multiplication by a is injective.
The blow-up of an open U along U ∩ Z is the restriction of π to π⁻¹(U)
[Hau14, Corollary 5.2 (b)]: a pullback square B' → B over U.ι : U → X gives an isomorphism
B' ≅ π⁻¹(U) carrying π' : B' ⟶ U to Mathlib's restriction π ∣_ U, because π⁻¹(U) with
π ∣_ U is a pullback of the same cospan (isPullback_morphismRestrict).
Blowing up commutes with flat base change [TSPA, Tag 0805], proved from the universal
property as described in the module docstring: for g : X₁ ⟶ X₂ flat and blow-ups π₂ : B₂ ⟶ X₂
along I and π₁ : B₁ ⟶ X₁ along I.comap g in the sense of IsBlowUp, there is φ : B₁ ⟶ B₂
over g with B₁ = X₁ ×_{X₂} B₂.
The base-change square for an étale g [TSPA, Tag 0805] (étale morphisms are flat, Mathlib's
Etale → Smooth → Flat).
The blow-up of a product [Hau14, Corollary 5.2 (e)], over any base S with Z ⟶ S flat
(Hauser's case is S = Spec k, where every morphism is flat): the blow-up of
Z ×_S Y along Z × a = a.comap pr₂ is the flat base change of B_a Y ⟶ Y along the projection
pr₂, and, pasting with the product square, it is Z ×_S B_a Y: B' = Z ×_S B_a Y over
Z ⟶ S ⟵ B_a Y ⟶ Y ⟶ S.