On the normalization after localization at P, the generic action and the action supplied by the integral-closure construction agree pointwise.
Source context 10 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
namespace EtaleFundamentalGroups
universe uA uK uL
variable {A : Type uA} {K : Type uK} {L : Type uL}
variable [CommRing A] [IsDomain A]
variable [Field K] [Field L]
variable [Algebra A K] [IsFractionRing A K]
variable [Algebra K L] [Algebra A L] [IsScalarTower A K L]
variable [Algebra.IsAlgebraic K L]
omit [Algebra A L] [IsScalarTower A K L] intheorem localizationAtPrime_integralClosure_smul_eq
(P : Ideal A) [P.IsPrime] :
let V := Localization.AtPrime P
letI : Algebra V K :=
localizationAtPrimeToFractionFieldAlgebra (K := K) P
letI : Algebra V L :=
localizationAtPrimeToExtensionAlgebra (K := K) (L := L) P
letI : IsScalarTower V K L :=
localizationAtPrimeToFractionFieldToExtension_isScalarTower
(K := K) (L := L) P
letI : IsFractionRing V K :=
localizationAtPrimeToFractionField_isFractionRing (K := K) P
letI : SMulCommClass Gal(L/K) V L :=
localizationAtPrime_galois_smulCommClass (K := K) (L := L) P
let B := integralClosure V L
let genericAction : MulSemiringAction Gal(L/K) B := inferInstance
let integralClosureAction : MulSemiringAction Gal(L/K) B :=
IsIntegralClosure.MulSemiringAction V K L B
∀ (sigma : Gal(L/K)) (x : B),
(letI := genericAction; sigma • x) =
(letI := integralClosureAction; sigma • x) := by
let V := Localization.AtPrime P
let : Algebra V K :=
localizationAtPrimeToFractionFieldAlgebra (K := K) P
let : Algebra V L :=
localizationAtPrimeToExtensionAlgebra (K := K) (L := L) P
let : IsScalarTower V K L :=
localizationAtPrimeToFractionFieldToExtension_isScalarTower
(K := K) (L := L) P
let : IsFractionRing V K :=
localizationAtPrimeToFractionField_isFractionRing (K := K) P
let : SMulCommClass Gal(L/K) V L :=
localizationAtPrime_galois_smulCommClass (K := K) (L := L) P
let B := integralClosure V L
let genericAction : MulSemiringAction Gal(L/K) B := inferInstance
let integralClosureAction : MulSemiringAction Gal(L/K) B :=
IsIntegralClosure.MulSemiringAction V K L B
change ∀ (sigma : Gal(L/K)) (x : B),
(letI := genericAction; sigma • x) =
(letI := integralClosureAction; sigma • x)
intro sigma x
apply Subtype.ext
calc
((letI := genericAction; (sigma • x : B)) : L) =
sigma • (x : L) := by
let := genericAction
exact integralClosure.coe_smul sigma x
_ = sigma (x : L) := AlgEquiv.smul_def _ _
_ = ((letI := integralClosureAction; (sigma • x : B)) : L) := by
let := integralClosureAction
exact (algebraMap_galRestrict_apply V sigma x).symm