Documentation

Hironaka.Algebra.Local.Chart

The chart ring: injectivity, the transformed derivations, the presentation, the origin #

R is a regular local ring, x : Fin n → R a regular system of parameters, r : Fin n, and R' = R[xᵢ/x_r : i < r] ⊆ R[1/x_r] the chart ring of Hironaka/Algebra/Local/ChartRing.lean: the ring of Kollár's chart (60.2) of the blow-up of (x₁ = ⋯ = x_r = 0) [Kol07, Definition 60]. This file proves its basic properties: the injectivity of R → R', the extension of derivations to R[1/a], the identities ∂'ⱼ yₖ = δⱼₖ for the transformed derivations and the stability of R' under them, the surjectivity of the presentation R[Y_i : i < r] → R', and the origin 𝔪' of the chart together with the other rational points 𝔪'_a of the exceptional fibre (maximal ideals lying over 𝔪 with the same residue field).

The algebra map is injective #

R is a domain (isDomain_of_isRegularLocalRing) and x_r ≠ 0 (it is not even in 𝔪²), so R → R[1/x_r] is injective (IsLocalization.injective), and R → R' is its restriction.

Extension of derivations #

D.extendAway a is Derivation.localization at Submonoid.powers a; it restricts to D, it is the unique such derivation, and on f/aᵐ it is given by the quotient rule (a · D f − m · f · D a)/aᵐ⁺¹: the general formula (s · D f − f · D s)/s² with s = aᵐ and D(aᵐ) = m aᵐ⁻¹ D a, cleared of the common factor aᵐ⁻¹.

The transformed derivations #

Write u = 1/x_r ∈ R[1/x_r], so x_r u = 1, yₖ = xₖ u for k < r and yₖ = xₖ for k ≥ r. Each extended coordinate derivation ∂ⱼ satisfies ∂ⱼ u = −u² ∂ⱼ(x_r) = −δⱼᵣ u² (Derivation.leibniz_of_mul_eq_one), hence, by Leibniz, ∂ⱼ yₖ = δⱼₖ u − δⱼᵣ xₖ u² for k < r and ∂ⱼ yₖ = δⱼₖ for k ≥ r. The transformed derivations ∂'ⱼ = x_r ∂ⱼ (j < r), ∂'_r = ∂_r + ∑_{i<r} yᵢ ∂ᵢ, ∂'ⱼ = ∂ⱼ (j > r) then give ∂'ⱼ yₖ = δⱼₖ by the identity x_r u = 1: for j < r the factor x_r cancels the u; for j = r and k < r the term −xₖ u² of ∂_r yₖ is cancelled by the single surviving term yₖ ∂ₖ yₖ = xₖ u · u of the sum (the table of derivatives in the proof of [Wlo05, Lemma 2.6.3]; [BM08, Lemma 3.1]). Each ∂'ⱼ maps R' into R' because it maps the generators yₖ (k < r) and the image of R into R' (∂'ⱼ(a) = x_r ∂ⱼ a, ∂_r a + ∑ yᵢ ∂ᵢ a or ∂ⱼ a) and R' is closed under sums and Leibniz products (Algebra.adjoin_induction).

The presentation is surjective #

R[Y_i : i < r] → R' has range Algebra.adjoin R {yᵢ : i < r} (MvPolynomial.aeval_range), which is all of R' by definition of the chart ring. The kernel (the Koszul relations) is computed in Hironaka/Algebra/Local/ChartPresentation.lean.

The origin and the other points of the fibre #

𝔪' = ⟨y₁, …, yₙ⟩ R' is a maximal ideal lying over 𝔪 with residue field K: Kollár's "p', the origin of the chart" in the proof of [Kol07, Lemma 61]. The shifted coordinates x'ᵢ = xᵢ − ãᵢ x_r define the same chart ring with the point 𝔪'_a as origin: Kollár's linear change of the (x₁, …, x_r)-coordinates that "moves the origin of the chart" in the same proof. The transformed derivations, packaged as derivations of R' (chartDerivRing), are the coordinate derivations of the chart used in Hironaka/Algebra/Local/ChartCoords.lean and Hironaka/Algebra/Local/TransformDeriv.lean.

theorem Derivation.finset_sum_apply {k : Type u_1} {A : Type u_2} [CommRing k] [CommRing A] [Algebra k A] {ι : Type u_3} {M : Type u_4} [AddCommGroup M] [Module k M] [Module A M] (s : Finset ι) (D : ι → Derivation k A M) (z : A) :
(∑ i ∈ s, D i) z = ∑ i ∈ s, (D i) z

A finite sum of derivations, applied.

theorem Derivation.extendAway_algebraMap {k : Type u_1} {A : Type u_2} [CommRing k] [CommRing A] [Algebra k A] (D : Derivation k A A) (a f : A) :

D.extendAway a restricts to D.

theorem Derivation.eq_extendAway_of_algebraMap {k : Type u_1} {A : Type u_2} [CommRing k] [CommRing A] [Algebra k A] (D : Derivation k A A) (a : A) (D' : Derivation k (Localization.Away a) (Localization.Away a)) (h : ∀ (f : A), D' ((algebraMap A (Localization.Away a)) f) = (algebraMap A (Localization.Away a)) (D f)) :
D' = D.extendAway a

Uniqueness of the extension.

theorem Derivation.extendAway_mk {k : Type u_1} {A : Type u_2} [CommRing k] [CommRing A] [Algebra k A] (D : Derivation k A A) (a f : A) (m : ℕ) :
(D.extendAway a) (Localization.mk f ⟨a ^ m, ⋯⟩) = Localization.mk (a * D f - ↑m * f * D a) ⟨a ^ (m + 1), ⋯⟩

The quotient rule D(f/aᵐ) = (a · D f − m · f · D a)/aᵐ⁺¹.

theorem IsLocalRing.x_ne_zero_of_span_eq {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] (x : Fin n → R) (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) (i : Fin n) :
x i ≠ 0

A member of a regular system of parameters is nonzero (it is not even in 𝔪²).

R → R[1/x_r] is injective.

theorem IsLocalRing.algebraMap_chartRing_injective {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] (x : Fin n → R) (r : Fin n) (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :

The algebra map R → R' into the chart ring is injective.

theorem IsLocalRing.chartPresentation_surjective {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) :

The presentation R[Y_i : i < r] → R' is surjective.

@[reducible, inline]
noncomputable abbrev IsLocalRing.invX {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) :

u = 1/x_r in R[1/x_r].

Equations
Instances For
    theorem IsLocalRing.algebraMap_mul_invX {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) :
    (algebraMap R (Localization.Away (x r))) (x r) * invX x r = 1
    theorem IsLocalRing.mk_eq_algebraMap_mul_invX {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (b : R) :
    theorem IsLocalRing.chartY_eq_mk_of_lt {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) {k : Fin n} (hk : k < r) :
    chartY x r k = Localization.mk (x k) ⟨x r, ⋯⟩
    theorem IsLocalRing.chartY_eq_algebraMap_of_not_lt {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) {k : Fin n} (hk : ¬k < r) :
    chartY x r k = (algebraMap R (Localization.Away (x r))) (x k)
    theorem IsLocalRing.chartY_of_lt {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) {k : Fin n} (hk : k < r) :
    chartY x r k = (algebraMap R (Localization.Away (x r))) (x k) * invX x r
    theorem IsLocalRing.RegularCoords.awayPderiv_algebraMap {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] [Algebra ℚ R] (c : RegularCoords R n) (r j : Fin n) (a : R) :
    (c.awayPderiv r j) ((algebraMap R (Localization.Away (c.x r))) a) = (algebraMap R (Localization.Away (c.x r))) ((c.pderiv j) a)
    theorem IsLocalRing.RegularCoords.awayPderiv_algebraMap_x {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] [Algebra ℚ R] (c : RegularCoords R n) (r j i : Fin n) :
    (c.awayPderiv r j) ((algebraMap R (Localization.Away (c.x r))) (c.x i)) = if j = i then 1 else 0
    theorem IsLocalRing.RegularCoords.awayPderiv_invX {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] [Algebra ℚ R] (c : RegularCoords R n) (r j : Fin n) :
    (c.awayPderiv r j) (invX c.x r) = -(invX c.x r ^ 2 * if j = r then 1 else 0)
    theorem IsLocalRing.RegularCoords.awayPderiv_chartY_of_lt {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] [Algebra ℚ R] (c : RegularCoords R n) (r j : Fin n) {k : Fin n} (hk : k < r) :
    (c.awayPderiv r j) (chartY c.x r k) = (if j = k then 1 else 0) * invX c.x r - (algebraMap R (Localization.Away (c.x r))) (c.x k) * invX c.x r ^ 2 * if j = r then 1 else 0

    The table of derivatives of the chart coordinates (the proof of [Wlo05, Lemma 2.6.3]): ∂ⱼ yₖ = δⱼₖ u − δⱼᵣ xₖ u² for k < r.

    theorem IsLocalRing.RegularCoords.awayPderiv_chartY_of_not_lt {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] [Algebra ℚ R] (c : RegularCoords R n) (r j : Fin n) {k : Fin n} (hk : ¬k < r) :
    (c.awayPderiv r j) (chartY c.x r k) = if j = k then 1 else 0
    theorem IsLocalRing.RegularCoords.chartDeriv_chartY {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] [Algebra ℚ R] (c : RegularCoords R n) (r j k : Fin n) :
    (c.chartDeriv r j) (chartY c.x r k) = if j = k then 1 else 0

    ∂'ⱼ yₖ = δⱼₖ: the transformed derivations are dual to the chart coordinates (the proof of [Wlo05, Lemma 2.6.3]; [BM08, Lemma 3.1]).

    ∂'ⱼ maps the image of R into the chart ring.

    theorem IsLocalRing.RegularCoords.chartDeriv_mem {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] [Algebra ℚ R] (c : RegularCoords R n) (r j : Fin n) {z : Localization.Away (c.x r)} (hz : z ∈ chartRing c.x r) :
    (c.chartDeriv r j) z ∈ chartRing c.x r

    Each ∂'ⱼ maps the chart ring R' into itself.

    theorem IsLocalRing.exists_algebraMap_sub_mem_chartOriginOf {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (d : R) (z : ↥(chartRingOf x r d)) :
    ∃ (a : R), z - (algebraMap R ↥(chartRingOf x r d)) a ∈ chartOriginOf x r d

    Every element of the chart ring is congruent modulo 𝔪' to the image of an element of R (the constant term of a polynomial in the yᵢ).

    theorem IsLocalRing.one_notMem_chartOriginOf {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] (x : Fin n → R) (r : Fin n) (d : R) (hd : d = x r) (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :
    1 ∉ chartOriginOf x r d

    The key point, 1 ∉ 𝔪': the origin of the chart in the proof of [Kol07, Lemma 61] is a point. Proof: R/⟨xᵢ : i ≠ r⟩ is a regular local ring of dimension one (Hironaka/Algebra/Local/RegularSystem.lean, after moving x_r to the last position) with maximal ideal ⟨x̄_r⟩, hence a domain in which x̄_r ≠ 0; the ring map from R[1/x_r] to its fraction field sends R' into the quotient and every generator of 𝔪' into its maximal ideal, so 1 ∈ 𝔪' would give 1 ∈ ⟨x̄_r⟩.

    theorem IsLocalRing.one_notMem_chartOrigin {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] (x : Fin n → R) (r : Fin n) (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :
    1 ∉ chartOrigin x r

    1 ∉ 𝔪'.

    theorem IsLocalRing.chartOriginOf_ne_top {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] (x : Fin n → R) (r : Fin n) (d : R) (hd : d = x r) (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :

    𝔪' is a proper ideal.

    theorem IsLocalRing.comap_chartOriginOf {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] (x : Fin n → R) (r : Fin n) (d : R) (hd : d = x r) (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :

    𝔪' lies over 𝔪 (general denominator).

    theorem IsLocalRing.comap_chartOrigin {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] (x : Fin n → R) (r : Fin n) (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :

    𝔪' lies over 𝔪.

    R'/𝔪' ≅ K, as the bijectivity of the residue map R/𝔪 → R'/𝔪'.

    theorem IsLocalRing.chartOrigin_isMaximal {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] (x : Fin n → R) (r : Fin n) (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :

    The origin of the chart is a maximal ideal of R' (the point p' of the proof of [Kol07, Lemma 61]).

    theorem IsLocalRing.shiftCoords_of_lt {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) {i : Fin n} (hi : i < r) :
    shiftCoords x r a i = x i - a i * x r
    theorem IsLocalRing.shiftCoords_of_not_lt {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) {i : Fin n} (hi : ¬i < r) :
    shiftCoords x r a i = x i
    theorem IsLocalRing.mk_shiftCoords_of_lt {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) {i : Fin n} (hi : i < r) :
    Localization.mk (shiftCoords x r a i) ⟨x r, ⋯⟩ = Localization.mk (x i) ⟨x r, ⋯⟩ - (algebraMap R (Localization.Away (x r))) (a i)

    x'ᵢ/x_r = yᵢ − ãᵢ for i < r.

    theorem IsLocalRing.span_range_shiftCoords {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) [IsLocalRing R] (hx : maximalIdeal R = Ideal.span (Set.range x)) :

    The shifted coordinates generate 𝔪 (the linear change of coordinates in the proof of [Kol07, Lemma 61]).

    theorem IsLocalRing.span_shiftCoords_le {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) :
    Ideal.span (shiftCoords x r a '' {i : Fin n | i ≤ r}) = Ideal.span (x '' {i : Fin n | i ≤ r})

    The shifted coordinates generate the same P = ⟨xᵢ : i ≤ r⟩.

    theorem IsLocalRing.chartRingOf_shiftCoords {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) :
    chartRingOf (shiftCoords x r a) r (x r) = chartRing x r

    The shifted coordinates define the same chart ring (x'ᵢ/x_r = yᵢ − ãᵢ).

    theorem IsLocalRing.coe_chartYROf_shiftCoords {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) (i : Fin n) :
    ↑(chartYROf (shiftCoords x r a) r (x r) i) = ↑(if i < r then chartYR x r i - (algebraMap R ↥(chartRing x r)) (a i) else chartYR x r i)

    The generators of 𝔪'_a and of the origin of the shifted chart have the same images in R[1/x_r].

    theorem IsLocalRing.mem_chartOriginAt_iff {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) (z : ↥(chartRing x r)) :
    z ∈ chartOriginAt x r a ↔ ∃ w ∈ chartOriginOf (shiftCoords x r a) r (x r), ↑w = ↑z

    𝔪'_a is the origin of the chart for the shifted coordinates (membership correspondence through the ambient ring R[1/x_r]).

    theorem IsLocalRing.shiftCoords_self_symm {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) :
    x r = shiftCoords x r a r
    theorem IsLocalRing.one_notMem_chartOriginAt {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) [IsRegularLocalRing R] (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :
    1 ∉ chartOriginAt x r a

    1 ∉ 𝔪'_a.

    theorem IsLocalRing.comap_chartOriginAt {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) [IsRegularLocalRing R] (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :

    𝔪'_a lies over 𝔪.

    theorem IsLocalRing.quotientMap_chartOriginAt_bijective {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) [IsRegularLocalRing R] (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :

    𝔪'_a has residue field K: 𝔪 maps into 𝔪'_a and the residue map is bijective.

    theorem IsLocalRing.chartOriginAt_isMaximal {R : Type u} [CommRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (a : Fin n → R) [IsRegularLocalRing R] (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :

    𝔪'_a is maximal.

    theorem IsLocalRing.isDomain_away {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] (x : Fin n → R) (r : Fin n) (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :

    R[1/x_r] is a domain.

    theorem IsLocalRing.isDomain_chartRing {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] (x : Fin n → R) (r : Fin n) (hx : maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) :

    The chart ring is a domain.

    noncomputable def IsLocalRing.RegularCoords.chartDerivRing {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] [Algebra ℚ R] (c : RegularCoords R n) (r j : Fin n) :
    Derivation ℚ ↥(chartRing c.x r) ↥(chartRing c.x r)

    ∂'ⱼ as a derivation of the chart ring R' (it preserves R' by chartDeriv_mem): the coordinate derivations of the chart, used in Hironaka/Algebra/Local/ChartCoords.lean and Hironaka/Algebra/Local/TransformDeriv.lean.

    Equations
    Instances For
      @[simp]
      theorem IsLocalRing.RegularCoords.coe_chartDerivRing {R : Type u} [CommRing R] {n : ℕ} [IsRegularLocalRing R] [Algebra ℚ R] (c : RegularCoords R n) (r j : Fin n) (z : ↥(chartRing c.x r)) :
      ↑((c.chartDerivRing r j) z) = (c.chartDeriv r j) ↑z
      theorem exists_equiv_image_eq {n : ℕ} (s : Finset (Fin n)) {kk : Fin n} (hk : kk ∈ s) :
      ∃ (σ : Fin n ≃ Fin n), (∀ (i : Fin n), σ i ∈ s ↔ ↑i < s.card) ∧ ∀ (h : s.card - 1 < n), σ ⟨s.card - 1, h⟩ = kk

      A permutation of Fin n carrying the initial segment of length s.card onto s, with the last element of the segment going to a prescribed k ∈ s (Kollár's convention Z = (y_1 = ⋯ = y_r = 0) with the chart coordinate y_r); a combinatorial tool for the charts of Hironaka/Resolution/Algebraic/Monomial/Geometric/Chart.lean.