Documentation

Hironaka.Scheme.Snc.ChartOrigin

The origin of the chart after a linear change of coordinates #

[Hau14, Proposition 5.4 (8)–(9)] ([Hau03, Appendix C (8)–(9)]; the proof of [Kol07, Lemma 61]): for a point a' of the exceptional divisor over a, in the chart of x_j and rational over κ(a), the coordinate change x_i ↦ x_i − α_i x_j on the other centre coordinates (α_i ∈ 𝒪_{X,a} lifting the entries of a') makes a' the origin of the chart and the local blow-up monomial: the induced coordinates of the new system form a regular system of parameters at a', with π^* x'_i = w'_i · w'_j (exists_shiftCoords_chartOrigin). The change preserves I_Z and the coordinate x_p of any hypersurface V = (x_p = 0) through a''s strict transform (its entry vanishes, so the lift α_p may be taken 0).

The proof lives in Kollár's chart ring (Hironaka.Scheme.Snc.InducedCoordinates): 𝒪_{B,a'} ≅ R'_𝔮 with 𝔮 over 𝔪_a; rationality of a' — the residue map κ(a) → κ(a') bijective — is the bijectivity of R/𝔪 → R'/𝔮 (bijective_quotientMap_of_residueField), so 𝔮 = 𝔪'_α = chartOriginAt y ρ α for lifts α (exists_eq_chartOriginAt), which can be changed modulo 𝔪 (chartOriginAt_eq_of_sub_mem); chartRingEquivShift and localizationEquivShift of Hironaka.Algebra.Local.ChartShift identify R'_{𝔪'_α} with the localization of the chart ring of the shifted coordinates at its origin, whose maximal ideal is generated by the chart functions (maximalIdeal_localization_chartOrigin), and the chart derivations (Hironaka.Scheme.Snc.ChartDerivations) show these n generators are a regular system of parameters (ringKrullDim_eq_of_span_eq_of_derivations).

Hauser's (9) (exists_coordinates_chartOrigin'): if a' lies on the strict transform of V = (x_{n-k+1} = 0) the chart index is not n − k + 1 and (8) applies, after which the transposition of the positions j and n makes a' the origin of the x_n-chart; otherwise a' lies in the chart of x_{n-k+1} itself (the entry of V's coordinate is a unit) and (8) applies with j = n − k + 1.

theorem AlgebraicGeometry.bijective_quotientMap_of_residueField {R S R' : Type u} [CommRing R] [IsLocalRing R] [CommRing S] [IsLocalRing S] [CommRing R'] [Algebra R R'] (π : R →+* S) [IsLocalHom π] (hrat : Function.Bijective ⇑(IsLocalRing.ResidueField.map π)) (𝔮 : Ideal R') [𝔮.IsPrime] (e : S ≃+* Localization.AtPrime 𝔮) (hcompat : ∀ (c : R), e (π c) = (algebraMap R' (Localization.AtPrime 𝔮)) ((algebraMap R R') c)) (h : IsLocalRing.maximalIdeal R ≤ Ideal.comap (algebraMap R R') 𝔮) :

Rationality transported to the chart ring: if the residue map of a local homomorphism π : R → S is bijective and S ≃ R'_𝔮 compatibly with π and R → R' → R'_𝔮, then R/𝔪 → R'/𝔮 is bijective.

theorem AlgebraicGeometry.chartOriginAt_eq_of_sub_mem {R : Type u} [CommRing R] [IsRegularLocalRing R] {n : ℕ} (x : Fin n → R) (r : Fin n) (hx : IsLocalRing.maximalIdeal R = Ideal.span (Set.range x)) (hn : ↑n = ringKrullDim R) (a b : Fin n → R) (hab : ∀ (i : Fin n), a i - b i ∈ IsLocalRing.maximalIdeal R) :

The origin 𝔪'_a of the shifted chart depends only on the lifts a modulo 𝔪.

theorem AlgebraicGeometry.ringKrullDim_eq_of_span_eq_of_derivations {k : Type u_1} {S : Type u_2} [CommRing k] [CommRing S] [IsRegularLocalRing S] [Algebra k S] {n : ℕ} (g : Fin n → S) (hspan : Ideal.span (Set.range g) = IsLocalRing.maximalIdeal S) (D : Fin n → Derivation k S S) (hD : ∀ (i j : Fin n), (D i) (g j) = if i = j then 1 else 0) :

A family of n generators of the maximal ideal of a regular local ring with dual derivations is a regular system of parameters: n = dim S.

theorem AlgebraicGeometry.ringEquiv_symm_apply_eq_of_compat {R : Type u_1} {S : Type u_2} {R' : Type u_3} {L : Type u_4} [CommRing R] [CommRing S] [CommRing R'] [CommRing L] (E : S ≃+* L) (π : R →+* S) (g : R →+* R') (h : R' →+* L) (hc : ∀ (c : R), E (π c) = h (g c)) {u : R'} {c : R} (hu : u = g c) :
E.symm (h u) = π c
theorem AlgebraicGeometry.span_range_symm_eq_maximalIdeal {S : Type u_2} {L : Type u_4} [CommRing S] [CommRing L] [IsLocalRing S] [IsLocalRing L] (E : S ≃+* L) {ι : Type u_5} (g : ι → L) (hspan : Ideal.span (Set.range g) = IsLocalRing.maximalIdeal L) :
Ideal.span (Set.range fun (i : ι) => E.symm (g i)) = IsLocalRing.maximalIdeal S
theorem AlgebraicGeometry.ringEquiv_trans_symm_compat {R : Type u_1} {S : Type u_2} {R' : Type u_3} {L : Type u_4} [CommRing R] [CommRing S] [CommRing R'] [CommRing L] {L' : Type u_5} [CommRing L'] (e : S ≃+* L) (Lq : L' ≃+* L) (π : R →+* S) (g : R →+* R') (h : R' →+* L) (h' : R →+* L') (hc : ∀ (c : R), e (π c) = h (g c)) (hL : ∀ (c : R), Lq (h' c) = h (g c)) (c : R) :
(e.trans Lq.symm) (π c) = h' c
theorem AlgebraicGeometry.ringEquiv_symm_mul_eq_of_compat {R : Type u_1} {S : Type u_2} {R' : Type u_3} {L : Type u_4} [CommRing R] [CommRing S] [CommRing R'] [CommRing L] (E : S ≃+* L) (π : R →+* S) (g : R →+* R') (h : R' →+* L) (hc : ∀ (c : R), E (π c) = h (g c)) (ci cj : R) {u v : R'} (hv : v = g cj) (huv : u * g cj = g ci) :
E.symm (h u) * E.symm (h v) = π ci
theorem AlgebraicGeometry.exists_induced_of_equiv_chartOrigin {k : Type u_1} {R : Type u_2} {S : Type u_3} [CommRing k] [CommRing R] [Algebra k R] [CommRing S] [IsRegularLocalRing S] {n : ℕ} (y' : Fin n → R) (ρ : Fin n) (D' : Fin n → Derivation k R R) (hD' : ∀ (i j : Fin n), (D' i) (y' j) = if i = j then 1 else 0) [(IsLocalRing.chartOrigin y' ρ).IsPrime] (E : S ≃+* Localization.AtPrime (IsLocalRing.chartOrigin y' ρ)) (π : R →+* S) (hEc : ∀ (c : R), E (π c) = (algebraMap R (Localization.AtPrime (IsLocalRing.chartOrigin y' ρ))) c) (σ : Fin n ≃ Fin n) :
∃ (w' : Fin n → S), (Ideal.span (Set.range w') = IsLocalRing.maximalIdeal S ∧ ↑n = ringKrullDim S) ∧ (∀ (i : Fin n), ¬σ i < ρ → w' i = π (y' (σ i))) ∧ ∀ (i : Fin n), σ i < ρ → π (y' (σ i)) = w' i * w' (σ.symm ρ)

The induced coordinates at the origin of a chart, abstractly: for y' a regular system of parameters of R with dual derivations, and S ≃ R'_{𝔪'} (the localization of the chart ring of y' at the origin of the chart of y'_ρ) compatibly with π : R → S, the chart functions y'_{σ i} pulled back to S form a regular system of parameters of S, with w'_i = π(y'_{σ i}) for the non-fibre positions and π(y'_{σ i}) = w'_i · w'_{σ⁻¹ ρ} for the fibre positions.

theorem AlgebraicGeometry.exists_shiftCoords_chartOrigin {X : Scheme} {k : Type u} [Field k] [PerfectField k] (f : X ⟶ Spec ↧k) [Smooth f] (Z : X.IdealSheafData) (a' : ↥Z.blowUp) [IsRegularLocalRing ↑(Z.blowUp.presheaf.stalk a')] {n kk : ℕ} (hk : 1 ≤ kk) (hkn : kk ≤ n) {z : Fin n → ↑(X.presheaf.stalk (Z.blowUpπ a'))} (hz : Ideal.span (Set.range z) = IsLocalRing.maximalIdeal ↑(X.presheaf.stalk (Z.blowUpπ a')) ∧ ↑n = ringKrullDim ↑(X.presheaf.stalk (Z.blowUpπ a'))) (hZa : Z.stalkIdeal (Z.blowUpπ a') = Ideal.span (z '' {i : Fin n | n - kk ≤ ↑i})) (hrat : Function.Bijective ⇑(IsLocalRing.ResidueField.map (CommRingCat.Hom.hom (Scheme.Hom.stalkMap Z.blowUpπ a')))) {j : Fin n} (hj : n - kk ≤ ↑j) (hF : (Z.comap Z.blowUpπ).stalkIdeal a' = Ideal.span {(CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z j)}) (hne : (CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z j) ≠ 0) (p : Fin n) (hp : n - kk ≤ ↑p) :
∃ (z' : Fin n → ↑(X.presheaf.stalk (Z.blowUpπ a'))), (Ideal.span (Set.range z') = IsLocalRing.maximalIdeal ↑(X.presheaf.stalk (Z.blowUpπ a')) ∧ ↑n = ringKrullDim ↑(X.presheaf.stalk (Z.blowUpπ a'))) ∧ (∀ (i : Fin n), ↑i < n - kk ∨ i = j → z' i = z i) ∧ (∀ (i : Fin n), n - kk ≤ ↑i → ∃ (α : ↑(X.presheaf.stalk (Z.blowUpπ a'))), z' i = z i - α * z j) ∧ Z.stalkIdeal (Z.blowUpπ a') = Ideal.span (z' '' {i : Fin n | n - kk ≤ ↑i}) ∧ ((p = j ∨ ∀ (y : ↑(Z.blowUp.presheaf.stalk a')), (CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z p) = y * (CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z j) → y ∈ IsLocalRing.maximalIdeal ↑(Z.blowUp.presheaf.stalk a')) → z' p = z p) ∧ ∃ (w' : Fin n → ↑(Z.blowUp.presheaf.stalk a')), (Ideal.span (Set.range w') = IsLocalRing.maximalIdeal ↑(Z.blowUp.presheaf.stalk a') ∧ ↑n = ringKrullDim ↑(Z.blowUp.presheaf.stalk a')) ∧ (∀ (i : Fin n), ↑i < n - kk ∨ i = j → w' i = (CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z' i)) ∧ ∀ (i : Fin n), n - kk ≤ ↑i → i ≠ j → (CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z' i) = w' i * w' j

[Hau14, Proposition 5.4 (8)] ([Hau03, Appendix C (8)]; the proof of [Kol07, Lemma 61]): for a' in the chart of z_j and rational over κ(a), the coordinates z'_i = z_i − α_i z_j (n − k ≤ i, i ≠ j; z'_i = z_i otherwise) make a' the origin of the chart and the local blow-up monomial: Z is still cut out by the last k of them, the coordinate z_p of a hypersurface whose induced entry at a' vanishes is unchanged, and the induced coordinates w' form a regular system of parameters at a' with π^* z'_i = w'_i w'_j.

theorem AlgebraicGeometry.exists_coordinates_chartOrigin' {X : Scheme} {k : Type u} [Field k] [PerfectField k] (f : X ⟶ Spec ↧k) [Smooth f] (Z : X.IdealSheafData) (a' : ↥Z.blowUp) [IsRegularLocalRing ↑(Z.blowUp.presheaf.stalk a')] {n kk : ℕ} (hk : 1 ≤ kk) (hkn : kk ≤ n) {z : Fin n → ↑(X.presheaf.stalk (Z.blowUpπ a'))} (hz : Ideal.span (Set.range z) = IsLocalRing.maximalIdeal ↑(X.presheaf.stalk (Z.blowUpπ a')) ∧ ↑n = ringKrullDim ↑(X.presheaf.stalk (Z.blowUpπ a'))) (hZa : Z.stalkIdeal (Z.blowUpπ a') = Ideal.span (z '' {i : Fin n | n - kk ≤ ↑i})) (hrat : Function.Bijective ⇑(IsLocalRing.ResidueField.map (CommRingCat.Hom.hom (Scheme.Hom.stalkMap Z.blowUpπ a')))) {j : Fin n} (hj : n - kk ≤ ↑j) (hF : (Z.comap Z.blowUpπ).stalkIdeal a' = Ideal.span {(CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z j)}) (hne : (CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z j) ≠ 0) {IV : Ideal ↑(X.presheaf.stalk (Z.blowUpπ a'))} (p : Fin n) (hp : ↑p = n - kk) (hV : IV = Ideal.span {z p}) (P : Prop) (hP : P → j ≠ p) (hPy : ∀ (y : ↑(Z.blowUp.presheaf.stalk a')), (CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z p) = y * (CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z j) → (y ∈ IsLocalRing.maximalIdeal ↑(Z.blowUp.presheaf.stalk a') ↔ P)) :
∃ (z'' : Fin n → ↑(X.presheaf.stalk (Z.blowUpπ a'))) (j' : Fin n), (Ideal.span (Set.range z'') = IsLocalRing.maximalIdeal ↑(X.presheaf.stalk (Z.blowUpπ a')) ∧ ↑n = ringKrullDim ↑(X.presheaf.stalk (Z.blowUpπ a'))) ∧ IV = Ideal.span {z'' p} ∧ Z.stalkIdeal (Z.blowUpπ a') = Ideal.span (z'' '' {i : Fin n | n - kk ≤ ↑i}) ∧ n - kk ≤ ↑j' ∧ (P → ↑j' = n - 1) ∧ (¬P → ↑j' = n - kk) ∧ (Z.comap Z.blowUpπ).stalkIdeal a' = Ideal.span {(CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z'' j')} ∧ ∃ (w'' : Fin n → ↑(Z.blowUp.presheaf.stalk a')), (Ideal.span (Set.range w'') = IsLocalRing.maximalIdeal ↑(Z.blowUp.presheaf.stalk a') ∧ ↑n = ringKrullDim ↑(Z.blowUp.presheaf.stalk a')) ∧ (∀ (i : Fin n), ↑i < n - kk ∨ i = j' → w'' i = (CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z'' i)) ∧ ∀ (i : Fin n), n - kk ≤ ↑i → i ≠ j' → (CategoryTheory.ConcreteCategory.hom (Scheme.Hom.stalkMap Z.blowUpπ a')) (z'' i) = w'' i * w'' j'

[Hau14, Proposition 5.4 (9)] ([Hau03, Appendix C (9)]), with P standing for "a' lies on the strict transform of V = (z_p = 0)", p = n − k the position of V's coordinate: P excludes the chart of z_p and the entry of V's coordinate at a' vanishes exactly when P (Hauser's (6)). For a' rational over κ(a) there are coordinates z'' at a with (1)–(3) in which a' is the origin of the chart of z''_{j'}, j' = n − 1 when P and j' = p when ¬P, and the local blow-up is monomial.