Over a strict-Henselian lower radical, the algebra map to the retained integral unit factor is bijective.
Source context 7 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
open scoped TensorProduct
namespace EtaleFundamentalGroups.Kummer
open Polynomial
open ValuationTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField.ValuedExtension
universe uK uV uF uL uWtheorem higherRadicalUnitFactorData_radical_algebraMap_bijective
{K : Type uK} {L : Type uL} [Field K] [Field L] [Algebra K L]
(base : DVF.{uK, uV} K) (target : DVF.{uL, uW} L)
[base.valuation.HasExtension target.valuation]
[Module.Finite base.valuationSubring target.valuationSubring]
(varpi : base.valuationSubring)
(pi : target.valuationSubring) (N : ℕ)
(beta : AlgebraicClosure L)
(factor : HigherRadicalUnitFactorData base target varpi pi N beta)
[HenselianLocalRing
(AdjoinRoot
(X ^ ramificationIndex base target - C varpi))]
[IsSepClosed
(IsLocalRing.ResidueField
(AdjoinRoot
(X ^ ramificationIndex base target - C varpi)))] :
let e := ramificationIndex base target
let Rₑ := AdjoinRoot (X ^ e - C varpi)
let Cq := AdjoinRoot factor.q
letI : Algebra Rₑ Cq :=
factor.radicalToUnitFactor.toRingHom.toAlgebra
Function.Bijective (algebraMap Rₑ Cq) := by
dsimp only
let e := ramificationIndex base target
let Rₑ := AdjoinRoot (X ^ e - C varpi)
let Cq := AdjoinRoot factor.q
let : IsDomain Cq :=
higherRadicalUnitFactorData_isDomain
base target varpi pi N beta factor
let : Algebra Rₑ Cq :=
factor.radicalToUnitFactor.toRingHom.toAlgebra
obtain ⟨q, ⟨eqv⟩⟩ :=
higherRadicalUnitFactorData_exists_strictHenselian_localizationAlgEquiv
base target varpi pi N beta factor
let locMap : Cq →+* Localization.AtPrime q.1 :=
algebraMap Cq (Localization.AtPrime q.1)
have hlocMap : Function.Injective locMap :=
IsLocalization.injective
(Localization.AtPrime q.1) q.1.primeCompl_le_nonZeroDivisors
have hcomp :
locMap.comp (algebraMap Rₑ Cq) = eqv.toRingHom := by
apply DFunLike.ext _ _
intro z
change algebraMap Cq (Localization.AtPrime q.1)
(algebraMap Rₑ Cq z) = eqv z
rw [← IsScalarTower.algebraMap_apply Rₑ Cq
(Localization.AtPrime q.1)]
exact (eqv.commutes z).symm
have hcompBijective :
Function.Bijective (locMap.comp (algebraMap Rₑ Cq)) := by
rw [hcomp]
exact eqv.bijective
constructor
· exact fun _ _ h ↦ hcompBijective.injective (congrArg locMap h)
· intro y
obtain ⟨z, hz⟩ := hcompBijective.surjective (locMap y)
exact ⟨z, hlocMap hz⟩