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;