At the point of the global relative normalization corresponding to a prime Q of the literal integral closure, the actual normalization stalk map is the canonical local map at the transported prime after base localization.
Source context 6 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
open CategoryTheory IsLocalRing
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry.FiniteEtale
universe u
variable (R : Type u) [CommRing R] [IsDomain R] [IsIntegrallyClosed R]
[IsLocalRing R] [IsNoetherianRing R]def
connectedPuncturedCoverGenericNormalizationBoundaryStalkArrowIso
(hpos : (1 : WithBot ℕ∞) ≤ ringKrullDim R)
(W : FiniteEtale (Scheme.puncturedSpectrum R)) [IsConnected W] :
let U := Scheme.puncturedSpectrum R
let j : U ⟶ Spec (.of R) := Scheme.puncturedSpectrumInclusion R
letI : Nonempty U :=
Scheme.puncturedSpectrum_nonempty_of_one_le_ringKrullDim R hpos
letI : IsOpenImmersion j := by
dsimp only [j, Scheme.puncturedSpectrumInclusion]
infer_instance
letI : IsIntegral U := isIntegral_of_isOpenImmersion j
letI : Algebra R U.functionField :=
puncturedSpectrumFunctionFieldAlgebraOfPositiveDimension R hpos
letI : IsFractionRing R U.functionField :=
puncturedSpectrumFunctionField_isFractionRing_of_positiveDimension R hpos
letI : IsIntegral W.left :=
EtaleFundamentalGroups.isIntegral_left_of_isConnected_finiteEtale W
letI : Algebra U.functionField W.left.functionField :=
EtaleFundamentalGroups.finiteEtaleFunctionFieldAlgebra W
letI : Algebra R W.left.functionField :=
((algebraMap U.functionField W.left.functionField).comp
(algebraMap R U.functionField)).toAlgebra
letI : IsScalarTower R U.functionField W.left.functionField :=
IsScalarTower.of_algebraMap_eq' rfl
let C := integralClosure R W.left.functionField
let g : Spec (.of W.left.functionField) ⟶ Spec (.of R) :=
connectedCoverGenericComposite W ≫ j
let z := g.fromNormalization
let e : g.normalization ≅ Spec (.of C) :=
connectedPuncturedCoverGenericNormalizationIsoSpecIntegralClosure
R hpos W
∀ (Q : Ideal C), [Q.IsPrime] →
let P := Q.under R
letI : P.IsPrime := inferInstance
letI : Q.LiesOver P := inferInstance
letI := EtaleFundamentalGroups.localizationAtPrimeToExtensionAlgebra
(K := U.functionField) (L := W.left.functionField) P
letI := EtaleFundamentalGroups.localizationAtPrimeToExtension_isScalarTower
(K := U.functionField) (L := W.left.functionField) P
letI : Algebra (Localization.AtPrime P) (Localization.AtPrime Q) :=
Localization.AtPrime.algebraOfLiesOver P Q
let q := EtaleFundamentalGroups.localizedNormalizationPrime
(K := U.functionField) (L := W.left.functionField) P Q
letI : q.IsMaximal :=
EtaleFundamentalGroups.localizedNormalizationPrime_isMaximal
(K := U.functionField) (L := W.left.functionField) P Q
Arrow.mk
(z.stalkMap
(e.inv (⟨Q, inferInstance⟩ : PrimeSpectrum C))) ≅
Arrow.mk (CommRingCat.ofHom
(R := Localization.AtPrime P) (S := Localization.AtPrime q)
(algebraMap (Localization.AtPrime P) (Localization.AtPrime q))) := by
dsimp only
let U := Scheme.puncturedSpectrum R
let j : U ⟶ Spec (.of R) := Scheme.puncturedSpectrumInclusion R
letI : Nonempty U :=
Scheme.puncturedSpectrum_nonempty_of_one_le_ringKrullDim R hpos
letI : IsOpenImmersion j := by
dsimp only [j, Scheme.puncturedSpectrumInclusion]
infer_instance
letI : IsIntegral U := isIntegral_of_isOpenImmersion j
letI : Algebra R U.functionField :=
puncturedSpectrumFunctionFieldAlgebraOfPositiveDimension R hpos
letI : IsFractionRing R U.functionField :=
puncturedSpectrumFunctionField_isFractionRing_of_positiveDimension R hpos
letI : IsIntegral W.left :=
EtaleFundamentalGroups.isIntegral_left_of_isConnected_finiteEtale W
letI : Algebra U.functionField W.left.functionField :=
EtaleFundamentalGroups.finiteEtaleFunctionFieldAlgebra W
letI : Algebra R W.left.functionField :=
((algebraMap U.functionField W.left.functionField).comp
(algebraMap R U.functionField)).toAlgebra
letI : IsScalarTower R U.functionField W.left.functionField :=
IsScalarTower.of_algebraMap_eq' rfl
let C := integralClosure R W.left.functionField
let g : Spec (.of W.left.functionField) ⟶ Spec (.of R) :=
connectedCoverGenericComposite W ≫ j
let z := g.fromNormalization
let e : g.normalization ≅ Spec (.of C) :=
connectedPuncturedCoverGenericNormalizationIsoSpecIntegralClosure
R hpos W
intro Q _
exact EtaleFundamentalGroups.integralClosureStalkArrowIsoOfIsoOver
(K := U.functionField) (L := W.left.functionField) z e
(connectedPuncturedCoverGenericNormalizationIsoSpecIntegralClosure_hom_fromSpec
R hpos W) Q