If every iterated radical stage after the first has exponent one, the whole tower is canonically equivalent to its first root-adjunction.
Source context 6 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
namespace EtaleFundamentalGroups.Kummer
open Polynomial
open IsLocalRing
open RingTheory.Sequence
universe udef iteratedRadicalTailOneAlgEquiv
{R : Type u} [CommRing R] :
{r : ℕ} → (n : Fin (r + 1) → ℕ) → (a : Fin (r + 1) → R) →
(∀ i : Fin r, n i.succ = 1) →
iteratedRadical R (r + 1) n a ≃ₐ[R]
iteratedRadical R 1 (fun _ ↦ n 0) (fun _ ↦ a 0)
| 0, n, a, _ => by
exact AlgEquiv.refl
| r + 1, n, a, htail => by
let nInit : Fin (r + 1) → ℕ := Fin.init n
let aInit : Fin (r + 1) → R := Fin.init a
let T : CommAlgCat R := iteratedRadical R (r + 1) nInit aInit
have hlast : n (Fin.last (r + 1)) = 1 := by
simpa using htail (Fin.last r)
have htailInit : ∀ i : Fin r, nInit i.succ = 1 := by
intro i
change n i.succ.castSucc = 1
convert htail i.castSucc using 1
apply congrArg n
ext
rfl
let c : T := algebraMap R T (a (Fin.last (r + 1)))
let f : T[X] := X ^ n (Fin.last (r + 1)) - C c
have hf : f = X ^ 1 - C c := by simp [f, hlast]
let eT : AdjoinRoot f ≃ₐ[T] T :=
(AdjoinRoot.algEquivOfEq T f (X ^ 1 - C c) hf).trans
(adjoinRootOneAlgEquiv c)
let eR : AdjoinRoot f ≃ₐ[R] T := eT.restrictScalars R
let eLast : iteratedRadical R (r + 2) n a ≃ₐ[R] T := eR
exact eLast.trans
(iteratedRadicalTailOneAlgEquiv nInit aInit htailInit)