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;