> < ^ Date: Tue, 10 Dec 2002 15:27:53 +0100
< ^ From: Burkhard Hoefling <b.hoefling@tu-bs.de >
< ^ Subject: Re: Computing minimal normal subgroups of a small group

Dear Bill, dear Forum,

the soluble minimal normal subgroups of a group G can also be
computed using the function `AllInvariantSubgroupsWithNProperty' in
the GAP package CRISP. It should work very efficiently, even for very
large groups, and can easily be modified to just compute special
types of minimal normal subgroups. Please find a code example below.

All the best,

Burkhard Hoefling.

SolvableMinimalNormalSubgroups := function (G)

local norms, k;

norms := AllInvariantSubgroupsWithNProperty (G, FittingSubgroup (G),
function (U, V, R, data)
return IsTrivial(R);
end,
ReturnFail,
[]);

    # remove trivial subgroup - in the current implementation, this is always
    # the last group in the list, but better check...
    k := Length (norms);
    while not IsTrivial (norms[k]) do
       k := k - 1;
    od;
    norms{[k..Length(norms)-1]} := norms{[k+1..Length(norms)]};
    Unbind (norms[Length(norms)]);
    return norms;
end;

> < [top]