Local existence of hypersurfaces of maximal contact #
[Kol07, Theorem 80 (2)]: for m = max-ord I, every point of X has a neighbourhood on which a
smooth hypersurface of maximal contact exists. Kollár's proof is three sentences: at a point x
with ord_x I = m, ord_x MC(I) = 1 by [Kol07, Lemma 74 (3)]; so some local section of MC(I)
has order 1 at x; and its zero divisor is smooth near x. This file carries them out on
ideal sheaves, and adds the two things the printed proof does not spell out: the points where
ord_x I < m (there MC(I) is the unit ideal sheaf near x, and the empty hypersurface ⊤
works) and the transport of the equation from the affine open where it is found to the open where
its zero divisor is smooth. [Kol07, Aside 81] notes that such an H exists locally but usually
not globally; only the local statement is proved here.
- The ideal sheaf of a section.
principal h(Hironaka/Resolution/Algebraic/MaximalContact/Principal.lean) is described byprincipal_ideal,stalkIdeal_principal,principal_le_iff,principal_oneandord_principal;comap_principalsays that it restricts as the section does,(principal h).comap g = principal (g^* h)(stalkwise: the germ ofg^* hatyis the image of the germ ofhatg y, Mathlib'sgerm_stalkMap_apply). - From the stalk to a section.
ord_x MC(I) = 1gives an elementa ∈ MC(I)_xwitha ∈ 𝔪_x ∖ 𝔪_x²(ordElem_eq_one_iff); the stalk is the localization ofMC(I)(U)atxfor an affineU ∋ x(Mathlib'sIsAffineOpen.isLocalization_stalk), soa · germ u = germ swiths ∈ MC(I)(U)anduinvertible atx; multiplying by a unit does not change the order (ordElem_mul_of_isUnit), soordElem (germ s) = 1. - The smooth locus of an equation. For a global section
hof order1atx, the set{y | ord_y (h) < 2}is open (upper semicontinuity of the order, which is where smoothness in characteristic zero enters) and containsx; on it, at every point ofV(h), the germ ofhlies in𝔪 ∖ 𝔪²(order exactly1), which is the generator clause ofIsSmoothDivisor, and𝒪_y/(h)is regular (IsRegularLocalRing.quotient_span_singleton), which gives the regularity ofV(h). The order of the restricted sheaf is read off withord_comap_ι. - The unit case. Where
ord_x I < m, the open{ord I < m}hasord MC(I) = 0at every point, soMC(I|_U) = (MC I)|_U = 𝒪_U. - Assembly. Under
max-ord I = m,ord_x I ≤ m; ifm = 0thenI = 𝒪_XandU = X,h = 1; iford_x I < m, the unit case andh = 1; iford_x I = m ≥ 1, the section of order one lives on an affineU₁and is viewed as a global sectionh₂of the open subschemeU₁(Mathlib'sOpens.topIso), whose germ atxhas order1(the stalks ofU₁are those ofX,Opens.stalkIso) and whose ideal sheaf lies inMC(I|_{U₁}); the smooth locus ofh₂is an openV ∋ xofU₁; the final open is the range ofV ⟶ U₁ ⟶ X, identified withVby Mathlib'sisoOpensRange, along whichprincipal,IsSmoothDivisorandIsMaximalContactare transported bycomap. - The dynamic form.
IsOrderSeq.strictTransformSeq_le_center_of_le_MCturns the static hypersurface into a dynamic one on every open immersion, exactly as inisDynamicMaximalContact_of_isMaximalContact, without Kollár'sI|_H ≠ 0(which a localHneed not satisfy).
The local hypersurfaces are the input of the globalization of blow-up sequences
([Kol07, Theorem 105], Hironaka/Resolution/Algebraic/Kol07/MaximalContactGlobalization.lean),
which patches the order reduction on the opens U into one on X.
Multiplying by a unit does not change the order of an element.
The ideal sheaf of a section: the five unfoldings and restriction #
On every affine open U the ideal sheaf generated by h is the principal ideal (h|_U)
(Mathlib's ofIdealTop_ideal: the image of the ideal (h) of the global sections).
The stalk of (h) at x is generated by the germ of h.
h is a section of J iff (h) ≤ J.
The order of (h) at x is the order of the germ of h.
The ideal sheaf of a section restricts as the section does: along g : Y ⟶ X, (h) pulls
back to (g^* h). Stalkwise, the germ of g^* h at y is the image of the germ of h at g y
(germ_stalkMap_apply).
The section of order one, and the unit case, on a smooth scheme #
If MC(I) has order 0 at every point of an open U, then MC of the restriction I|_U is
the unit ideal sheaf: MC commutes with the (smooth) open immersion, and an ideal sheaf whose
stalks are all the unit ideal is ⊤.
The points the proof of [Kol07, Theorem 80 (2)] passes over: at a point where ord_x I < m,
the open {ord I < m} carries MC(I|_U) = 𝒪_U, since MC(I) has order 0 there.
The first two sentences of the proof of [Kol07, Theorem 80 (2)]: at a point of order m ≥ 1
of I, ord_x MC(I) = 1, so MC(I)_x contains an element a of 𝔪_x ∖ 𝔪_x²; the stalk is the
localization of MC(I)(U) at x for an affine U ∋ x, so a · germ u = germ s with
s ∈ MC(I)(U) and u invertible at x, and germ s has order 1 as well.
The smooth locus of an equation of order one #
The last sentence of the proof of [Kol07, Theorem 80 (2)], "its zero divisor is smooth in a
neighborhood of x": for a global section h whose germ at x has order exactly 1, the open
set U := {y | ord_y (h) < 2} contains x, and on it the ideal sheaf (h) is a smooth divisor:
at every point of V(h) ∩ U the germ of h lies in 𝔪 ∖ 𝔪² (order exactly 1,
ordElem_eq_one_iff), and the quotient of the regular stalk by it is regular
(IsRegularLocalRing.quotient_span_singleton), so V(h) ∩ U is regular.
Theorem 80 (2): the assembly and its corollaries #
[Kol07, Theorem 80 (2)]: for m = max-ord I, every point has an open neighbourhood U
with a section h ∈ 𝒪(U) whose zero divisor (h) is a smooth hypersurface of U with
(h) ⊆ MC(I|_U). Where ord_x I < m (or m = 0, when I = 𝒪_X), h = 1 on the open where
MC(I|_U) = 𝒪_U; where ord_x I = m ≥ 1, exists_mem_ideal_MC_ordElem_eq_one gives the
equation on an affine open U₁, viewed as a global section of the open subscheme U₁,
exists_opens_isSmoothDivisor_comap_principal gives the open V ⊆ U₁ where its zero divisor is
smooth, and the data are transported to the open V ⟶ U₁ ⟶ X of X along Mathlib's
isoOpensRange.
[Kol07, Theorem 80 (2)] with the hypersurface as an ideal sheaf: for m = max-ord I, every
point has an open neighbourhood carrying a smooth divisor that is a static hypersurface of maximal
contact for the restricted ideal.
[Kol07, Theorem 80 (1) and (2)] together: for m = max-ord I ≥ 1, every point has an open
neighbourhood carrying a smooth divisor that is a hypersurface of maximal contact in the static and
the dynamic sense; the dynamic form is IsOrderSeq.strictTransformSeq_le_center_of_le_MC on every
open immersion, exactly as in isDynamicMaximalContact_of_isMaximalContact, and needs no
I|_H ≠ 0.