GAP:IdGroup

Function type
IdGroup (synonym IdSmallGroup) is a GAP function with one argument, which is a group, and which outputs an ordered pair of natural numbers.

Behavior

 * If the order is finite, and GAP's library has the list of groups of that order, then GAP returns an ordered pair: the order of the group, followed by the position in which that group occurs in the list of groups with that order.
 * If the group is finite but GAP does not have a list of groups of that order, GAP gives an error to that effect: it says that the group identification for groups of that size is not available.
 * Similarly, if the group is infinite, GAP gives an error to the effect that the group identification for groups os size infinity is not available.

Typical usage
IdGroup(group);

where group is a specified group.

Available groups
IdGroup is available only for those groups that are in the SmallGroups library. However, there are some groups that are in the SmallGroups library for which the IdGroup functionality is not available, because these groups are very difficult to identify. The table below gives the list of orders for which IdGroup works. In cases where IdGroup does not work, an error message that includes the order of the group is displayed.

Here are the smallest orders for which IdGroup cannot be implemented.

Other functions that directly use the SmallGroup library

 * GAP:SmallGroup: This is the two-sided inverse of IdGroup: the command SmallGroup(a,b) returns the $$b^{th}$$ group of order $$a$$.
 * GAP:AllSmallGroups
 * GAP:SmallGroupsInformation
 * GAP:NumberSmallGroups
 * GAP:OneSmallGroup

Other functions for identifying group structure

 * GAP:StructureDescription: The flip side is that this does not identify a group uniquely. The plus side is that it gives a more intuitive description of the group and works for some groups outside GAP's SmallGroup library if GAP can identify the group structure.

Single command examples
gap> IdGroup(CyclicGroup(6)); [ 6, 2 ] gap> IdGroup(SL(2,5)); [ 120, 5 ] gap> IdGroup(CyclicGroup(120))[2]; 4 gap> IdGroup(SmallGroup(24,7)); [ 24, 7 ]

Below is an explanation:

Error message examples
gap> IdGroup(H); [ 576, 8653 ] gap> IdGroup(CyclicGroup(1024)); Error, the group identification for groups of size 1024 is not available called from called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue

Below is an explanation:

Typical command sequences using this function
gap> G := SymmetricGroup(4); Sym( [ 1 .. 4 ] ) gap> H := DirectProduct(G,G); Group([ (1,2,3,4), (1,2), (5,6,7,8), (5,6) ]) gap> IdGroup(H); [ 576, 8653 ]

Below is an explanation:

IdGroup can be combined with other functions, to apply it to lists of subgroups. For instance:

gap> G := SmallGroup(81,7); <pc group of size 81 with 4 generators> gap> List(NormalSubgroups(G),IdGroup); [ [ 1, 1 ], [ 3, 1 ], [ 9, 2 ], [ 27, 4 ], [ 27, 4 ], [ 27, 3 ], [ 27, 5 ], [ 81, 7 ] ]

Below is an explanation: