434 DEMO 23

Prof. Robert Beezer
Copyright 2012 All Rights Reserved

April 16, 2012
{{{ }}}

23 - Galois Theory

Galois group of a polynomial

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.=N.absolute_field() 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) }}}

An unsolvable quintic

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.=N.absolute_field() z=polygen(K) factorization=(z^5-z-1).factor() }}} {{{ cubic = factorization[2][0].subs(x=z) }}} {{{ P. = NumberField(z^3 + (-13068/113616875*c^18 + 22571/22723375*c^16 + 135432/113616875*c^14 - 300022/22723375*c^12 + 1192212/113616875*c^10 - 548637/4544675*c^8 + 68557802/113616875*c^6 - 7128248/22723375*c^4 + 221590747/113616875*c^2 - 9115616/22723375)*z^2 + (35937/113616875*c^18 + 7776/113616875*c^16 - 372438/113616875*c^14 - 328479/113616875*c^12 - 3278583/113616875*c^10 + 25311831/113616875*c^8 + 4614732/113616875*c^6 + 134916171/113616875*c^4 - 92417773/113616875*c^2 + 104979576/113616875)*z - 43923/113616875*c^18 - 9504/113616875*c^16 + 455202/113616875*c^14 + 98496/113616875*c^12 + 4007157/113616875*c^10 - 26997964/113616875*c^8 - 5640228/113616875*c^6 - 149142669/113616875*c^4 - 51158208/113616875*c^2 - 147698984/113616875) }}} {{{ t=polygen(P) (t^3 + (-13068/113616875*c^18 + 22571/22723375*c^16 + 135432/113616875*c^14 - 300022/22723375*c^12 + 1192212/113616875*c^10 - 548637/4544675*c^8 + 68557802/113616875*c^6 - 7128248/22723375*c^4 + 221590747/113616875*c^2 - 9115616/22723375)*t^2 + (35937/113616875*c^18 + 7776/113616875*c^16 - 372438/113616875*c^14 - 328479/113616875*c^12 - 3278583/113616875*c^10 + 25311831/113616875*c^8 + 4614732/113616875*c^6 + 134916171/113616875*c^4 - 92417773/113616875*c^2 + 104979576/113616875)*t - 43923/113616875*c^18 - 9504/113616875*c^16 + 455202/113616875*c^14 + 98496/113616875*c^12 + 4007157/113616875*c^10 - 26997964/113616875*c^8 - 5640228/113616875*c^6 - 149142669/113616875*c^4 - 51158208/113616875*c^2 - 147698984/113616875).factor() }}} {{{ Q.=NumberField(t^2 + (d - 13068/113616875*c^18 + 22571/22723375*c^16 + 135432/113616875*c^14 - 300022/22723375*c^12 + 1192212/113616875*c^10 -548637/4544675*c^8 + 68557802/113616875*c^6 - 7128248/22723375*c^4 +221590747/113616875*c^2 - 9115616/22723375)*t + d^2 +(-13068/113616875*c^18 + 22571/22723375*c^16 + 135432/113616875*c^14 -300022/22723375*c^12 + 1192212/113616875*c^10 - 548637/4544675*c^8 +68557802/113616875*c^6 - 7128248/22723375*c^4 + 221590747/113616875*c^2- 9115616/22723375)*d + 35937/113616875*c^18 + 7776/113616875*c^16 -372438/113616875*c^14 - 328479/113616875*c^12 - 3278583/113616875*c^10 +25311831/113616875*c^8 + 4614732/113616875*c^6 + 134916171/113616875*c^4 - 92417773/113616875*c^2 + 104979576/113616875) }}} {{{ s = polygen(Q) (s^2 + (d - 13068/113616875*c^18 + 22571/22723375*c^16 + 135432/113616875*c^14 - 300022/22723375*c^12 + 1192212/113616875*c^10 -548637/4544675*c^8 + 68557802/113616875*c^6 - 7128248/22723375*c^4 +221590747/113616875*c^2 - 9115616/22723375)*s + d^2 +(-13068/113616875*c^18 + 22571/22723375*c^16 + 135432/113616875*c^14 -300022/22723375*c^12 + 1192212/113616875*c^10 - 548637/4544675*c^8 +68557802/113616875*c^6 - 7128248/22723375*c^4 + 221590747/113616875*c^2- 9115616/22723375)*d + 35937/113616875*c^18 + 7776/113616875*c^16 -372438/113616875*c^14 - 328479/113616875*c^12 - 3278583/113616875*c^10 +25311831/113616875*c^8 + 4614732/113616875*c^6 + 134916171/113616875*c^4 - 92417773/113616875*c^2 + 104979576/113616875).factor() }}}

An easier way, but not faster, it seems.

{{{ M.
= NumberField(x^5-x-1) N. = M.galois_closure() }}}

${S}_{4}$ as a Galois group

{{{ M.=NumberField(x^4+x+1) M }}} {{{ y=polygen(M) (y^4+y+1).factor() }}} {{{ N.=NumberField(y^3 + a*y^2 + a^2*y + a^3 + 1) N }}} {{{ z=polygen(N) (z^3 + a*z^2 + a^2*z + a^3 + 1).factor() }}} {{{ P.=NumberField(z^2 + (b + a)*z + b^2 + a*b + a^2) }}} {{{ u=polygen(P) (u^2 + (b + a)*u + b^2 + a*b + a^2).factor() }}} {{{ Q.=NumberField(u + c + b + a) }}} {{{ t=polygen(Q) (t^4+t+1).factor() }}} {{{ L.=Q.absolute_field() L }}} {{{ fromL, toL = L.structure() auts=End(L) }}} {{{ for sigma in auts: "%s %s %s %s" % tuple([fromL(sigma(toL(r))) for r in [a,b,c,d]]) }}}

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) }}}

Cyclotomic fields

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. = C.galois_closure() D }}} {{{ G = D.galois_group() G }}} {{{ G.gens() }}} {{{ G.is_cyclic() }}} {{{ G.is_abelian() }}}

G must be ${Z}_{2} × {Z}_{4}$.

{{{ }}}

A higher degree extension