Documentation

Hironaka.Scheme.Smooth.ChartEtale

The chart functions are étale coordinates #

Kollár's coordinates (60.2) y_i "give local coordinates on a chart of B_Z X" [Kol07, Definition 60]; here in the strong form that the chart functions are étale coordinates on the chart. For a chart E of étale coordinates adapted to Z with coordinate ring map φ = aeval v : k[t] → Γ(U) (étale, so flat), the chart ring Γ(U)[J/x_j] is the base change Γ(U) ⊗_{k[t]} k[t][L/t_j] of the model chart ring (tensorHom, bijective by flatness), and k[t][L/t_j] ≃ k[y] is the polynomial identification of the model chart (coordinateSubspaceEquiv; the affine chart of [Hau14, Definition 4.12]), under which y_i ↦ x_i/x_j (i < r, i ≠ j) and y_i ↦ x_i otherwise. Hence k[y] → Γ(U)[J/x_j], y_i ↦ (the chart function y_i), is the base change of the étale φ along k[t] → k[y] and is étale (Algebra.Etale.baseChange, RingHom.Etale.respectsIso).

etale_aeval_aux proves this with the k[t]-algebra structure of Γ(U) as an instance and the ideal J and generator x_j as variables (subst-able), so that every term matches the codomain of tensorHom syntactically; etale_aeval_chartCoordinates instantiates it for E. Not stated in this form in the sources. Used to give the standard charts of a smooth blow-up their own étale coordinates (Hironaka/Scheme/Snc/ChartSncData.lean).

The base change k[t][L/t_j] → Γ(U)[J/x_j] of the model chart ring along an étale k[t] → Γ(U) is étale: through tensorHom (bijective by flatness) it is the inclusion of the first factor into k[t][L/t_j] ⊗_{k[t]} Γ(U) (Algebra.Etale.baseChange).

theorem AlgebraicGeometry.aeval_chartCoordinates_eq {k : Type u} [Field k] {X : Scheme} {f : X ⟶ Spec ↧k} {n r : ℕ} {Z : X.IdealSheafData} {x : ↥X} (E : EtaleCoordinatesAdapted f n r Z x) {j : Fin n} [Algebra k ↑(X.presheaf.obj (Opposite.op ↑E.U))] [Algebra (MvPolynomial (Fin n) k) ↑(X.presheaf.obj (Opposite.op ↑E.U))] (hC : ∀ (c : k), (algebraMap (MvPolynomial (Fin n) k) ↑(X.presheaf.obj (Opposite.op ↑E.U))) (MvPolynomial.C c) = (algebraMap k ↑(X.presheaf.obj (Opposite.op ↑E.U))) c) (hv : ∀ (i : Fin n), (algebraMap (MvPolynomial (Fin n) k) ↑(X.presheaf.obj (Opposite.op ↑E.U))) (MvPolynomial.X i) = E.v i) (hbJ : (algebraMap (MvPolynomial (Fin n) k) ↑(X.presheaf.obj (Opposite.op ↑E.U))) (MvPolynomial.X j) ∈ Ideal.map (algebraMap (MvPolynomial (Fin n) k) ↑(X.presheaf.obj (Opposite.op ↑E.U))) (CoordinateSubspace.centerIdeal k n r)) (hvJ : ∀ (i : Fin n), ↑i < r → E.v i ∈ Ideal.map (algebraMap (MvPolynomial (Fin n) k) ↑(X.presheaf.obj (Opposite.op ↑E.U))) (CoordinateSubspace.centerIdeal k n r)) :

The coordinate map k[y] → Γ(U)[J/x_j], y_i ↦ x_i/x_j (i < r, i ≠ j), y_i ↦ x_i otherwise, is the base change of the model chart composed with the identification k[y] ≃ k[t][L/t_j] of the model chart (coordinateSubspaceEquiv).

theorem AlgebraicGeometry.etale_aeval_aux {k : Type u} [Field k] {X : Scheme} {f : X ⟶ Spec ↧k} {n r : ℕ} {Z : X.IdealSheafData} {x : ↥X} (E : EtaleCoordinatesAdapted f n r Z x) {j : Fin n} [Algebra k ↑(X.presheaf.obj (Opposite.op ↑E.U))] [Algebra (MvPolynomial (Fin n) k) ↑(X.presheaf.obj (Opposite.op ↑E.U))] [Algebra.Etale (MvPolynomial (Fin n) k) ↑(X.presheaf.obj (Opposite.op ↑E.U))] (hC : ∀ (c : k), (algebraMap (MvPolynomial (Fin n) k) ↑(X.presheaf.obj (Opposite.op ↑E.U))) (MvPolynomial.C c) = (algebraMap k ↑(X.presheaf.obj (Opposite.op ↑E.U))) c) (hv : ∀ (i : Fin n), (algebraMap (MvPolynomial (Fin n) k) ↑(X.presheaf.obj (Opposite.op ↑E.U))) (MvPolynomial.X i) = E.v i) (J : Ideal ↑(X.presheaf.obj (Opposite.op ↑E.U))) (b : ↑(X.presheaf.obj (Opposite.op ↑E.U))) (hJ : Ideal.map (algebraMap (MvPolynomial (Fin n) k) ↑(X.presheaf.obj (Opposite.op ↑E.U))) (CoordinateSubspace.centerIdeal k n r) = J) (hb : (algebraMap (MvPolynomial (Fin n) k) ↑(X.presheaf.obj (Opposite.op ↑E.U))) (MvPolynomial.X j) = b) (hbJ : b ∈ J) (hvJ : ∀ (i : Fin n), ↑i < r → E.v i ∈ J) :
(MvPolynomial.aeval fun (i : Fin n) => if h : ↑i < r ∧ i ≠ j then affineBlowUpAlgebra.ratio J ⟨b, hbJ⟩ ⟨E.v i, ⋯⟩ else (algebraMap ↑(X.presheaf.obj (Opposite.op ↑E.U)) ↥(affineBlowUpAlgebra J ↑⟨b, hbJ⟩)) (E.v i)).Etale

Generic form: for an étale k[t]-algebra structure on Γ(U) sending t_i to v_i, the map k[y] → Γ(U)[J/x_j], y_i ↦ x_i/x_j (i < r, i ≠ j), y_i ↦ x_i otherwise, is étale: the base change of k[t] → Γ(U) along the identification of the model chart k[t][L/t_j] ≃ k[y].

theorem AlgebraicGeometry.etale_aeval_chartCoordinates {k : Type u} [Field k] {X : Scheme} {f : X ⟶ Spec ↧k} {n r : ℕ} {Z : X.IdealSheafData} {x : ↥X} (E : EtaleCoordinatesAdapted f n r Z x) {j : Fin n} (hj : ↑j < r) :
(MvPolynomial.aeval fun (i : Fin n) => if h : ↑i < r ∧ i ≠ j then affineBlowUpAlgebra.ratio E.centerIdeal (E.coord j hj) (E.coord i ⋯) else (algebraMap ↑(X.presheaf.obj (Opposite.op ↑E.U)) ↥(affineBlowUpAlgebra E.centerIdeal ↑(E.coord j hj))) (E.v i)).Etale

On the chart of x_j, the chart functions y_i = x_i/x_j (i < r, i ≠ j) and y_i = x_i (otherwise) are étale coordinates: k[t] → Γ(U)[J/x_j], t_i ↦ y_i, is étale (the coordinates (60.2) of [Kol07, Definition 60], which "give local coordinates on a chart").