Let $G$ be a finite group $p$-group and $FG$ be a modular group algebra of $G$. Is there any way to estimate the order of subgroup generated by two or more elements of $U(FG)$, where $U(FG)$ is the group of units of $FG$? For small groups it extremely easy. The larger group and field, the more difficult this exercise is.
Example.
- Easy.
gap> G := QuaternionGroup(8);;
gap> F := GF(2);;
gap> FG := GroupRing(F, G);;
gap> UFG := Units(FG);;
gap> Order(Subgroup(UFG, [Random(UFG), Random(UFG)]));
32
gap> Order(Subgroup(UFG, [Random(UFG), Random(UFG)]));
8
- A little bit more difficult.
gap> G := OneSmallGroup(2^9);;
gap> F := GF(2);;
gap> FG := GroupRing(F, G);;
gap> FG_Teta := Embedding(G, FG);;
gap> Group([Random(G)^FG_Teta + Random(G)^FG_Teta + Random(G)^FG_Teta, Random(G)^FG_Teta]);;
gap> Order(Group([Random(G)^FG_Teta + Random(G)^FG_Teta + Random(G)^FG_Teta, Random(G)^FG_Teta]));;
gap> Order(Group([Random(G)^FG_Teta + Random(G)^FG_Teta + Random(G)^FG_Teta, Random(G)^FG_Teta]));
16384
gap> Order(Group([Random(G)^FG_Teta + Random(G)^FG_Teta + Random(G)^FG_Teta, Random(G)^FG_Teta]));
32768
gap> Order(Group([Random(G)^FG_Teta + Random(G)^FG_Teta + Random(G)^FG_Teta, Random(G)^FG_Teta]));
2048
My main goal is to bypass the step of calculating the exact order of a subgroup and replace it with a logical condition, in which I will determine whether the order of the subgroup is not less than.
If you convert to a matrix representation, you can work in a matrix group and that is much faster:
The use of the
:cheapoption in the last command will stop GAP from trying to improve the degree of the permutation representation that is used internally -- doing so might help if you do further calculations in the group.If the group gets even larger, one can use the
recogpackage (with the caveat that this is so far a result that is probabilistic with a small chance of error):