The positive root of a uniformizer has exactly the prescribed ramification index, measured by the length of the closed fibre. Both the domain and DVR structures are constructed from the original data.
Source context 4 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
namespace EtaleFundamentalGroups.Kummer
open Polynomial
universe utheorem ramificationIdx_adjoinRoot_uniformizer
{R : Type u} [CommRing R] [IsDomain R] [IsDiscreteValuationRing R]
{n : ℕ} (hn : 0 < n) (π : R) (hπ : Prime π) :
let B := AdjoinRoot (X ^ n - C π)
let : IsDomain B := isDomain_adjoinRoot_X_pow_sub_C_of_prime hn π hπ
let : IsDiscreteValuationRing B :=
isDiscreteValuationRing_adjoinRoot_X_pow_sub_C_of_prime hn π hπ
(IsLocalRing.maximalIdeal B).ramificationIdx R = n := by
intro B hdomain hdvr
have : Module.FaithfullyFlat R B :=
faithfullyFlat_adjoinRoot_X_pow_sub_C hn π
let x : B := AdjoinRoot.root (X ^ n - C π)
have hx : Prime x := prime_adjoinRoot_root_of_prime hn hπ
have hmax : IsLocalRing.maximalIdeal B = Ideal.span ({x} : Set B) :=
hx.irreducible.maximalIdeal_eq
have hmap : (IsLocalRing.maximalIdeal R).map (algebraMap R B) =
IsLocalRing.maximalIdeal B ^ n := by
rw [hπ.irreducible.maximalIdeal_eq, Ideal.map_span,
Set.image_singleton, hmax, Ideal.span_singleton_pow,
AdjoinRoot.algebraMap_eq, ← adjoinRoot_root_pow]
rw [← Ideal.ramificationIdx'_eq_ramificationIdx
(IsLocalRing.maximalIdeal R) (IsLocalRing.maximalIdeal B)
(IsDiscreteValuationRing.not_a_field R)]
apply Ideal.ramificationIdx'_spec hmap.le
simp only [hmap, hmax, Ideal.span_singleton_pow,
Ideal.span_singleton_le_span_singleton]
intro hdiv
exact (Nat.not_succ_le_self n)
((pow_dvd_pow_iff hx.ne_zero hx.not_isUnit).mp hdiv)