Documentation

Hironaka.Manifold.BlowUp.Transform.KollarChart

Kollár's chart formula and the map from the chart ring to the germ ring #

In a blow-up chart Φ of index i over an adapted chart φ, a section f composed with the blowing-up reads, in the chart coordinates, as f ∘ φ⁻¹ ∘ ψ⁻¹ composed with the substitution blowUpChartMap σ i: Kollár's f(y_1 y_r, …, y_{r−1} y_r, y_r, …, y_n) Kol07, Definition 60, (60.2)–(60.3), Bierstone–Milman's formal substitution in the Taylor expansion BM97, §3, "Blowing-up" (totalTransform_rep, from IsBlowUpChart.comm). When f ∈ I_Y^m along the centre, the transform u_i^{-m} f(…) is an analytic function on the chart (exists_rep_div: the pulled-back germs lie in (u_i^m) at the points of the exceptional divisor, so the iterated canonical quotient of Hironaka.Manifold.BlowUp.Transform.Division is analytic and satisfies u_i^m · g = f ∘ π). Two blow-up charts at a point give representatives differing by a unit (rep_div_unit: both scaling coordinates generate the stalk of I_F, hence are associated in the domain stalk), as Kollár remarks after (60.3). The chart ring R' = R[x_j / x_r : j < r] of the algebraic strand (IsLocalRing.chartRing, for the centred adapted coordinates x in Kollár's order: the scaling coordinate at position r, the other centre coordinates before it) maps to the germ ring at a point a' of the chart over the centre: the stalk map germMap π : 𝒪_{M,a} → 𝒪_{M',a'} sends x_r to the scaling coordinate u_i and x_j (j < r) to u_i u_j, so it extends by IsLocalization.lift to R[1/x_r] with values in the fraction field of the domain 𝒪_{M',a'}, and on the subalgebra R' the values are the germs u_j and germMap π (·) themselves, hence lie in 𝒪_{M',a'} (exists_chartRing_hom, with χ ∘ algebraMap = germMap π, x_j / x_r ↦ u_j, x_r ↦ u_i). Through any such χ, the stalk of the birational transform π_*^{-1}(I, m) is the image of the algebraic transform transformIdeal x r I_a m (birationalTransform_stalkIdeal_eq_map_transformIdeal): the colon (π⁻¹(I)_{a'} : u_i^m) is spanned by the u_i^{-m}(f_j ∘ π) = χ(f_j / x_r^m) for local generators f_j ∈ I_a ⊆ (x_1, …, x_r)^m (chartCenter_eq_stalkIdeal_idealSheaf, exists_algebraMap_pow_mul_eq), and conversely every generator of the algebraic transform maps into the colon.

This identification connects the analytic birational transform with the algebraic one of Hironaka.Algebra.Local.BirationalTransform; it is used for the derivative rule of Hironaka.Manifold.BlowUp.Transform.DerivChart.

theorem Manifold.totalTransform_rep {𝕜 : Type} [RCLike 𝕜] {E : Type u_1} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {n : ℕ} {ψ : E ≃L[𝕜] Fin n → 𝕜} {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {c : ℕ} {M' : Type u} [TopologicalSpace M'] [ChartedSpace E M'] {π : M' → M} {φ : OpenPartialHomeomorph M E} {σ : Fin c ↪ Fin n} {i : Fin c} {Φ : OpenPartialHomeomorph M' E} (hΦ : IsBlowUpChart ψ π φ σ i Φ) {U : TopologicalSpace.Opens M} (f : ↑((structureSheaf 𝕜 E M).presheaf.obj (Opposite.op U))) {p : M'} (hp : p ∈ Φ.source) :
extendSection 𝕜 E f (π p) = extendSection 𝕜 E f (↑φ.symm (ψ.symm (blowUpChartMap σ i (ψ (↑Φ p)))))

f ∘ π at a point of a blow-up chart is f ∘ φ⁻¹ ∘ ψ⁻¹ composed with the substitution blowUpChartMap σ i [Kol07, Definition 60, (60.2)–(60.3)].

theorem Manifold.exists_rep_div {𝕜 : Type} [RCLike 𝕜] {E : Type u_1} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {n : ℕ} {ψ : E ≃L[𝕜] Fin n → 𝕜} {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {Y : Set M} {c : ℕ} {M' : Type u} [TopologicalSpace M'] [ChartedSpace E M'] [IsManifold (modelWithCornersSelf 𝕜 E) ⊤ M'] [T2Space M'] [SecondCountableTopology M'] {π : M' → M} {φ : OpenPartialHomeomorph M E} {σ : Fin c ↪ Fin n} {i : Fin c} {Φ : OpenPartialHomeomorph M' E} (hY : IsClosedSubmanifold ψ Y c) (h : IsBlowUp ψ Y c π) (hφ : IsAdaptedChart ψ Y φ σ) (hΦ : IsBlowUpChart ψ π φ σ i Φ) {U : TopologicalSpace.Opens M} (f : ↑((structureSheaf 𝕜 E M).presheaf.obj (Opposite.op U))) {m : ℕ} (hf : ∀ a ∈ Y, ∀ (ha : a ∈ U), (CategoryTheory.ConcreteCategory.hom ((structureSheaf 𝕜 E M).presheaf.germ U a ha)) f ∈ hY.idealSheaf.stalkIdeal a ^ m) :
∃ (g : E → 𝕜), AnalyticOnNhd 𝕜 g (Φ.target ∩ {v : E | π (↑Φ.symm v) ∈ U}) ∧ ∀ v ∈ Φ.target ∩ {v : E | π (↑Φ.symm v) ∈ U}, ψ v (σ i) ^ m * g v = extendSection 𝕜 E f (π (↑Φ.symm v))

For f ∈ I_Y^m along Y, the transform u_i^{-m} · f(y_1 y_r, …) is an analytic function g on the blow-up chart with u_i^m · g = f ∘ π ∘ Φ⁻¹ [Kol07, Definition 60, (60.3)].

theorem Manifold.rep_div_unit {𝕜 : Type} [RCLike 𝕜] {E : Type u_1} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {n : ℕ} {ψ : E ≃L[𝕜] Fin n → 𝕜} {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {Y : Set M} {c : ℕ} {M' : Type u} [TopologicalSpace M'] [ChartedSpace E M'] [IsManifold (modelWithCornersSelf 𝕜 E) ⊤ M'] [T2Space M'] [SecondCountableTopology M'] {π : M' → M} (hY : IsClosedSubmanifold ψ Y c) (h : IsBlowUp ψ Y c π) {φ₁ φ₂ : OpenPartialHomeomorph M E} {σ₁ σ₂ : Fin c ↪ Fin n} {i₁ i₂ : Fin c} {Φ₁ Φ₂ : OpenPartialHomeomorph M' E} (hφ₁ : IsAdaptedChart ψ Y φ₁ σ₁) (hΦ₁ : IsBlowUpChart ψ π φ₁ σ₁ i₁ Φ₁) (hφ₂ : IsAdaptedChart ψ Y φ₂ σ₂) (hΦ₂ : IsBlowUpChart ψ π φ₂ σ₂ i₂ Φ₂) {a' : M'} (ha₁ : a' ∈ Φ₁.source) (ha₂ : a' ∈ Φ₂.source) {m : ℕ} (s : ↑((structureSheaf 𝕜 E M).presheaf.stalk (π a'))) {g₁ g₂ : ↑((structureSheaf 𝕜 E M').presheaf.stalk a')} (hg₁ : coord E ψ Φ₁ ⋯ ha₁ (σ₁ i₁) ^ m * g₁ = (germMap π ⋯ a') s) (hg₂ : coord E ψ Φ₂ ⋯ ha₂ (σ₂ i₂) ^ m * g₂ = (germMap π ⋯ a') s) :
∃ (w : ↑((structureSheaf 𝕜 E M').presheaf.stalk a')), IsUnit w ∧ g₁ = w * g₂

The representatives of the transform of a germ in two blow-up charts at a point differ by a unit (the remark after (60.3) in [Kol07, Definition 60]).

theorem Manifold.chartCenter_eq_stalkIdeal_idealSheaf {𝕜 : Type} [RCLike 𝕜] {E : Type u_1} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {n : ℕ} {ψ : E ≃L[𝕜] Fin n → 𝕜} {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {Y : Set M} {c : ℕ} {φ : OpenPartialHomeomorph M E} {σ : Fin c ↪ Fin n} {i : Fin c} (hY : IsClosedSubmanifold ψ Y c) (hφ : IsAdaptedChart ψ Y φ σ) {a : M} (ha : a ∈ Y) (haφ : a ∈ φ.source) (x : Fin n → ↑((structureSheaf 𝕜 E M).presheaf.stalk a)) (r : Fin n) (τ : Fin n ≃ Fin n) (hτr : τ r = σ i) (hτ : ∀ (j : Fin n), x j = coord E ψ φ ⋯ haφ (τ j) - (const 𝕜 E M a) ((eval 𝕜 E M a) (coord E ψ φ ⋯ haφ (τ j)))) (hlt : ∀ (j : Fin n), j < r ↔ ∃ (k : Fin c), k ≠ i ∧ τ j = σ k) :

At a point of the centre, the centred adapted coordinates in Kollár's order are the adapted coordinates, and the chart centre chartCenter x r of the algebraic strand is the stalk of I_Y.

theorem Manifold.exists_chartRing_hom {𝕜 : Type} [RCLike 𝕜] {E : Type u_1} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {n : ℕ} {ψ : E ≃L[𝕜] Fin n → 𝕜} {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {Y : Set M} {c : ℕ} {M' : Type u} [TopologicalSpace M'] [ChartedSpace E M'] [IsManifold (modelWithCornersSelf 𝕜 E) ⊤ M'] [T2Space M'] [SecondCountableTopology M'] {π : M' → M} {φ : OpenPartialHomeomorph M E} {σ : Fin c ↪ Fin n} {i : Fin c} {Φ : OpenPartialHomeomorph M' E} (h : IsBlowUp ψ Y c π) (hφ : IsAdaptedChart ψ Y φ σ) (hΦ : IsBlowUpChart ψ π φ σ i Φ) {a' : M'} (ha' : a' ∈ Φ.source) (haY : π a' ∈ Y) (x : Fin n → ↑((structureSheaf 𝕜 E M).presheaf.stalk (π a'))) (r : Fin n) (τ : Fin n ≃ Fin n) (hτr : τ r = σ i) (hτ : ∀ (j : Fin n), x j = coord E ψ φ ⋯ ⋯ (τ j) - (const 𝕜 E M (π a')) ((eval 𝕜 E M (π a')) (coord E ψ φ ⋯ ⋯ (τ j)))) (hlt : ∀ (j : Fin n), j < r ↔ ∃ (k : Fin c), k ≠ i ∧ τ j = σ k) :
∃ (χ : ↥(IsLocalRing.chartRing x r) →+* ↑((structureSheaf 𝕜 E M').presheaf.stalk a')), (∀ (s : ↑((structureSheaf 𝕜 E M).presheaf.stalk (π a'))), χ ((algebraMap ↑((structureSheaf 𝕜 E M).presheaf.stalk (π a')) ↥(IsLocalRing.chartRing x r)) s) = (germMap π ⋯ a') s) ∧ (∀ j < r, χ (IsLocalRing.chartYR x r j) = coord E ψ Φ ⋯ ha' (τ j)) ∧ χ ((algebraMap ↑((structureSheaf 𝕜 E M).presheaf.stalk (π a')) ↥(IsLocalRing.chartRing x r)) (x r)) = coord E ψ Φ ⋯ ha' (σ i)

The chart ring IsLocalRing.chartRing maps to the germ ring at a point of the chart over the centre, with χ ∘ algebraMap = germMap π, x_j / x_r ↦ u_j (j < r) and x_r ↦ u_i.

theorem Manifold.birationalTransform_stalkIdeal_eq_map_transformIdeal {𝕜 : Type} [RCLike 𝕜] {E : Type u_1} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {n : ℕ} {ψ : E ≃L[𝕜] Fin n → 𝕜} {M : Type u} [TopologicalSpace M] [ChartedSpace E M] {Y : Set M} {c : ℕ} {M' : Type u} [TopologicalSpace M'] [ChartedSpace E M'] [IsManifold (modelWithCornersSelf 𝕜 E) ⊤ M'] [T2Space M'] [SecondCountableTopology M'] {π : M' → M} {φ : OpenPartialHomeomorph M E} {σ : Fin c ↪ Fin n} {i : Fin c} {Φ : OpenPartialHomeomorph M' E} (hY : IsClosedSubmanifold ψ Y c) (h : IsBlowUp ψ Y c π) (hφ : IsAdaptedChart ψ Y φ σ) (hΦ : IsBlowUpChart ψ π φ σ i Φ) {a' : M'} (ha' : a' ∈ Φ.source) (haY : π a' ∈ Y) (x : Fin n → ↑((structureSheaf 𝕜 E M).presheaf.stalk (π a'))) (r : Fin n) (τ : Fin n ≃ Fin n) (hτr : τ r = σ i) (hτ : ∀ (j : Fin n), x j = coord E ψ φ ⋯ ⋯ (τ j) - (const 𝕜 E M (π a')) ((eval 𝕜 E M (π a')) (coord E ψ φ ⋯ ⋯ (τ j)))) (hlt : ∀ (j : Fin n), j < r ↔ ∃ (k : Fin c), k ≠ i ∧ τ j = σ k) (χ : ↥(IsLocalRing.chartRing x r) →+* ↑((structureSheaf 𝕜 E M').presheaf.stalk a')) (hχ : ∀ (s : ↑((structureSheaf 𝕜 E M).presheaf.stalk (π a'))), χ ((algebraMap ↑((structureSheaf 𝕜 E M).presheaf.stalk (π a')) ↥(IsLocalRing.chartRing x r)) s) = (germMap π ⋯ a') s) (I : IdealSheaf (structureSheaf 𝕜 E M)) {m : ℕ} (hm : ∀ a ∈ Y, ↑m ≤ hY.idealSheaf.ordAlongIdeal I a) :

Through any chart-ring map χ compatible with the germ map, the stalk of the marked transform of (I, m) is the image of the algebraic transform transformIdeal x r I_a m.