5
$\begingroup$
ResourceFunction["StauduharGaloisGroup"][2 x^5+3 x^4+10 x^3+15 x^2+8 x+12,x]["GaloisGroup"]

DihedralGroup[5]

We can use FiniteGroupData like this:

FiniteGroupData[{"DihedralGroup", 5}, "Solvable"]

True

But the FiniteGroupData cannot deal with the PermutationGroup like:

 g = ResourceFunction["StauduharGaloisGroup"][
   5 + 14 x + 15 x^2 + 5 x^3 + x^5, x]["GaloisGroup"]

PermutationGroup[{Cycles[{{2,3,5,4}}],Cycles[{{1,2,3,4,5}}]}]

So how to judge the group g is a solvable group or not?

$\endgroup$
6
  • 1
    $\begingroup$ I might use Magma on the Magma calculator, but I don't know if there's an API you could use to call from Mathematica. Sorry if this isn't helpful. (BTW, your second example factors over the rational into a linear + quartic, so it's solvable, which Solve[5 + 14 x + 15 x^2 + 5 x^3 + x^5 == 0] // ToRadicals also shows.) $\endgroup$
    – Michael E2
    May 5, 2022 at 4:43
  • 1
    $\begingroup$ @MichaelE2 2 x^5 + 7 x^4 + 4 x^2 + 2 x + 1 is also solvable, but ToRadicals[Solve[2 x^5 + 7 x^4 + 4 x^2 + 2 x + 1 == 0, x]] don't work again... $\endgroup$
    – yode
    May 5, 2022 at 5:37
  • 1
    $\begingroup$ The docs say ToRadicals does not always work. $\endgroup$
    – Michael E2
    May 5, 2022 at 5:47
  • $\begingroup$ Magma code & radical extension, fwiw. $\endgroup$
    – Michael E2
    May 5, 2022 at 5:57
  • $\begingroup$ @MichaelE2 Thanks. Maple also can do this, but I hope to know how to do it by MMA $\endgroup$
    – yode
    May 5, 2022 at 6:01

3 Answers 3

3
$\begingroup$

This is an extended comment:

The group:

p = PermutationGroup[{Cycles[{{2, 3, 5, 4}}], 
Cycles[{{1, 2, 3, 4, 5}}]}];

has elements: g = GroupElements[p]:

{Cycles[{}], Cycles[{{2, 3, 5, 4}}], Cycles[{{2, 4, 5, 3}}],
Cycles[{{2, 5}, {3, 4}}], Cycles[{{1, 2}, {3, 5}}], Cycles[{{1, 2, 3, 4, 5}}], Cycles[{{1, 2, 4, 3}}], Cycles[{{1, 2, 5, 4}}], Cycles[{{1, 3, 4, 2}}], Cycles[{{1, 3}, {4, 5}}], Cycles[{{1, 3, 5, 2, 4}}], Cycles[{{1, 3, 2, 5}}], Cycles[{{1, 4, 5, 2}}],
Cycles[{{1, 4, 3, 5}}], Cycles[{{1, 4}, {2, 3}}], Cycles[{{1, 4, 2, 5, 3}}], Cycles[{{1, 5, 4, 3, 2}}], Cycles[{{1, 5, 3, 4}}], Cycles[{{1, 5, 2, 3}}], Cycles[{{1, 5}, {2, 4}}]}

It is of order 20 (Length[g]). This is enough to establish it is solvable. See here

Mathematica can provide insight into this. $C_5$ is a subgroup of p:

c5 = GroupElements[CyclicGroup[5]];
in = Intersection[g, c5]

Further, it is a normal subgroup:

conj[x_] := PermutationProduct[#, x, InversePermutation[#]] & /@ g
Flatten[conj /@ c5] // Union

yields:

{Cycles[{}], Cycles[{{1, 2, 3, 4, 5}}], Cycles[{{1, 3, 5, 2, 4}}],
Cycles[{{1, 4, 2, 5, 3}}], Cycles[{{1, 5, 4, 3, 2}}]}

which establishes $g H g^{-1}=H$, where $H=C_5$.

Further, "p/C_5" is Abelian can be shown (conveniently from this example) by showing quotient group elements commute:

cos = {a, b, c, d} = 
  Union[RightCosetRepresentative[CyclicGroup[5], #] & /@ g]
su = Subsets[cos, {2}]
sur = Reverse /@ su
PermutationProduct @@@ su
PermutationProduct @@@ sur

yields:

{Cycles[{{2, 3, 5, 4}}], Cycles[{{2, 4, 5, 3}}], Cycles[{{2, 5}, {3, 4}}], Cycles[{}], Cycles[{{2, 4, 5, 3}}], Cycles[{{2, 3, 5, 4}}]}

{Cycles[{{2, 3, 5, 4}}], Cycles[{{2, 4, 5, 3}}], Cycles[{{2, 5}, {3, 4}}], Cycles[{}], Cycles[{{2, 4, 5, 3}}], Cycles[{{2, 3, 5, 4}}]}

As $\lhd C_5\lhd$ p: and the p/$C_5$ and $C_5/<e>$ are Abelian, p is solvable.

$\endgroup$
9
  • $\begingroup$ There is a resource function ResourceFunction["SubgroupQ"][CyclicGroup[5], p] do this $\endgroup$
    – yode
    May 7, 2022 at 8:32
  • $\begingroup$ Thanks. Did not know this. $\endgroup$
    – ubpdqn
    May 7, 2022 at 8:35
  • $\begingroup$ You seem to have learned Group Theory very well, but it seems to be a way to determine a specified group only. (MMA can't even tell if a group is an abelian group $\endgroup$
    – yode
    May 7, 2022 at 8:39
  • $\begingroup$ @yode I am also trying to learn what can and can’t be done with MMA. A lot of brute force here to provide insights. Fortunately, the Sylow theorems etc can make life easier… $\endgroup$
    – ubpdqn
    May 7, 2022 at 8:42
  • $\begingroup$ As far as I know, Sylow theorems cannot be used to determine whether the group is solvable or not? $\endgroup$
    – yode
    May 7, 2022 at 8:44
1
$\begingroup$

We can check the Derived Series and the last one equal to PermutationGroup[{}](we use the function delCyc here):

delCyc[g_] := Module[{t = GroupGenerators[g], tmp}, 
  If[PermutationGroup[t] == PermutationGroup[tmp = DeleteCases[t, #]],t=tmp]&/@t;
  PermutationGroup[t]]

commutator[a_,b_]:=PermutationProduct[InversePermutation[a],InversePermutation[b],a,b]

DerivedGroup[G_] := Module[{lis}, 
  If[G === PermutationGroup[{}], Return[PermutationGroup[{}]]];
  delCyc[PermutationGroup[
    DeleteDuplicates[commutator @@@ Subsets[GroupElements[G], {2}]]]]]

Most[FixedPointList[DerivedGroup, G, SameTest -> Equal]]

{PermutationGroup[{Cycles[{{2,3,5,4}}],Cycles[{{1,2,3,4,5}}]}],PermutationGroup[{Cycles[{{1,2,3,4,5}}]}],PermutationGroup[{}]}

Then the group G is a solvable group indeed. But it seem this method just can deal the groups of relatively small order.

$\endgroup$
0
$\begingroup$

This is also a comment extension, maybe it can give some clue for the question.


After I DownValues[DataPaclets`FiniteGroupDataDump`RawFiniteGroupData] I will get:

HoldPattern[
  DataPaclets`FiniteGroupDataDump`RawFiniteGroupData[
   DataPaclets`FiniteGroupDataDump`group_, Solvable]] :> 
 Block[{DataPaclets`FiniteGroupDataDump`res}, 
  DataPaclets`FiniteGroupDataDump`res = 
   DataPaclets`FiniteGroupDataDump`RawFiniteGroupData[
    DataPaclets`FiniteGroupDataDump`group, Order]; 
  True /; DataPaclets`FiniteGroupDataDump`validQ[
     DataPaclets`FiniteGroupDataDump`res] && 
    OddQ[DataPaclets`FiniteGroupDataDump`res]]

And GeneralUtilities`PrintDefinitionsLocal[DataPaclets`FiniteGroupDataDump`validQ] will get:

validQ[expr_] := And[UnsameQ[expr, $Failed], UnsameQ[Head @ expr, Missing]];
validQ[___] := False;

This is a built-in algorithm for those named-group, we can use it like:

DataPaclets`FiniteGroupDataDump`RawFiniteGroupData[{"SymmetricGroup",3},"Solvable"]

True

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.