Skip to content

Commit

Permalink
ENHANCE: RWS for simple
Browse files Browse the repository at this point in the history
Handle overcoverage by Weyl-standin
  • Loading branch information
hulpke committed Dec 8, 2023
1 parent 41bd32e commit 8d79b3a
Showing 1 changed file with 22 additions and 7 deletions.
29 changes: 22 additions & 7 deletions lib/gpfpiso.gi
Original file line number Diff line number Diff line change
Expand Up @@ -1959,12 +1959,18 @@ local isob,isos,iso,gens,a,rels,l,i,j,bgens,cb,cs,b,f,k,w,monoid,
dcnums:=OrbitsDomain(act,[1..Length(rt)]);
dcnums:=List(dcnums,x->Immutable(Set(x)));

# ensure that weyl is rep

# ensure that weyl is rep, if new

rti:=List(dcnums,x->false); # which double are hit already
for i in weyl do
a:=PositionCanonical(rt,i);
j:=PositionProperty(dcnums,x->a in x);
if dcnums[j][1]<>a then
dcnums[j]:=Concatenation([a],Difference(dcnums[j],[a]));
if rti[j]=false then
rti[j]:=true;
if dcnums[j][1]<>a then
dcnums[j]:=Concatenation([a],Difference(dcnums[j],[a]));
fi;
fi;
od;

Expand Down Expand Up @@ -2015,8 +2021,10 @@ local isob,isos,iso,gens,a,rels,l,i,j,bgens,cb,cs,b,f,k,w,monoid,

j:=dcr(i);
a:=Position(dcnum,j[1]);
if not IsBound(dcreps[a]) then dcreps[a]:=i; fi;
dcfix[a]:=j[2]^-1; # mapping calculated to weyl elt
if not IsBound(dcreps[a]) then
dcreps[a]:=i;
dcfix[a]:=j[2]^-1; # mapping calculated to weyl elt
fi;
od;

if not ForAll([1..Length(dc)],x->IsBound(dcreps[x])) then
Expand Down Expand Up @@ -2812,7 +2820,9 @@ local d,f,group,act,g,sy,b,c,borel,weyl,a,i,iso,ucs,gens,gl;
iso:=SplitBNRewritingPresentation(group,borel,weyl,true);
return IsomorphismGroups(G,Source(iso))*iso;
else
Error("can't do yet");
borel:=Group(SpecialPcgs(borel));
iso:=SplitBNRewritingPresentation(group,borel,weyl,true);
return IsomorphismGroups(G,Source(iso))*iso;
fi;

elif a.idSimple.series="C" or
Expand Down Expand Up @@ -2859,7 +2869,12 @@ local d,f,group,act,g,sy,b,c,borel,weyl,a,i,iso,ucs,gens,gl;
a:=Image(act,a);
weyl:=WeylGroupFp("B",d);
Size(weyl);
c:=GQuotients(a,weyl)[1];
c:=GQuotients(a,weyl);
if Length(c)>1 then
c:=Filtered(c,
x->KernelOfMultiplicativeGeneralMapping(x)=Intersection(a,borel));
fi;
c:=c[1];
a:=SubgroupNC(group,List(GeneratorsOfGroup(weyl),
x->PreImagesRepresentative(c,x)));
Size(a);
Expand Down

0 comments on commit 8d79b3a

Please sign in to comment.