Constructing the Galois group of a polynomial knowing its splitting field as a matrix algebra

98 Views Asked by At

I started with the polynomial: $p(x) = x^6-6x^4-6x^3+12x^2-36x+1$ and obtained four 12x12 matrices that have the polynomial $p$ as a minimal polynomial. Using GAP I found out that the Galois group of the polynomial $p$ is the dihedral group with 12 elements:

gap> GaloisType(p);
3

Denoting the list of the matrices mentioned above by $gens$, I conclude that the splitting field of $p$ can be constructed as the matrix algebra $A$ over $\mathbb{Q}$ with generators $gens$:

gap> A := Algebra(Rationals, gens);
<algebra over Rationals, with 4 generators>
gap> Dimension(A);
12

In order to find the missing two 'roots' in $gens$ I tried to reconstruct the galois group $G$ of the field $A$ and find them in the orbit of one of them, but I only found three non trivial elements of $G$:

gap> rho := AlgebraHomomorphismByImages(A, A, [gens[2],gens[4]], [gens[4], gens[2]]);;
gap> Position(gens, Image(rho, gens[1]));
3

From which I conclude that $rho = (2,4)(1,3)...$ and

gap> sig := AlgebraHomomorphismByImages(A, A, [gens[2],gens[3]], [gens[3], gens[2]]);;
gap> Position(gens, Image(sig, gens[1]));
4

From which $sig = (2,3)(1,4)...$

So all I can construct as elements of $G$ is the subgroup $C2 \times C2$ and here I am stuck.

1

There are 1 best solutions below

2
On BEST ANSWER

Caveat: Just the fact that the four matrices have the same minimal polynomial and generate a 12-dimensional algebra is, I think, not proof that they lie in a common algebra that represents the splitting field. But in the end all works out here. Also, what I do is the best I could think of but still is somewhat overkill and will scale badly. Still, maybe it helps.

The idea is to express the roots Using a primitive element of the splitting field. After some tries we find that $gens_1+2gens_2$ will work:

gap> q:=MinimalPolynomial(gens[1]+2*gens[3]);;
gap> Factors(q);
[ a^12-12*a^10+60*a^8+326*a^6+14820*a^4+28968*a^2+63001 ]

Now form the algebraic extension for $q$ and factor the original polynomial over it, and take the roots

gap> p:=MinimalPolynomial(gens[1]);
a^6-6*a^4-6*a^3+12*a^2-36*a+1
gap> e:=AlgebraicExtension(Rationals,q);
<algebraic extension over the Rationals of degree 12>
gap> fp:=Factors(Value(p,X(e)));;
gap> Union(List(fp,RootsOfUPol));
[ 41643/1146315745*a^11+6422/123308865*a^10-612164/1146315745*a^9-32492/411029\
55*a^8+7339743/2292631490*a^7+740656/123308865*a^6+10602774/1146315745*a^5+412\
181/123308865*a^4+539960736/1146315745*a^3+9398636/13700985*a^2-90146619/22926\
31490*a-11010668/123308865,
  -41643/1146315745*a^11+642...

Now comes a horrible hack. Since I don't want to bother to extract the representation, I use cut-and-paste in the terminal with a variable $a$ to make polynomails from it:

gap> a:=X(Rationals,"a");
a
gap> roots:=[ 41643/1146315745*a^11+6422/123308865*a^10-612164/1146315745*a^9-32492/41102955*a^8+7339743/2292631490*a^7+740656/123308865*a^6+10602774/1146315745*a^5+412181/123308865*a^4+539960736/1146315745*a^3+9398636/13700985*a^2-90146619/2292631490*a-11010668/123308865,
  -41643/1146315745*a^11+6422/123308865*a^10+612164/1146315745*a^9-32492/41102955*a^8-7339743/2292631490*a^7+740656/123308865*a^6-10602774/1146315745*a^5+412181/123308865*a^4-539960736/1146315745*a^3+9398636/13700985*a^2+90146619/2292\
631490*a-11010668/123308865,
  124929/2292631490*a^11-3211/123308865*a^10-918246/1146315745*a^9+16246/41102955*a^8+22019229/4585262980*a^7-370328/123308865*a^6+15904161/1146315745*a^5-412181/246617730*a^4+809941104/1146315745*a^3-4699318/13700985*a^2-2563071347/4585262980*a+5505334/123308865,
  -41643/2292631490*a^11-3211/123308865*a^10+306082/1146315745*a^9+16246/41102955*a^8-7339743/4585262980*a^7-370328/123308865*a^6-5301387/1146315745*a^5-412181/246617730*a^4-269980368/1146315745*a^3-4699318/13700985*a^2-2202484871/4585262980*a+5505334/123308865,
  41643/2292631490*a^11-3211/123308865*a^10-306082/1146315745*a^9+16246/41102955*a^8+7339743/4585262980*a^7-370328/123308865*a^6+5301387/1146315745*a^5-412181/246617730*a^4+269980368/1146315745*a^3-4699318/13700985*a^2+2202484871/4585262980*a+5505334/123308865,
  -124929/2292631490*a^11-3211/123308865*a^10+918246/1146315745*a^9+16246/41102955*a^8-22019229/4585262980*a^7-370328/123308865*a^6-15904161/1146315745*a^5-412181/246617730*a^4-809941104/1146315745*a^3-4699318/13700985*a^2+2563071347/
4585262980*a+5505334/123308865 ];

Finally, I evaluate these root expressions in the original primitive element (and verify that indeed the four initial matrices are good:

gap> mats:=List(rp,x->Value(x,gens[1]+2*gens[3]));;
gap> List(mats,x->Position(gens,x));
[ 3, fail, 2, 4, fail, 1 ]

So these six matrices are the roots. To save you recomputation, I give the two missing ones here (multiplied out denominator to keep the expressions short:

gap> 755*mats{[2,5]};
[ [ [ 216, -8902, 6564, -3720, 144, 256, -8505, 282000, -227880, 139680,
          -4160, -10080 ],
      [ -256, 9432, -11974, 8100, -2184, 144, 10080, -371385, 402960,
          -288360, 79200, -4160 ],
      [ -144, 4928, 7704, -11110, 8964, -2184, 4160, -139680, -321465,
          378000, -313320, 79200 ],
      [ 2184, -78768, 31136, -5400, -24214, 8964, -79200, 2855360, -1090080,
          153735, 853200, -313320 ],
      [ -8964, 324888, -186336, 84920, 48384, -24214, 313320, -11358720,
          6615200, -2970000, -1726185, 853200 ],
      [ 24214, -880668, 615456, -331620, -60364, 48384, -853200, 31028520,
          -21597120, 11734400, 2149200, -1726185 ],
      [ 1558, -636, 452, 180, 32, -27, 876, 7268, -6096, 4040, -171, -304 ],
      [ 27, 586, -312, 290, 18, 32, 304, -10068, 10916, -7920, 2216, -171 ],
      [ -32, 1179, 202, -120, 482, 18, 171, -5852, -8016, 9890, -8946, 2216 ],
      [ -18, 616, 963, 310, -12, 482, -2216, 79947, -32444, 5280, 23186,
          -8946 ],
      [ -482, 17334, -5168, 3855, 3202, -12, 8946, -324272, 187299, -86120,
          -48396, 23186 ],
      [ 12, -914, 17478, -5240, 3783, 3202, -23186, 843642, -602504, 326415,
          52996, -48396 ] ],
  [ [ -1968, -7144, 5628, -4360, 198, 352, -8505, 282000, -227880, 139680,
          -4160, -10080 ],
      [ -352, 10704, -11368, 7740, -2248, 198, 10080, -371385, 402960,
          -288360, 79200, -4160 ],
      [ -198, 6776, 8328, -10180, 8928, -2248, 4160, -139680, -321465,
          378000, -313320, 79200 ],
      [ 2248, -81126, 33752, -5160, -23668, 8928, -79200, 2855360, -1090080,
          153735, 853200, -313320 ],
      [ -8928, 323656, -188262, 87320, 48408, -23668, 313320, -11358720,
          6615200, -2970000, -1726185, 853200 ],
      [ 23668, -860976, 607672, -330270, -54688, 48408, -853200, 31028520,
          -21597120, 11734400, 2149200, -1726185 ],
      [ 1558, -636, 452, 180, 32, -27, -1308, 9026, -7032, 3400, -117, -208 ],
      [ 27, 586, -312, 290, 18, 32, 208, -8796, 11522, -8280, 2152, -117 ],
      [ -32, 1179, 202, -120, 482, 18, 117, -4004, -7392, 10820, -8982, 2152 ]
        , [ -18, 616, 963, 310, -12, 482, -2152, 77589, -29828, 5520, 23732,
          -8982 ],
      [ -482, 17334, -5168, 3855, 3202, -12, 8982, -325504, 185373, -83720,
          -48372, 23732 ],
      [ 12, -914, 17478, -5240, 3783, 3202, -23732, 863334, -610288, 327765,
          58672, -48372 ] ] ]