5

Having worked out that the Galois group of $$p(a)=a^{4} \left(16 t^{4} + 16 t^{2}\right) - 64 a^{3} t^{3} + a^{2} \left(- 8 t^{4} + 24 t^{2}\right) + 16 a t + t^{4} + 5 t^{2} - 4$$ over $\mathbb Q[t=\tan\pi/14]$ is $D_4$ with $8$ elements, and knowing that $t$'s minimal polynomial $7t^6-35t^4+21t^2-1$ has cyclic ($C_6$) Galois group, I want to compute the Galois group of $$q(a)=16777216 a^{24} - 50331648 a^{22} + 10485760 a^{20} - 380633088 a^{18} + 2575761408 a^{16} - 6611664896 a^{14} + 8637038592 a^{12} - 5108785152 a^{10} + 1280876288 a^{8} - 162842368 a^{6} + 19536544 a^{4} - 1857904 a^{2} + 1849$$ over $\mathbb Q$; note that $q$ splits into six quartic factors over $\mathbb Q[t]$ and one of the factors is $p$ (the others, of course, can be obtained by replacing $t$ by an algebraic conjugate).

$\operatorname{Gal}_{\mathbb Q}(q)$ is too big for GAP to compute directly, but since I have an explicit formula for all $24$ roots of $q$: $$t\text{ any root of }7t^6-35t^4+21t^2-1\qquad u=\pm\sqrt{-21t^4+98t^2+71}$$ $$z_1=\pm2\sqrt{14(31t^5u-20t^4-154t^3u+104t^2+87tu-68)}\qquad z_2=7t(t^2-3)^2-4u$$ $$a=\frac{z_1+z_2}{64}$$ it seemed a simple matter to compute the group from how each change of $t,u,z_1$ – corresponding to the actions generating the group – permutes the roots. ($z\mapsto\frac72z^5-\frac{35}2z^3+10z$ acts like $C_6$ on the roots of $7t^6-35t^4+21t^2-1$.)

#!/usr/bin/env python3
from mpmath import *

def getroot(i, action=None): with extradps(20): n, n1 = divmod(i, 6) n3, n2 = divmod(n, 2) t = polyroots([7, 0, -35, 0, 21, 0, -1])[n1] if action == "t": t = polyval([7/2, 0, -35/2, 0, 10, 0], t) u = sqrt(polyval([-21, 98, 71], tt)) (2n2-1) if action == "u": u = -u z1 = 2sqrt(14polyval([31u, -20, -154u, 104, 87u, -68], t)) * (2n3-1) if action == "z1": z1 = -z1 z2 = 7t(tt-3)*2 - 4u return (z1 + z2) / 64

roots = {i: [getroot(i)] for i in range(24)} for i in roots: for action in ("t", "u", "z1"): rua = getroot(i, action) # "root under action" maproot = min(range(24), key=lambda j: abs(rua-roots[j][0])) roots[i].append(maproot) for (k, v) in roots.items(): print(k, v[0], v[1:]) for a in range(1, 4): mid = ", ".join(str(roots[i][a]+1) for i in range(24)) print(f"a{a} := PermList([ {mid} ]);") print("G := Group(a1, a2, a3);\nIdGroup(G);")

Like in my linked answer, the last lines of this program's output are the input to another programming language, this time GAP. The output of the GAP code is $[24,15]$, corresponding to $C_6×C_2^2$ or 24T3. But this is not what I expected; since $D_4$ has order $8$ and $C_6$ has order $6$, I was expecting the Galois group to have order $8×6=48$, not $24$ as obtained here. From this I have two related questions:

  1. Is my code producing the right answer? If it is, how can $\operatorname{Gal}_{\mathbb Q[t]}(p)$ be of order $8$ yet $\operatorname{Gal}_{\mathbb Q}(q)$ be of order only $24$?
  2. In any case, is it possible to adapt my code to find the Galois group of $$q_1(a)=68719476736 a^{36} - 532575944704 a^{34} + 1975684956160 a^{32} - 4512936886272 a^{30} + 7013413158912 a^{28} - 8394446471168 a^{26} + 8723128909824 a^{24} - 7969139851264 a^{22} + 6247085506560 a^{20} - 4187786313728 a^{18} + 2514551767040 a^{16} - 1412168695808 a^{14} + 697307058176 a^{12} - 259585758208 a^{10} + 65704151296 a^{8} - 10689048384 a^{6} + 1029214816 a^{4} - 48560176 a^{2} + 790321$$ over $\mathbb Q$, knowing that $q'$ splits over $\mathbb Q[t=\tan\pi/7]$ into six sextic factors, one of which is $$p_1(a)=256 a^{6} + a^{5} \left(16 t^{5} - 320 t^{3} + 304 t\right) + a^{4} \left(- 16 t^{2} - 144\right) + a^{3} \left(- 32 t^{5} + 656 t^{3} - 912 t\right) + a^{2} \left(- 4 t^{4} + 112 t^{2} - 188\right) + a \left(7 t^{5} - 136 t^{3} + 57 t\right) - t^{4} + 13 t^{2} + 14$$ with $p_1$'s Galois group over $\mathbb Q[t]$ being $S_6$? ($p'$ is the original polynomial I asked about in my question.) If not, how else can I find the group?

p := a^4*(16*t^4 + 16*t^2) - 64*a^3*t^3 + a^2*(-8*t^4 + 24*t^2) + 16*a*t + t^4 + 5*t^2 - 4;
q := 16777216*a^24 - 50331648*a^22 + 10485760*a^20 - 380633088*a^18 + 2575761408*a^16 - 6611664896*a^14 + 8637038592*a^12 - 5108785152*a^10 + 1280876288*a^8 - 162842368*a^6 + 19536544*a^4 - 1857904*a^2 + 1849;
p1 := 256*a^6 + a^5*(16*t^5 - 320*t^3 + 304*t) + a^4*(-16*t^2 - 144) + a^3*(-32*t^5 + 656*t^3 - 912*t) + a^2*(-4*t^4 + 112*t^2 - 188) + a*(7*t^5 - 136*t^3 + 57*t) - t^4 + 13*t^2 + 14;
q1 := 68719476736*a^36 - 532575944704*a^34 + 1975684956160*a^32 - 4512936886272*a^30 + 7013413158912*a^28 - 8394446471168*a^26 + 8723128909824*a^24 - 7969139851264*a^22 + 6247085506560*a^20 - 4187786313728*a^18 + 2514551767040*a^16 - 1412168695808*a^14 + 697307058176*a^12 - 259585758208*a^10 + 65704151296*a^8 - 10689048384*a^6 + 1029214816*a^4 - 48560176*a^2 + 790321;
Parcly Taxel
  • 103,344

1 Answers1

4

About the first example (answer gets long enough...), I think, your result is not correct, but the Galois group is a direct product $C_2\times T_{12}N_{142}$:

Your polynomial is a polynomial in $x^2$, which means that the Galois group is a subgroup (generically the full, but here it turns out not to be) wreath product $C_2\wr H$ where $H$ is the Galois group of the polynomial $q(\sqrt x)$. I get in GAP (with your polynomial $q$:

gap> c:=CoefficientsOfUnivariateLaurentPolynomial(q);;
gap> d:=c[1]{[1,3..25]};
[ 1849, -1857904, 19536544, -162842368, 1280876288, -5108785152, 8637038592,
  -6611664896, 2575761408, -380633088, 10485760, -50331648, 16777216 ]
gap> qol:=UnivariatePolynomial(Rationals,d);
16777216*x^12-50331648*x^11+10485760*x^10-380633088*x^9+2575761408*x^8-6611664896*x^7+8637038592*x^6-5108785152*x^5+1280876288*x^4-162842368*x^3+19536544*x^2-1857904*x+1849
gap> ProbabilityShapes(qol);
[ 142 ]

The last command indicated that (by Chebotarev's theorem) the group $H$ is most likely transitive group $142$ of degree $12$ (which is called [1/4.eD(4)^3]3 in the list, and has order $384$).

Indeed we can also try ProbabilityShapes for the degree $24$ polynomial (it should work for degree up to $31$), but it will take a while since shape frequencies are note pre-stored.

gap> SetInfoLevel(InfoGalois,2); # print some intermediate data
gap> ProbabilityShapes(q);
[2505]
gap> H:=TransitiveGroup(24,2505);;
gap> Size(H);
768

This means it is likely (but not yet guaranteed -- we verify below) to have this Galois group of order $768$. In fact this group is a direct product of the group we already got with a cyclic group of order $2$.

gap> DirectFactorsOfGroup(H);
[ <permutation group of size 384 with 8 generators>,
  Group([ (1,2)(3,4)(5,6)(7,8)(9,10)(11,12)(13,14)(15,16)(17,18)(19,20)(21,22)
      (23,24) ]) ]
gap> df:=DirectFactorsOfGroup(H);
[ <permutation group of size 384 with 8 generators>,
  Group([ (1,2)(3,4)(5,6)(7,8)(9,10)(11,12)(13,14)(15,16)(17,18)(19,20)(21,22)
      (23,24) ]) ]
gap> IsomorphismGroups(df[1],TransitiveGroup(12,142));
[ (1,20)(2,19)(3,15)(4,16)(5,23)(6,24)(7,13)(8,14)(9,22)(10,21)(11,18)(12,17),
  (1,14)(2,13)(3,10)(4,9)(5,23)(6,24)(7,19)(8,20)(11,18)(12,17)(15,21)(16,22),
  (1,20)(2,19)(5,23)(6,24)(7,13)(8,14)(11,18)(12,17),
  (1,20)(2,19)(5,12)(6,11)(7,13)(8,14)(17,23)(18,24),
  (1,20)(2,19)(3,10)(4,9)(5,17)(6,18)(7,13)(8,14)(11,24)(12,23)(15,21)(16,22),
  (5,23)(6,24)(11,18)(12,17), (7,19)(8,20)(9,22)(10,21)(11,24)(12,23),
  (1,9,17)(2,10,18)(3,11,19)(4,12,20)(5,14,22)(6,13,21)(7,15,24)(8,16,23) ] ->
[ (1,4)(2,11)(3,9)(5,8)(6,12)(7,10), (1,7)(2,11)(3,6)(4,10)(5,8)(9,12),
  (1,4)(2,11)(5,8)(7,10), (1,4)(2,5)(7,10)(8,11), (1,4)(2,8)(3,6)(5,11)(7,10)(9,12)
    , (1,7)(2,5)(3,9)(4,10)(6,12)(8,11), (1,7)(5,11)(6,12),
  (1,9,11)(2,4,12)(3,5,7)(6,8,10) ]

In fact the block structure of the group shows that this direct product should come nicely from subfields:

gap> AllBlocks(H);
[ [ 1, 2 ], [ 1, 2, 7, 8, 13, 14, 19, 20 ], [ 1, 2, 13, 14 ],
  [ 1, 4, 5, 8, 9, 12, 14, 16, 17, 20, 22, 23 ], [ 1, 7, 14, 19 ],
  [ 1, 8, 14, 20 ], [ 1, 13 ], [ 1, 14 ] ]

Lets check this (takes a while):

gap> dp:=IdealDecompositionsOfPolynomial(q);;
gap> List(dp,x->List(x,DegreeOfUnivariateLaurentPolynomial));
[ [ 12, 23 ], [ 6, 22 ], [ 3, 22 ], [ 6, 23 ], [ 6, 23 ], [ 2, 23 ], [ 12, 2 ],
  [ 12, 23 ] ]

The decompositions in positions 6 and 7 are the interesting ones:

gap> sub1:=dp[6][1];
x^2-16724060961072604457730048
gap> sub2:=dp[7][1];
16777216*x^12-50331648*x^11+10485760*x^10-380633088*x^9+2575761408*x^8-6611664896*x^7+8637038592*x^6-5108785152*x^5+1280876288*x^4-162842368*x^3+19536544*x^2-1857904*x+1849

Here the first one is $\mathbb{Q}(\sqrt{7})$, the second one the degree $12$ one we knew already:

gap> Collected(Factors(Discriminant(sub1)));
[ [ 2, 42 ], [ 3, 4 ], [ 7, 1 ], [ 13, 2 ], [ 43, 2 ], [ 293, 2 ] ]
gap> ff:=2^20*3^2*13*43*293;Value(sub1,ff*x)/ff^2;
1545688055808
x^2-7
gap> qol=sub2;
true

We verify that the polynomial for the degree $2$ extension remains irreducible over the degree $12$ extension, and the original polynomial splits into factors of degree $12$ over the degree $2$ extension. This shows that indeed the Galois group is a direct product.

gap> e:=AlgebraicExtension(Rationals,qol);
<algebraic extension over the Rationals of degree 12>
gap> Factors(Value(sub1,X(e)));
[ x_1^2+(!-16724060961072604457730048) ]
gap> Factors(Value(x^2-7,X(e)));
[ x_1^2+(!-7) ]
gap> e2:=AlgebraicExtension(Rationals,x^2-7);
<algebraic extension over the Rationals of degree 2>
gap> Factors(Value(sub1,X(e2)));
[ x_1+(-1545688055808*a), x_1+1545688055808*a ]
gap> Factors(Value(q,X(e2)));
[ !16777216*x_1^12+(-16777216*a)*x_1^11+!33554432*x_1^10+(-37748736*a)*x_1^9+!235929600*x_1^8+(-10485760*a)*x_1^7+(!-291504128)*x_1^6+37224448*a*x_1^5+!116588544*x_1^4+1769472*a*x_1^3+(!-15466496)*x_1^2+(-1916928*a)*x_1+!176128,
  x_1^12+a*x_1^11+!2*x_1^10+9/4*a*x_1^9+!225/16*x_1^8+5/8*a*x_1^7+(!-139/8)*x_1^6+(-71/32*a)*x_1^5+!1779/256*x_1^4+(-27/256*a)*x_1^3+(!-59/64)*x_1^2+117/1024*a*x_1+!43/4096 ]
Parcly Taxel
  • 103,344
ahulpke
  • 18,416
  • 1
  • 21
  • 38