The selected local root ring is a domain, transported from the pure-root DVR over the localization at the radicand divisor.
Source context 5 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
open scoped TensorProduct
namespace EtaleFundamentalGroups.Kummer
open Polynomial
universe utheorem adjoinRootLocalizationAtRootPrime_isDomain
{R : Type u} [CommRing R] [IsDomain R] [IsRegularRing R]
{N : ℕ} (hN : 0 < N) {p : R} (hp : Prime p) :
let P := Ideal.span ({p} : Set R)
let D := AdjoinRoot (X ^ N - C p)
let q := Ideal.span
({AdjoinRoot.root (X ^ N - C p)} : Set D)
letI : P.IsPrime := Ideal.isPrime_span_singleton_of_prime hp
letI : q.IsPrime := Ideal.isPrime_span_singleton_of_prime
(prime_adjoinRoot_root_of_prime hN hp)
letI : q.LiesOver P := span_root_liesOver_span_radicand hN hp
let V := Localization.AtPrime P
letI : Algebra V (Localization.AtPrime q) :=
Localization.AtPrime.algebraOfLiesOver P q
IsDomain (Localization.AtPrime q) := by
dsimp only
let P := Ideal.span ({p} : Set R)
let D := AdjoinRoot (X ^ N - C p)
let q := Ideal.span
({AdjoinRoot.root (X ^ N - C p)} : Set D)
let : P.IsPrime := Ideal.isPrime_span_singleton_of_prime hp
let : q.IsPrime := Ideal.isPrime_span_singleton_of_prime
(prime_adjoinRoot_root_of_prime hN hp)
let : q.LiesOver P := span_root_liesOver_span_radicand hN hp
let V := Localization.AtPrime P
let : IsDiscreteValuationRing V :=
EtaleFundamentalGroups.isDiscreteValuationRing_localizationAtSpan_of_prime
R p hp
let pV : V := algebraMap R V p
have hmaxV : IsLocalRing.maximalIdeal V =
Ideal.span ({pV} : Set V) :=
localizationAtPrime_maximalIdeal_eq_span_of_eq_span P p rfl
have hpVne : pV ≠ 0 := by
intro hpVzero
apply hp.ne_zero
exact (IsLocalization.injective V P.primeCompl_le_nonZeroDivisors)
(by simpa only [map_zero] using hpVzero)
have hpV : Prime pV :=
(IsDiscreteValuationRing.irreducible_of_span_eq_maximalIdeal
pV hpVne hmaxV).prime
let Rn := AdjoinRoot (X ^ N - C pV)
let : IsDomain Rn :=
isDomain_adjoinRoot_X_pow_sub_C_of_prime hN pV hpV
let : Algebra D Rn :=
adjoinRootLocalizationBaseChangeAlgebra R N p hp
let W := Localization.AtPrime q
let : Algebra V W :=
Localization.AtPrime.algebraOfLiesOver P q
let eLocal : Rn ≃ₐ[V] W :=
adjoinRootLocalizationAtRootPrimeAlgEquiv hN hp
exact eLocal.symm.toMulEquiv.isDomain Rn