AllSmallGroups - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

GroupTheory

 AllSmallGroups

 Calling Sequence AllSmallGroups( r ) AllSmallGroups( r, opts )

Parameters

 r - a positive integer, an integer range, or a small group ID range opts - (optional) equations of the form keyword = value, as explained below

Options

 • 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.

Description

 • 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.

Examples

 > $\mathrm{with}\left(\mathrm{GroupTheory}\right):$

Return a list of all groups of order $6$, as permutation groups.

 > $\mathrm{AllSmallGroups}\left(6\right)$
 $\left[⟨\left({2}{,}{3}\right){,}\left({1}{,}{2}{,}{3}\right)⟩{,}⟨\left({1}{,}{2}\right)\left({3}{,}{4}{,}{5}\right)⟩\right]$ (1)

Return a list of all groups of order $6$, this time, as finitely presented groups.

 > $\mathrm{AllSmallGroups}\left(6,\mathrm{form}="fpgroup"\right)$
 $\left[⟨{}{\mathrm{_a}}{,}{\mathrm{_b}}{}{\mid }{}{{\mathrm{_a}}}^{{2}}{,}{{\mathrm{_b}}}^{{3}}{,}{{\mathrm{_a}}}^{{-1}}{}{\mathrm{_b}}{}{\mathrm{_a}}{}{{\mathrm{_b}}}^{{-2}}{}⟩{,}⟨{}{g}{}{\mid }{}{{g}}^{{6}}{}⟩\right]$ (2)

This is the same as the default.

 > $\mathrm{AllSmallGroups}\left(6,\mathrm{form}="permgroup"\right)$
 $\left[⟨\left({2}{,}{3}\right){,}\left({1}{,}{2}{,}{3}\right)⟩{,}⟨\left({1}{,}{2}\right)\left({3}{,}{4}{,}{5}\right)⟩\right]$ (3)

Use a range to get all the groups whose order lies in the range.

 > $\mathrm{AllSmallGroups}\left(4..6\right)$
 $\left[⟨\left({1}{,}{2}{,}{4}{,}{3}\right)⟩{,}⟨\left({1}{,}{2}\right)\left({3}{,}{4}\right){,}\left({1}{,}{3}\right)\left({2}{,}{4}\right)⟩{,}⟨\left({1}{,}{2}{,}{4}{,}{5}{,}{3}\right)⟩{,}⟨\left({2}{,}{3}\right){,}\left({1}{,}{2}{,}{3}\right)⟩{,}⟨\left({1}{,}{2}\right)\left({3}{,}{4}{,}{5}\right)⟩\right]$ (4)

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.

 > $\mathrm{AllSmallGroups}\left(\left[6,2\right]..\left[8,3\right]\right)$
 $\left[⟨\left({1}{,}{2}\right)\left({3}{,}{4}{,}{5}\right)⟩{,}⟨\left({1}{,}{2}{,}{4}{,}{6}{,}{7}{,}{5}{,}{3}\right)⟩{,}⟨\left({1}{,}{2}{,}{4}{,}{6}{,}{8}{,}{7}{,}{5}{,}{3}\right)⟩{,}⟨\left({1}{,}{2}{,}{5}{,}{3}\right)\left({4}{,}{6}{,}{8}{,}{7}\right){,}\left({1}{,}{4}\right)\left({2}{,}{6}\right)\left({3}{,}{7}\right)\left({5}{,}{8}\right)⟩{,}⟨\left({1}{,}{2}\right)\left({3}{,}{7}\right)\left({4}{,}{6}\right)\left({5}{,}{8}\right){,}\left({1}{,}{3}\right)\left({2}{,}{5}\right)\left({4}{,}{8}\right)\left({6}{,}{7}\right){,}\left({1}{,}{4}\right)\left({2}{,}{6}\right)\left({3}{,}{8}\right)\left({5}{,}{7}\right)⟩\right]$ (5)

Again, but this time the resulting groups are finitely presented groups.

 > $\mathrm{AllSmallGroups}\left(\left[6,2\right]..\left[8,3\right],'\mathrm{form}'="fpgroup"\right)$
 $\left[⟨{}{\mathrm{g3}}{}{\mid }{}{{\mathrm{g3}}}^{{6}}{}⟩{,}⟨{}{\mathrm{g4}}{}{\mid }{}{{\mathrm{g4}}}^{{7}}{}⟩{,}⟨{}{\mathrm{_a}}{}{\mid }{}{{\mathrm{_a}}}^{{8}}{}⟩{,}⟨{}{\mathrm{_a}}{,}{\mathrm{_b}}{}{\mid }{}{{\mathrm{_b}}}^{{2}}{,}{{\mathrm{_a}}}^{{4}}{,}{{\mathrm{_a}}}^{{-1}}{}{{\mathrm{_b}}}^{{-1}}{}{\mathrm{_a}}{}{\mathrm{_b}}{}⟩{,}⟨{}{\mathrm{_a}}{,}{\mathrm{_b}}{,}{\mathrm{_c}}{}{\mid }{}{{\mathrm{_a}}}^{{2}}{,}{{\mathrm{_b}}}^{{2}}{,}{{\mathrm{_c}}}^{{2}}{,}{{\mathrm{_c}}}^{{-1}}{}{{\mathrm{_a}}}^{{-1}}{}{\mathrm{_c}}{}{\mathrm{_a}}{,}{{\mathrm{_c}}}^{{-1}}{}{{\mathrm{_b}}}^{{-1}}{}{\mathrm{_c}}{}{\mathrm{_b}}{,}{{\mathrm{_b}}}^{{-1}}{}{{\mathrm{_a}}}^{{-1}}{}{\mathrm{_b}}{}{\mathrm{_a}}{}{{\mathrm{_c}}}^{{-1}}{}⟩\right]$ (6)

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.

 > $\mathrm{c4}≔\mathrm{Array}\left(\left[\right]\right):$
 > $\mathrm{it}≔\mathrm{AllSmallGroups}\left(64,'\mathrm{output}'="iterator"\right)$
 ${\mathrm{it}}{≔}{\mathrm{⟨Small Groups Iterator: 64/1 .. 64/267⟩}}$ (7)
 > $\mathbf{for}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{id},G\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{in}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{it}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{do}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{if}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{NilpotencyClass}\left(G\right)=4\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{then}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{,=}\left(\mathrm{c4},\left[\mathrm{id}\right]\right);\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{break}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{end if}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{end do}:$
 > $\mathrm{seq}\left(\mathrm{c4}\right)$
 $\left[{64}{,}{32}\right]$ (8)

(A much better way to do this is to use the SearchSmallGroups command.)

 > $\mathrm{SearchSmallGroups}\left('\mathrm{order}'=64,'\mathrm{nilpotencyclass}'=4\right)$
 $\left[{64}{,}{32}\right]{,}\left[{64}{,}{33}\right]{,}\left[{64}{,}{34}\right]{,}\left[{64}{,}{35}\right]{,}\left[{64}{,}{36}\right]{,}\left[{64}{,}{37}\right]{,}\left[{64}{,}{38}\right]{,}\left[{64}{,}{39}\right]{,}\left[{64}{,}{40}\right]{,}\left[{64}{,}{41}\right]{,}\left[{64}{,}{42}\right]{,}\left[{64}{,}{43}\right]{,}\left[{64}{,}{46}\right]{,}\left[{64}{,}{47}\right]{,}\left[{64}{,}{48}\right]{,}\left[{64}{,}{49}\right]{,}\left[{64}{,}{186}\right]{,}\left[{64}{,}{187}\right]{,}\left[{64}{,}{188}\right]{,}\left[{64}{,}{189}\right]{,}\left[{64}{,}{190}\right]{,}\left[{64}{,}{191}\right]$ (9)

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$.

 > $\mathrm{it}≔\mathrm{AllSmallGroups}\left(192,'\mathrm{output}'="iterator"\right)$
 ${\mathrm{it}}{≔}{\mathrm{⟨Small Groups Iterator: 192/1 .. 192/1543⟩}}$ (10)
 > $\mathbf{for}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{id},G\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{in}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{it}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{do}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{if}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{not}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{IsSupersoluble}\left(G\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{then}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathrm{print}\left(\mathrm{id}\right);\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{break}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{end if}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}\mathbf{end do}:$
 ${192}{,}{3}$ (11)

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.)

Compatibility

 • 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.