Leonard Soicher asked:
Using GAP 4.1, I have found LatticeByCyclicExtension very useful to
construct certain small subgroups of a given group (to test as
possible groups of automorphisms of experimental designs with
certain properties). My problem is that even though the groups I
require are all soluble, I get the following sort of error:
Error the perfect residuum is too large at
Error( "the perfect residuum is too large" );
`LatticeByCyclicExtension' does a straightforward cyclic extension algorithm
but does discard all the groups which do not fulfill the function <func>.
If <func> implies solvability of the group, of course the perfect subgroups
are not needed. In the current form however the algorithm first computes
them and then discards them.
The problem is that to improve this behaviour, the algorithm needs to know
what <func> means. I have changed the code in our development version so
that `IsSolvable(Group)' and `IsNilpotent(Group)' are recognized, but I
don't see a way how an algorithm could recognize that the function
G->IsSolvableGroup(G) and Size(G)<100
implies solvability -- so there will be a third optional parameter as well to
explicitly ignore perfect subgroups.
This new version will be part of release 4.2. I will send it to you
privately as well (if anybody else wants it now, send me a note).
> One small additional point: it appears that the trivial subgroup is
> always included in the lattice computed by LatticeByCyclicExtension(G,f),
> whether it satisfies the function f or not (is this correct?).
> If so, this "feature" should be documented.
Indeed. I've amended the documentation.
All the best,