Module

BoundaryLocalNormalizationEtale.lean

Nyll.Yamaguchi26SolvableCoverings.Geometry.BoundaryLocalNormalizationEtale
2 declarations indexed from sourceView source ↗

Étaleness of the actual normalization over a generic boundary stalk

The normalized local Galois components cover the normalization of the whole fraction-field pullback. The actual Cartier-complement pullback and normalization-localization isomorphisms then identify this with the base change of the original cover's relative normalization to the DVR stalk.

Declarations

Yamaguchi26SolvableCoverings.boundaryUnramified_fractionPullback_normalization_etale

The normalization of the entire fraction-stalk pullback is étale over the generic boundary DVR, without selecting a component in the conclusion.

Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory CategoryTheory.Limits
open CategoryTheory.PreGaloisCategory AlgebraicGeometry.FiniteEtale
open EtaleFundamentalGroups.Inertia
namespace Yamaguchi26SolvableCoverings
variable {X : Scheme.{0}} [IsLocallyNoetherian X]
  (D : X.EffectiveCartierDivisor) (E : Component D)
  [IsDomain (X.presheaf.stalk (componentPoint D E))]
  [IsDiscreteValuationRing (X.presheaf.stalk (componentPoint D E))]
  [ConnectedSpace D.1.supportComplement]
local notation "R" => X.presheaf.stalk (componentPoint D E)
local notation "K" => FractionRing R
local notation "c" =>
  Scheme.IdealSheafData.IsEffectiveCartier.fractionStalkToSupportComplement
    (Subtype.property D) (componentPoint D E)
local notation "a₀" => Spec.map (CommRingCat.ofHom (algebraMap R K))
theorem boundaryUnramified_fractionPullback_normalization_etale
    (W : FiniteEtale D.1.supportComplement) (hW : IsGalois W)
    (hU : IsBoundaryUnramified D W) :
    Etale (((show ((FiniteEtale.pullback c).obj W).left ⟶ Spec (.of K) from
      ((FiniteEtale.pullback c).obj W).hom) ≫ a₀).fromNormalization) := by
  let xi : Spec (.of (AlgebraicClosure K)) ⟶ Spec (.of K) :=
    Spec.map (CommRingCat.ofHom (algebraMap K (AlgebraicClosure K)))
  let A := (FiniteEtale.pullback c).obj W
  let f : A.left ⟶ Spec (.of R) := (show A.left ⟶ Spec (.of K) from A.hom) ≫ a₀
  apply etale_normalization_of_galoisComponents c xi W hW f
  intro w Z i v hiv hZ hi
  have hZet : Etale (((show Z.left ⟶ Spec (.of K) from Z.hom) ≫ a₀).fromNormalization) :=
    boundaryUnramified_localComponent_normalization_etale D E xi W hW hU w Z i v hiv hZ hi
  have hiw : i.left ≫ (show A.left ⟶ Spec (.of K) from A.hom) =
      (show Z.left ⟶ Spec (.of K) from Z.hom) := i.w
  have he : (Iso.refl Z.left).hom ≫ ((show Z.left ⟶ Spec (.of K) from Z.hom) ≫ a₀) =
      i.left ≫ f := by
    exact (Category.id_comp _).trans
      ((congrArg (fun k => k ≫ a₀) hiw).symm.trans (Category.assoc _ _ _))
  let e := normalizationSourceIso (i.left ≫ f)
    ((show Z.left ⟶ Spec (.of K) from Z.hom) ≫ a₀) (Iso.refl Z.left) he
  have ht : Etale (e.hom ≫ ((show Z.left ⟶ Spec (.of K) from Z.hom) ≫ a₀).fromNormalization) :=
    inferInstance
  rw [normalizationSourceIso_hom_fromNormalization] at ht
  exact ht
Yamaguchi26SolvableCoverings.boundaryUnramified_normalization_stalk_etale

The actual base change of the original relative normalization to the generic boundary DVR is étale. No comparison isomorphism is an input.

Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory CategoryTheory.Limits
open CategoryTheory.PreGaloisCategory AlgebraicGeometry.FiniteEtale
open EtaleFundamentalGroups.Inertia
namespace Yamaguchi26SolvableCoverings
variable {X : Scheme.{0}} [IsLocallyNoetherian X]
  (D : X.EffectiveCartierDivisor) (E : Component D)
  [IsDomain (X.presheaf.stalk (componentPoint D E))]
  [IsDiscreteValuationRing (X.presheaf.stalk (componentPoint D E))]
  [ConnectedSpace D.1.supportComplement]
local notation "R" => X.presheaf.stalk (componentPoint D E)
local notation "K" => FractionRing R
local notation "c" =>
  Scheme.IdealSheafData.IsEffectiveCartier.fractionStalkToSupportComplement
    (Subtype.property D) (componentPoint D E)
local notation "a₀" => Spec.map (CommRingCat.ofHom (algebraMap R K))
theorem boundaryUnramified_normalization_stalk_etale
    (W : FiniteEtale D.1.supportComplement) (hW : IsGalois W)
    (hU : IsBoundaryUnramified D W) :
    Etale (Limits.pullback.snd
      (W.hom ≫ D.1.supportComplement.ι).fromNormalization
      (X.fromSpecStalk (componentPoint D E)))