Phil Meier wrote:
I have a finitely presented group G, generated by x_1, ..., x_n,
and would like to know the order of x_i (i = 1,...,n) in the abelianization
i.e. the order of phi(x_i), where phi: G ->
What is the best way to this in GAP?
I think the easiest and most efficient way is just to add the commutator relations to the relations
defining your group and then to compute the orders of the generators of the resulting group, e.g.
gap> F := FreeGroup( "a","b","c" ); # A free group of some rank. <free group on the generators [ a, b, c ]> gap> a := F.1;; b := F.2;; c := F.3;; gap> relsG := [a^2,b^4,c^8,(a*b)^4,(b*c)^16,(a*c)^8];; # Relators defining your gap> G := F/relsG; # finitely presented group -- insert what you want. <fp group on the generators [ a, b, c ]> gap> relscomm := [Comm(a,b),Comm(a,c),Comm(b,c)]; # The commutator relations. [ a^-1*b^-1*a*b, a^-1*c^-1*a*c, b^-1*c^-1*b*c ] gap> H := F/Union(relsG,relscomm); # The abelianization (commutator factor group) of G. <fp group on the generators [ a, b, c ]> gap> List(GeneratorsOfGroup(H),Order); # Get the desired orders. [ 2, 4, 8 ]
There is also a suitable method for `CommutatorFactorGroup',
thus you can get H immediately by
gap> H := CommutatorFactorGroup(G); Group([ f1, f2, f4 ])
but the manual apparently does not guarantee specific generators in this case.
Hope this helps,