# [GAP Forum] problem with AllSmallGroups

Stefan Kohl kohl at mathematik.uni-stuttgart.de
Fri Mar 26 10:39:13 GMT 2004

```Dear Forum,

Michael Hartley wrote:

> I can't seem to get AllSmallGroups to work properly...
>
> For example,
>
> AllSmallGroups(Size,120,FrattinifactorId, [60,10]);
>
> should return 5 groups (see SmallGroupsInformation(120)); Instead, it
> returns [ ].
>
> However,
>
> Filtered(AllSmallGroups(120), x -> FrattinifactorId(x) = [60,10]);
>
> does return the required 5 groups.
>
> What am I doing wrong when I try to use AllSmallGroups to filter over
> the FrattinifactorId's ??

The documentation states the following:

--------------------------------------------------------------------------

gap> ?AllSmallGroups
Help: Showing `Reference: AllSmallGroups'

> AllSmallGroups( <arg> )                                                F

returns  all  groups  with  certain  properties  as specified by <arg>. If
<arg>  is  a  number  \$n\$,  then this function returns all groups of order
\$n\$.  However,  the  function  can  also take several arguments which then
must  be organized in pairs `function' and `value'. In this case the first
function  must  be  `Size'  and  the  first  value  an order or a range of
orders.  If  value  is  a  list  then  it is considered a list of possible
function  values  to  include.   The  function returns those groups of the
specified  orders  having  those  properties  specified  by  the remaining
functions and their values.

--------------------------------------------------------------------------

According to the second-last sentence your argument [60,10] is regarded
as a list of possible return values and not as a single return value --
the consequence of this is that the function returns all groups of size
120 whose Frattini factor Id is either 60 or 10. As there are no such
groups it returns the empty list.

The advice at this point is to put the argument [60,10] in brackets --
then it is interpreted as a list of possible alternatives of length 1,
and the result is as desired:

gap> AllSmallGroups(Size,120,FrattinifactorId,[[60,10]]);
[ <pc group of size 120 with 5 generators>,
<pc group of size 120 with 5 generators>,
<pc group of size 120 with 5 generators>,
<pc group of size 120 with 5 generators>,
<pc group of size 120 with 5 generators> ]

Making the brackets unnecessary would require the function
`AllSmallGroups' to know about all possible kinds of values all
conceivable functions on the odd positions of the argument list might
return -- this is of course not possible.

Hope this helps,

Stefan Kohl

```