> < ^ Date: Fri, 23 May 1997 11:40:24 +0200
> < ^ From: Akos Seress <akos@math.ohio-state.edu >
< ^ Subject: Re: NormalSubgroups

Dear Gap-Forum,

G:=Group( ( 2,23,20,17, 8,10)( 3,24,30,28,16, 9)( 4,21,18, 7)( 5,22,19, 6)
(11,12,25,26)(13,14,27,15), ( 1, 5,18,29,27,25)( 3, 6,16,28,14,24)
( 4,19,30,23)( 7,15,12,10)( 8,11,13, 9)(20,26,22,21) );

computation using NormalSubgroups, and also mentioned the function
PCore(G,2), which tells that G has an elementary abelian normal subgroup
of size 2^14.

Alternatively, the function DisplayCompositionSeries(G) returns
<G> (16 gens, size 10712468422656000)
| A(15)
<S> (14 gens, size 16384)
| Z(2)
<S> (13 gens, size 8192)
| Z(2)
<S> (12 gens, size 4096)
| Z(2)
<S> (11 gens, size 2048)
| Z(2)
<S> (10 gens, size 1024)
| Z(2)
<S> (9 gens, size 512)
| Z(2)
<S> (8 gens, size 256)
| Z(2)
<S> (7 gens, size 128)
| Z(2)
<S> (6 gens, size 64)
| Z(2)
<S> (5 gens, size 32)
| Z(2)
<S> (4 gens, size 16)
| Z(2)
<S> (3 gens, size 8)
| Z(2)
<S> (2 gens, size 4)
| Z(2)
<S> (1 gens, size 2)
| Z(2)
<1> (0 gens)

and then:

gap> IsElementaryAbelian(G.compositionSeries[2]);
true

Of course, G.compositionSeries[2] must be normal in G.compositionSeries[1] = G.

In general, it seems to be a good idea to use polynomial time algorithms
instead of ones based on backtrack, whenever it is possible.
The computation of a composition series took 2.5 seconds while,
as I write this letter, NormalSubgroups runs already for an hour with