Skip to content

Commit

Permalink
new prime part derived functor
Browse files Browse the repository at this point in the history
  • Loading branch information
grahamknockillaree committed Jan 21, 2025
1 parent 5d9f353 commit 53379b3
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 23 deletions.
2 changes: 2 additions & 0 deletions lib/FreeGmodules/wordOperations.gi
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,8 @@ end);
InstallGlobalFunction(MultiplyWord,
function(n,w)
local v, u, i,x;
if n=1 then return w; fi;

v:=[];

u:=1*w;
Expand Down
9 changes: 9 additions & 0 deletions lib/Functors/equiChainMap.gi
Original file line number Diff line number Diff line change
Expand Up @@ -117,13 +117,18 @@ local z,u,a,y;
if not IsBound(mapgensRec[m+1][AbsoluteValue(x[1])][x[2]]) then

if not x[2]=IDEL then
############################
y:=ShallowCopy(mapgens([x[1],IDEL],m));

Apply(y,b->[b[1],Mult(GhomQ(x[2]),b[2])]);

if x[2]<10000 then
if x[1]>0 then mapgensRec[m+1][AbsoluteValue(x[1])][x[2]]:=y;
else
mapgensRec[m+1][AbsoluteValue(x[1])][x[2]]:=NegateWord(y);
fi;
fi;
#############################
return y;
fi;
if m=0 then
Expand All @@ -141,11 +146,13 @@ fi;
u:=[];
##########################
if Charact=0 then

for a in Collected(z) do
Append(u,MultiplyWord(a[2],
List(HomotopyS(m-1,a[1]), t->[t[1],Mult(GhomQ(x[2]),t[2])])
));
od;

else
for a in Collected(z) do
Append(u,MultiplyWord(a[2] mod Charact,
Expand Down Expand Up @@ -176,7 +183,9 @@ local a, u,v,x,y,z;

v:=Collected(w);
if Charact=0 then

Apply(v,x->MultiplyWord(x[2], mapgens(x[1],m)));

else
Apply(v,x->MultiplyWord(x[2] mod Charact, mapgens(x[1],m)));
fi;
Expand Down
89 changes: 67 additions & 22 deletions lib/Functors/primePartDerivedvsgc.gi
Original file line number Diff line number Diff line change
Expand Up @@ -44,22 +44,38 @@ 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;

AddRels:=function(chn,L) #chn=[P = Q1 < <Q2 < ... < Qk=Q] is a chain of
#k subgroups in G with P=Syl_p(G)
local Q, NS, i, hh, Lhh, ggg, gg, g, gg1, h, sylQQ, QQ, xx, RC, gens, bool, Q0, Q1, S, SS;
Q:=chn[Length(chn)];
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
gg:=One(G);

for i in [1..Length(chn)-1] do
################
################ Changed January 2025
S:=sylQQ^gg;
gens:=SmallGeneratingSet(S);
Q0:=chn[Length(chn)-i+1];
Q1:=chn[Length(chn)-i];
NS:=Normalizer(Q0,Q1);
RC:=RightTransversal(Q0,NS);
RC:=List(RC,x->x^-1);

Unbind(ggg);
for g in RC do
bool:=true;
for xx in gens do
if not xx^g in P then bool:=false; break; fi;
if not xx^g in Q1 then bool:=false; break; fi;
od;
if bool then gg:=g; break; fi;
#if IsSubgroup(P,sylQQ^g) then gg:=g; break; fi;
if bool then ggg:=g; break; fi;
od;
################
################
gg:=gg*ggg;

od;


Expand Down Expand Up @@ -98,18 +114,47 @@ Image(HPKhomHP, Image(HKhomHPK,x) ) );

fx:=GroupHomomorphismByFunction(sylQQ,Q,g->g^(L^-1));
imfx:=Image(fx);
#hh:=false;
#RC:=ConjugateSubgroups(Q,imfx);
#i:=PositionProperty(RC,x->IsSubgroup(P,x));
#hh:=RepresentativeAction(Q,imfx,RC[i]);

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;

hh:=One(G);

for i in [1..Length(chn)-1] do
################
################ Changed January 2025
SS:=imfx^hh;
gens:=SmallGeneratingSet(SS);
Q0:=chn[Length(chn)-i+1];
Q1:=chn[Length(chn)-i];
NS:=Normalizer(Q0,Q1);
RC:=RightTransversal(Q0,NS);
RC:=List(RC,x->x^-1);

Unbind(ggg);
for h in RC do
bool:=true;
for xx in gens do
if not xx^h in Q1 then bool:=false; break; fi;
od;
if bool then ggg:=h; break; fi;
od;
################
################
hh:=hh*ggg;

od;


#######################
#######################
#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);

xx:=F(EquivariantChainMap(S,R,fx));
Expand Down Expand Up @@ -139,7 +184,7 @@ 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);
AddRels([P],L);
od;
fi;
for i in [2..Length(AscChn)] do
Expand All @@ -156,7 +201,7 @@ DCRS:=Filtered(DCRS,a->not a in Cent); #This does not achieve much

for L in DCRS do
cnt:=cnt+1;
AddRels(AscChn[i-1],L);
AddRels(AscChn{[1..i-1]},L);
od;
od;
#########################################
Expand Down
5 changes: 4 additions & 1 deletion lib/Perturbations/resNormalSer.gi
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,12 @@ od;

GensQ[L]:=GensSeries[1];


Res:=[];
if tietze=false and Charact=0 then
Res[2]:=ResolutionGenericGroup(Group(GensQ[2]),n);
else
Res[2]:=ResolutionFiniteGroup(GensQ[2],n,tietze,Charact);
fi;
#Res[2]:=ResolutionFiniteGroup(Group(GensQ[2]),n,tietze,Charact);
#Changed 14/08/2019
if nohomotopy then Res[2]!.homotopy:=fail; fi;
Expand Down
1 change: 1 addition & 0 deletions tst/testall2/3.5.3.tst
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ gap> SetCrystGroupDefaultAction( RightAction );
gap> e:=SpaceGroupBBNWZ(2,10);;
gap> G:=RelativeCentralQuotientSpaceGroup(e,4);;
gap> n:=10;;PoincareSeries(G,n);
The series is guaranteed correct for group cohomology in degrees < 11
(1)/(-x_1^4+2*x_1^3-2*x_1+1)
gap> STOP_TEST( "tst.tst", 1000 );

0 comments on commit 53379b3

Please sign in to comment.