Groups and homomorphisms
Functions for groups This method is in the process of being transferred from package &ResClasses;: for now you should &LoadResClasses; in order to use it. It provides a method for Comm when the argument is a list (enclosed in square brackets), and calls the function LeftNormedComm.

gap> Comm( [ (1,2), (2,3) ] ); (1,2,3)
This function is in the process of being transferred from package &ResClasses;: for now you should &LoadResClasses; in order to use it. It tests whether two elements in a group commute.

gap> D12 := DihedralGroup( 12 ); SetName( D12, "D12" ); <pc group of size 12 with 3 generators> gap> a := D12.1;; b := D12.2;; gap> IsCommuting( a, b ); false
This function is in the process of being transferred from package &RCWA;: for now you should &LoadRCWA; in order to use it.

The operation ListOfPowers(g,exp) returns the list [g,g^2,...,g^{exp}] of powers of the element g.

gap> ListOfPowers( D12.2, 6 ); [ f2, f3, f2*f3, f3^2, f2*f3^2, <identity> of ... ]
This function is in the process of being transferred from package &RCWA;: for now you should &LoadRCWA; in order to use it.

This operation returns a list containing the generators of G followed by the inverses of these generators.

gap> GeneratorsAndInverses( D12 ); [ f1, f2, f3, f1, f2*f3^2, f3^2 ]
These three functions have been transferred from package &ResClasses;.

The upper and lower Fitting series and the Fitting length of a solvable group are described here: https://en.wikipedia.org/wiki/Fitting_length.

gap> UpperFittingSeries( D12 ); [ Group([ ]), Group([ f3, f2*f3 ]), Group([ f3, f2*f3, f1 ]) ] gap> LowerFittingSeries( D12 ); [ D12, Group([ f3 ]), Group([ ]) ] gap> FittingLength( D12 ); 2
Functions for group homomorphisms This function is in the process of being transferred from package &RCWA;: for now you should &LoadRCWA; in order to use it. It maps the generators of G to those of H. It is not checked that this map is a group homomorphism!

gap> G := Group((1,2,3,4),(3,4));; gap> H := Group((6,7),(7,8));; gap> e1 := EpimorphismByGenerators(G,H); [ (1,2,3,4), (3,4) ] -> [ (6,7), (7,8) ] gap> ## note that this is just an abbreviation for: gap> e2 := GroupHomomorphismByImages( G, H, > GeneratorsOfGroup(G), GeneratorsOfGroup(H) );; gap> e1 = e2; true gap> ## but the following is nonsense: gap> e0 := EpimorphismByGenerators( Group((1,2,3)), Group((8,9)) ); [ (1,2,3) ] -> [ (8,9) ] gap> IsGroupHomomorphism(e0); true