A study of $p(x) = {x}^{3} − 6{x}^{2} + 12x − 10$ ($ = {(x − 2)}^{3} − 2$).
First: roots the old way.
{{{ p = x^3 - 6*x^2 + 12*x - 10 p.roots() }}}Degree 3 step on the tower.
{{{ M. = NumberField(p) M }}} {{{ t = polygen(M) (t^3-6*t^2+12*t-10).factor() }}}Degree 2 step on the tower.
{{{ N.=NumberField(t^2 + (a - 6)*t + a^2 - 6*a + 12) N }}} {{{ sage: s = polygen(N) sage: (s^2 + (a - 6)*s + a^2 - 6*a + 12).factor() }}}So the three roots of $p(x)$ are $a,b, 6 − a − b$
Flatten the degree 6 tower.
{{{ L.The Galois group of the whole tower.
{{{ G = L.galois_group() }}}The extension has degree 6, so the permutation group has 6 symbols.
{{{ G.gens() }}}The defining polynomial has 3 roots, so every field automorphism should be a permutation of the three roots, hence the group should be a subgroup of ${S}_{3}$.
{{{ G.is_isomorphic(SymmetricGroup(3)) }}} {{{ fromL,toL = L.structure() }}}Roots, field automorphisms (endomorphisms), permutations of roots.
{{{ roots = [a, b, 6-a-b] auts = End(L) perms = [[fromL(phi(toL(r))) for r in roots] for phi in auts] Sequence(perms, cr=true) }}}
Extension for the splitting field of $p(x) = {x}^{5} − x − 1$ has degree $5! = 120$ and is built with extensions of degree $5$, $4$, $3$ and then $2$. This will stress Sage.
{{{ M.=NumberField(x^5-x-1) }}} {{{ y = polygen(M) (y^5-y-1).factor() }}} {{{ N.=NumberField(y^4 + a*y^3 + a^2*y^2 + a^3*y + a^4 - 1) }}} {{{ K.An easier way, but not faster, it seems.
{{{ M. = NumberField(x^5-x-1) N. = M.galois_closure() }}}
Sage has trouble with this one also. Group/extension should have order/degree $168 = ⋅6 ⋅ 4$ (if I recall correctly). A “trinomial” curve due to Noam Elkies.
http://www.math.harvard.edu/~elkies/trinomial.html
{{{ M.=NumberField(x^7-7*x+3) M }}} {{{ w=polygen(M) factor(w^7-7*w+3) }}} {{{ N.=NumberField(w^6 + a*w^5 + a^2*w^4 + a^3*w^3 + a^4*w^2 + a^5*w + a^6 - 7) N }}} {{{ y=polygen(N) factor(y^6 + a*y^5 + a^2*y^4 + a^3*y^3 + a^4*y^2 + a^5*y + a^6 - 7) }}}
All roots of ${x}^{15} − 1$.
{{{ x = polygen(QQ) (x^15-1).factor() }}} {{{ C = CyclotomicField(15) C }}} {{{ y = polygen(C) (y^15-1).factor() }}} {{{ D.G must be ${Z}_{2} × {Z}_{4}$.
{{{ }}}