Hi Jacek,
Direct product decomposition is unique up to isomorphism of the factors.
So if StructureDescription says Csomething x smallgerGroup, then it is
indeed a direct product of such. When looking at decomposing further (into
semidirect products and extensions), then the decompositon may not be
unique, anymore. But for direct products it is unique.
The bound of 100 in the manual speaks about how quickly can one get the
results. With GAP 4.9.3 the algorithm for StructureDescription is smarter
than before, and with today's computers it may take faster to compute
the structure for some groups than previously, but it still can be very
slow depending on the group.
If you are only interested in the direct factors, then you can use the
function DirectFactorsOfGroup, which gives you the direct factors of the
particular group. Then you can check if any of them cyclic.
Alternatively, if G = H x <g>, then g must commute with H, and of course
with g, thus g commutes with G, as well. Therefore, g is in the center of
G. Furthermore, <g> must have trivial intersection with the derived
subgroup G'.
So you can go over the elements (or rational classes) of the center, see
if the generated group intersects trivially the derived subgroup, and if
yes, then you can try to find a complement (using the command
NormalComplement). This is how DirectFactorsOfGroup finds the abelian
direct factors. You can use something like this:
C := Center(G);
Gd := DerivedSubgroup(G);
D := Intersection(C, Gd);
for g in RationalClasses(C) do
N := Subgroup(C, [Representative(g)]);
if not IsTrivial(N) and IsTrivialNormalIntersection(C, D, N) then
B := NormalComplement(G, N);
if B <> fail then
print(N, B);
break;
fi;
fi;
od;
Hope this helps.
Best,
Gabor
On Sun, 23 Sep 2018, Jacek M. Holeczek wrote:
Hi,
I am looking for a bullet-proof method of identifying Small Groups that
cannot be written as a direct product of a smaller group and a cyclic group
of some size (I do not care about the size of this cyclic group).
Some people use the output of the "StructureDescription(G)" method (where
"G:=SmallGroup(o,i);", of course) and, as soon as they see "C<size> x
SomeThing", they assume that the group G is such a "genuine" direct product
(denoted by the "x") of a "genuine" cyclic group "C<size>" and some smaller
group described by "SomeThing".
However, the manual explicitly says that the output of this method should be
used for "educational" purposes only as it really provides a partial
description of the structure only, especially for orders higher than 100.
I think I have even read somewhere that the "C<size>" does not necessarily
represent a "genuine" cyclic group and that the "x" does not necessarily
represent a "genuine" direct product operation.
Thanks in advance,
Best regards,
Jacek.
_______________________________________________
Forum mailing list
Forum@gap-system.org
https://mail.gap-system.org/mailman/listinfo/forum
Horvath Gabor
-------------------------------------------------------------------------------
e-mail: ghorv...@science.unideb.hu
phone: +36 52 512900 / 22798
web: http://www.math.unideb.hu/horvath-gabor
_______________________________________________
Forum mailing list
Forum@gap-system.org
https://mail.gap-system.org/mailman/listinfo/forum