GroupTheory
AllSmallGroups
Calling Sequence
Parameters
Options
Description
Examples
Compatibility
AllSmallGroups( r )
AllSmallGroups( r, opts )
r
-
a positive integer, an integer range, or a small group ID range
opts
(optional) equations of the form keyword = value, as explained below
The form option can be set either to "permgroup" (the default) or to "fpgroup", which controls the type of groups returned by the AllSmallGroups command. If 'form' = "permgroup" is used, then the groups returned are permutation groups, while finitely presented groups are returned if 'form' = "fpgroup" is passed,
The output option can be set either to "list" (the default) or to "iterator". If 'form' = "list" is passed, then a list of the groups specified by the parameter r is returned. If 'form' = "iterator" is passed, then an iterator object is returned which you can use to iterate over the selected groups one at a time. This is useful if the number of groups selected is large, since each group is constructed only as needed instead of creating a large list of all the groups at once.
The small groups library contains all groups of small orders up to 511. The groups are sorted by their orders and they are listed up to isomorphism; that is, for each of the available orders a complete and irredundant list of isomorphism type representatives of groups is given. These groups are available as permutation groups and as groups defined by generators and relations.
In its simplest form, the command AllSmallGroups( r ) returns a list of all the small groups in the small groups library of order r, where r is a positive integer less than 512.
If r is a range of the form m .. n, where m and n are positive integers, then AllSmallGroups( r ) returns a list of all the groups whose order lies in the range m .. n.
More generally, r may be a "range" of the form [ln, lk] .. [un, uk], where ln and un are positive integer less than 512, and where lk is a positive integer in the range 1 .. NumGroups( ln ), and uk is an integer in the range 1 .. NumGroups( un ). In this case, AllSmallGroups( r ) returns a list of the groups whose orders lie in the range ln .. un, beginning with the lk-th group of order ln, and ending with the uk-th group of order un. Think of the groups of each order as forming a "row" of a "ragged" matrix, and the first operand of the range r specifies a first position in this matrix, while the second operand of r specifies a second position in the matrix, so that the range r selects all the groups occurring between these two positions, where the matrix is traversed in row-major order, from the first to the second position.
with⁡GroupTheory:
Return a list of all groups of order 6, as permutation groups.
AllSmallGroups⁡6
2,3,1,2,3,1,23,4,5
Return a list of all groups of order 6, this time, as finitely presented groups.
AllSmallGroups⁡6,form=fpgroup
⁢_a,_b⁢∣⁢_a2,_b3,_a-1⁢_b⁢_a⁢_b-2⁢,⁢g⁢∣⁢g6⁢
This is the same as the default.
AllSmallGroups⁡6,form=permgroup
Use a range to get all the groups whose order lies in the range.
AllSmallGroups⁡4..6
1,2,4,3,1,23,4,1,32,4,1,2,4,5,3,2,3,1,2,3,1,23,4,5
The range endpoints can be small group IDs enclosed in a list. This example returns all groups with IDs lexicographically between groups with SmallGroup ID 6,2 and 8,3, inclusive.
AllSmallGroups⁡6,2..8,3
1,23,4,5,1,2,4,6,7,5,3,1,2,4,6,8,7,5,3,1,2,5,34,6,8,7,1,42,63,75,8,1,23,74,65,8,1,32,54,86,7,1,42,63,85,7
Again, but this time the resulting groups are finitely presented groups.
AllSmallGroups⁡6,2..8,3,form=fpgroup
⁢g3⁢∣⁢g36⁢,⁢g4⁢∣⁢g47⁢,⁢_a⁢∣⁢_a8⁢,⁢_a,_b⁢∣⁢_b2,_a4,_a-1⁢_b-1⁢_a⁢_b⁢,⁢_a,_b,_c⁢∣⁢_a2,_b2,_c2,_c-1⁢_a-1⁢_c⁢_a,_c-1⁢_b-1⁢_c⁢_b,_b-1⁢_a-1⁢_b⁢_a⁢_c-1⁢
One way (not the best) to find the Small Group IDs of those groups of order 128 with nilpotency class 3 uses an iterator output, as follows.
c4≔Array⁡:
it≔AllSmallGroups⁡64,output=iterator
it≔⟨Small Groups Iterator: 64/1 .. 64/267⟩
forid,GinitdoifNilpotencyClass⁡G=4then`,=`⁡c4,id;breakendifenddo:
seq⁡c4
64,32
(A much better way to do this is to use the SearchSmallGroups command.)
SearchSmallGroups⁡order=64,nilpotencyclass=4
64,32,64,33,64,34,64,35,64,36,64,37,64,38,64,39,64,40,64,41,64,42,64,43,64,46,64,47,64,48,64,49,64,186,64,187,64,188,64,189,64,190,64,191
Iterator outputs are particularly useful when you want to find just one (usually the first) example of a group with some property. This example looks for the first non-supersoluble group of order 192.
it≔AllSmallGroups⁡192,output=iterator
it≔⟨Small Groups Iterator: 192/1 .. 192/1543⟩
forid,GinitdoifnotIsSupersoluble⁡Gthenprint⁡id;breakendifenddo:
192,3
Rather than constructing all 1543 groups of order 192, only 3 groups needed to be constructed to find the desired example. (Again, however, SearchSmallGroups would find all such examples nearly instantly.)
The GroupTheory[AllSmallGroups] command was introduced in Maple 17.
For more information on Maple 17 changes, see Updates in Maple 17.
The GroupTheory[AllSmallGroups] command was updated in Maple 2022.
The output option was introduced in Maple 2022.
For more information on Maple 2022 changes, see Updates in Maple 2022.
See Also
GroupTheory[NilpotencyClass]
GroupTheory[NumGroups]
GroupTheory[SearchSmallGroups]
GroupTheory[SmallGroup]
Download Help Document