[GAP Forum] Generators of Factor Groups

Max Horn max at quendi.de
Tue Mar 11 13:02:38 GMT 2014


On 11.03.2014, at 05:23, Minghui Liu <matliumh at gmail.com> wrote:

> Dear GAP Forum,
> 
> I am trying to find generators of a factor group. I have input dozens
> of generators and relations and when I use the command
> 
> AbelianInvariants(F/relations);
> 
> the result was something like
> 
> 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5
> 
> (I have reduced the number of 0's for simplicity.)
> 
> My question is, the result shows that the Abelianization of
> F/relations is a direct sum of some Z's and some finite cyclic groups;
> how can I find an explicit set of generators? I am especially
> interested in how to find the elements of order 2, 3, 4, 5,
> respectively.
> 
> Any assistance will be greatly appreciated.

This is quite easy to do using the commands MaximalAbelianQuotient() and IndependentGeneratorsOfAbelianGroup(). The following example should tell you everything you need to know. But feel free to ask for further hints.

# Let's enter a group (I just picked some generators "at random")
gap> F:=FreeGroup(3);
<free group on the generators [ f1, f2, f3 ]>
gap> R:=[Comm(F.1,F.2), F.3^10, F.1*F.2*F.3];
[ f1^-1*f2^-1*f1*f2, f3^10, f1*f2*f3 ]
gap> G:=F/R;
<fp group on the generators [ f1, f2, f3 ]>

# Compute the abelian invariants, and an epimorphism phi: G -> G/G'
gap> AbelianInvariants(G);
[ 0, 2, 5 ]
gap> phi:=MaximalAbelianQuotient(G);
[ f1, f2, f3 ] -> [ f1*f2^-1*f3^-1, f3, f2 ]
gap> H:=Image(phi);
<fp group of size infinity on the generators [ f1, f2, f3 ]>

# Get generators of the quotient H = G / G' which correspond exactly
# to the abelian invariants. This is by design and described as such
# in the manual. But we can also verify it in this example.
gap> gens:=IndependentGeneratorsOfAbelianGroup(H);
[ f3, f2^5, f2^2 ]

# ... verification ...
gap> Order(gens[2]);
2
gap> Order(gens[3]);
5
gap> Index(H, Subgroup(H,[gens[1]]));
10

# We can also map these generators back to elements of the original group;
# but usually you will want to work in the abelian quotient H for this.
gap> List(gens, x -> PreImagesRepresentative(phi, x));
[ f2, f3^5, f3^2 ]




Cheers,
Max


More information about the Forum mailing list