# [GAP Forum] Re: Semisimple groups

Alexander Hulpke hulpke at math.colostate.edu
Sat Sep 25 16:29:21 BST 2004

```Dear GAP-Forum,

Alireza Abdollahi wrote:

> I need to compute  all "semisimple subgroups" (up to
> isomorphism) of the direct product of seven
> SymmetricGroup(10).
> (By a semisimple group I mean a finite non-trivial
> group which contains  no non-trivial abelian normal
> subgroup.)
>
> Does anyone know an "ad hoc" way to compute all such
> subgroups with GAP?

I think the image under each projection on on of the 7 copies of S_10 has to
be semisimple again. Thus you are looking for iterated subdirect products
of 7 groups, each of which is a semisimple subgroup of S10.

There is no built-in function for this, however the appended code forms
subdirect products of two groups (some of the resulting groups are still
isomorphic!).

On could try to iterate it to get 7 copies, but this is likely to take very
long and might be memory intensive.

For example, this would be the calculation for S_5^3:

g:=SymmetricGroup(5);
d:=DirectProduct(g,g);
semi:=[g,DerivedSubgroup(g)]; # list of all semisimple subgroups of S5
semi2:=AllSubdirectProducts(d,semi,semi);  # semisimple subgroups of S5xS5

d3:=DirectProduct(d,g);
semi3:=AllSubdirectProducts(d3,semi2,semi);

However S_10^7 is rather large -- I have not tried how far this approach
would go. Also at each step you might want to weed out isomorphic groups by
hand before proceeding.

I hope this is of help,

Alexander Hulpke

PS: As the question was sent three days ago to gap-trouble and now has been
sent again to the Forum (thus the public reply) let me add the note that
while we will try to respond to every question all of us have other duties
besides of answering questions -- sometimes it might take a week or two to

-- Colorado State University, Department of Mathematics,
Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA
email: hulpke at math.colostate.edu, Phone: ++1-970-4914288
http://www.math.colostate.edu/~hulpke

AllSubdirectProducts:=function(d,l1,l2)
local prd, e1, e2, n, m, nate, gf, natf, iso, au, t, gens, g, h, e, f, rep;
prd:=[];
e1:=Embedding(d,1);
e2:=Embedding(d,2);
# run through all pairs of groups
for g in l1 do
for h in l2 do
n:=NormalSubgroups(g);
m:=NormalSubgroups(h);
# run through all pairs of normal subgroups
for e in n do
nate:=NaturalHomomorphismByNormalSubgroup(g,e);
gf:=Image(nate,g);
for f in m do
if Index(h,f)=Index(g,e) then
natf:=NaturalHomomorphismByNormalSubgroup(h,f);
iso:=IsomorphismGroups(gf,Image(natf,h));
if iso<>fail then
# run through all isomorphisms between the factors modulo
# inner
au:=AutomorphismGroup(gf);
t:=RightTransversal(au,InnerAutomorphismsAutomorphismGroup(au));
for rep in t do
# form product
gens:=Concatenation(
List(GeneratorsOfGroup(e),i->Image(e1,i)),
List(GeneratorsOfGroup(f),i->Image(e2,i)),
List(GeneratorsOfGroup(g),
i->Image(e1,i)*
Image(e2,PreImagesRepresentative(natf,
Image(iso,Image(rep,Image(nate,i)))) )));
gens:=Group(gens,One(d));
Print("found :",Size(e)," ",Size(f),"->",Size(gens),"\n");
od;
fi;
fi;
od;
od;
od;
od;
return prd;
end;

g:=SymmetricGroup(5);
d:=DirectProduct(g,g);
semi:=[g,DerivedSubgroup(g)];

```