AscChn:=AscendingChain(G,P1 : refineIndex:=10); #Added refineIndex, December 2024
fi;
if IsList(GG) then G:=GG[Length(GG)];
AscChn:=GG;
P1:=Normalizer(G,P);
fi;
#HP:=GroupHomomorphismByFunction(P,P,x->x);
#HP:=EquivariantChainMap(R,R,HP);
#HP:=F(HP);
#HP:=Homology(HP,n); #This takes too much time!!
x:=IntegralHomology("HomologyAsFpGroup",n); #Modified December 2024
HP:=x(F(R),n);
HP:=HP.fpgroup;
#HP:=Source(HP);
if Length(AbelianInvariants(HP))=0 then return []; fi;
HPrels:=[Identity(HP)];
####################################
####################################
#########################################
#########################################
AddRels:=function(Q,L) #Here P < Q < G where P=Syl_p(G)
local i, hh, Lhh, gg, g, gg1, h, sylQQ, QQ, xx, RC, gens, bool;
QQ:=Intersection(Q,Q^L);
sylQQ:=SylowSubgroup(QQ,prime);
if not Order(sylQQ)>1 then return; fi;
gens:=SmallGeneratingSet(sylQQ);
RC:=RightTransversal(Q,Normalizer(Q,sylQQ));
for g in RC do #December 2024 changed
bool:=true;
for xx in gens do
if not xx^g in P then bool:=false; break; fi;
od;
if bool then gg:=g; break; fi;
#if IsSubgroup(P,sylQQ^g) then gg:=g; break; fi;
od;
#########################################
#########################################
if Order(P)/Order(sylQQ)>1 then #NEED TO OPTIMIZETHIS CHOICE!!
hh:=Homology(F(S),n);
if IsInt(hh) then hh:=List([1..hh],i->0); fi;
if not Length(hh)>0 then return; fi;
f:=GroupHomomorphismByFunction(sylQQ,P,x->x^gg);
xx:=F(EquivariantChainMap(S,R,f));;
HKhomHPK:=Homology(xx,n);
HK:=Source(HKhomHPK);
HPK:=Range(HKhomHPK);
HPKhomHP:=GroupHomomorphismByImagesNC(HPK,HP,GeneratorsOfGroup(HPK),
GeneratorsOfGroup(HP));
HKhomHP:=GroupHomomorphismByFunction(HK,HP,x->
Image(HPKhomHP, Image(HKhomHPK,x) ) );
RC:=RightCosets(Q,Normalizer(Q,imfx));
RC:=List(RC,Representative);
for h in RC do #December 2024 changed from Q to RC
if IsSubgroup(P,imfx^h) then hh:=h; break; fi;
od;
Lhh:=L^-1*hh;
#fx:=GroupHomomorphismByFunction(sylQQ,P,g->(g^(L^-1))^hh);
fx:=GroupHomomorphismByFunction(sylQQ,P,g->g^Lhh);
ord:=function(x,y); return Order(x)<Order(y); end;
if Order(P1)>Order(P) then
DCRS:=SmallGeneratingSet(P1);
for L in DCRS do
AddRels(P,L);
od;
fi;
for i in [2..Length(AscChn)] do
Sort(DCRS,ord);
DCRS:=Filtered(DCRS,a->not a in Cent); #This does not achieve much
#DCRS:=Classify(DCRS,x->Cent*x); #And this achieves nothing!
#DCRS:=List(DCRS,x->x[1]); #
for L in DCRS do
cnt:=cnt+1;
AddRels(AscChn[i-1],L);
od;
od;
#########################################
#########################################
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.