You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It works for groups in the database, but not in general, due to some cases missing or being not quite right.
@glukemorgan provided an alternative implementation which is based on the GAP function ONanScottType. I am reproducing it below.
We should just use that, but I'd like to also add a bunch of tests for it to .tst, both by running it on groups in the library, and also by running it against examples outside of the library. Luke, if you can provide some relevant examples (ones that are treated wrong by the current method and right by the new one), that would be great. Ideally 1-2 examples for each possible case, if you have.
Here is the code we could use. I'd suggest to diff it one last time against ONanScottType. It also should probably start by a check for IsQuasiprimitive and error out otherwise, just like ONanScottType does.
# this code is a modified version of the ONanScottType function that is present in gap.# modified by Luke Morgan# I only modified the section where ASreg is allowed for quasiprimitive.PraegerONanScottType:=function(G)
local dom,s,cs,t,ts,o,m,stb;
dom:=MovedPoints(G);
s:=Socle(G);
if IsAbelian(s) thenreturn"HA";
elif IsSimpleGroup(s) thenreturn"AS"; # checks only if socle is simple, could be regularelif Length(dom)=Size(s) thenreturn"TW";
else# LM: now the socle is a non-abelian non-simple group# so the group now is of type 3 or 4. Next we determine a simple socle# factor and a direct product of all but one socle factor.# simple socle factor.# as default stab chain chooses pts lexicographically, this is likely a# stored stabilizer
stb:=Stabilizer(s,SmallestMovedPoint(s));
cs:=CompositionSeries(s);
t:=cs[Length(cs)-1]; # t is one simple factor
m:=cs[2]; # m is a T^k-1, t is in m by comp series construction# now test Dixon&Mortimer, p.126, Case 1: R1 (projection of pt. stab# onto one direct factor) is proper subgroup of T1.#if Size(ClosureSubgroup(m,stb))<Size(s) then# Since m is normal, this projection is a proper subgroup iff m does not# act transitivelyifnot IsTransitive(m,dom) thenreturn"PA"; # Product action of type 2 with transitivefi;
# Now we are in case 2, R1=T1. Group must be diagonal (3) or product# action of diagonal with transitive (4). For diagonal case the point# stabilizer must have the order of t, for product case it must be a# power of the order of tif Size(stb)=Size(t) then# type 3# in the a case the socle is not minimal#if Size(NormalClosure(G,t))<Size(s) thenif Length(Orbit(G,t))<Length(cs)-1then# conjugates of t do not cover soclereturn"HS";
elsereturn"SD"; # G has unique minimal normal subgroupfi;
else# Same argument as for 3:#if Size(NormalClosure(G,t))<Size(s) thenif Length(Orbit(G,t))<Length(cs)-1thenreturn"HC";
elsereturn"CD";
fi;
fi;
fi;
end;
The text was updated successfully, but these errors were encountered:
It works for groups in the database, but not in general, due to some cases missing or being not quite right.
@glukemorgan provided an alternative implementation which is based on the GAP function
ONanScottType
. I am reproducing it below.We should just use that, but I'd like to also add a bunch of tests for it to
.tst
, both by running it on groups in the library, and also by running it against examples outside of the library. Luke, if you can provide some relevant examples (ones that are treated wrong by the current method and right by the new one), that would be great. Ideally 1-2 examples for each possible case, if you have.Here is the code we could use. I'd suggest to diff it one last time against
ONanScottType
. It also should probably start by a check forIsQuasiprimitive
and error out otherwise, just likeONanScottType
does.The text was updated successfully, but these errors were encountered: