GAP:IdGroup
This article is about a GAP function.
INTERNAL AD: Want to find out the GAP ID of a group using this wiki? If you go to the wiki page for the group, scroll down to the section titled GAP implementation, where you can find both the GAP ID and other ways to construct the group using GAP. For instance, the section dihedral group:D8#GAP implementation has information on the GAP implementation for dihedral group:D8.
You can also find summary information on all groups of a given order a by typing "groups of order a" (without quotes) into the search box.
Definition
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.
Description | List of orders | Additional comments |
---|---|---|
The SmallGroup function is also available for groups of order , but group identification is not available for this order. | ||
In the latest version here (not yet released as part of GAP) groups of order have a SmallGroup implementation but no group identification. | ||
Groups of order , and, in the latest version here (not yet released as part of GAP) groups of order have a SmallGroup implementation but no group identification. | ||
Groups of order and , and, in the latest version here (not yet released as part of GAP) groups of order have a SmallGroup implementation but no group identification. | ||
Groups of order and , and, in the latest version here (not yet released as part of GAP) groups of order have a SmallGroup implementation but no group identification. | ||
, prime | Groups of order have a SmallGroup implementation but no group identification. | |
, distinct primes, and divides , , , or | (infinite list) | |
squarefree order | (infinite list) | |
order factorizes into at most three primes | (infinite list) | primes are counted with multiplicity |
Here are the smallest orders for which IdGroup cannot be implemented.
Order | Factorization | Can SmallGroup be implemented? |
---|---|---|
512 | Yes | |
1024 | No | |
1536 | Yes | |
2016 | No | |
2024 | No | |
2025 | No | |
2040 | No |
Related functions
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 group of order .
- 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.
Examples of usage
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:
Command | GAP output/print | Other GAP functions used | Explanation |
---|---|---|---|
IdGroup(CyclicGroup(6)); | [ 6, 2 ] | CyclicGroup | GAP is asked to give the group ID of the cyclic group of order six, which it does: the cyclic group of order six is the second among the list of groups of order six. |
IdGroup(SL(2,5)); | [ 120, 5 ] | SL | GAP is asked for the group ID of the special linear group of degree two over field:F5. |
IdGroup(CyclicGroup(120))[2]; | 4 | CyclicGroup | GAP is asked for the second part of the group ID of the cyclic group of order 120. It returns 4. This means that the cyclic group of order 120 has GAP ID (120, 4). |
IdGroup(SmallGroup(24,7)); | [ 24, 7 ] | SmallGroup | GAP is asked for the group ID of the group with group ID (24,7). It returns the same value back. |
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 <function>( <arguments> ) 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:
Command | Error message | Other GAP functions used | Explanation |
---|---|---|---|
IdGroup(CyclicGroup(1024)); | Error, the group identification for groups of size ... | CyclicGroup | GAP returns an error indicating that its SmallGroup library does not have groups of this order. |
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:
Command | GAP output/print | Other GAP functions used | Explanation |
---|---|---|---|
G := SymmetricGroup(4); | Sym( [ 1 .. 4 ] ) | SymmetricGroup | This defines symmetric group:S4 |
H := DirectProduct(G,G); | Group([ (1,2,3,4), (1,2), (5,6,7,8), (5,6) ]) | DirectProduct | This defines a new group as . |
IdGroup(H); | [ 576, 8653 ] | GAP is asked for the group ID of and returns . This indicates that the group has order and is the group in GAP's SmallGroup library. |
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:
Command | GAP output/print | Other GAP functions used | Explanation |
---|---|---|---|
G := SmallGroup(81,7); | <pc group of size 81 with 4 generators> | SmallGroup | Constructs the group with GAP ID (this is actually wreath product of Z3 and Z3) and stores it as . |
List(NormalSubgroups(G),IdGroup); | [ [ 1, 1 ], [ 3, 1 ], [ 9, 2 ], [ 27, 4 ], [ 27, 4 ], [ 27, 3 ], [ 27, 5 ], [ 81, 7 ] ] | List, NormalSubgroups | Returns the group IDs of all normal subgroups of . |