Skip to content

Commit

Permalink
hack in order to make more cases work
Browse files Browse the repository at this point in the history
Once we know that our group is abelian,
call `IrreducibleModules` without restricting the dimension to 1,
and later filter the result in order to take just the 1-dim. modules.
(This is not a good solution, but at least more tests are working now.)
  • Loading branch information
ThomasBreuer committed Feb 3, 2025
1 parent ce72fe0 commit 9ec1b22
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 18 deletions.
36 changes: 20 additions & 16 deletions lib/grpreps.gi
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ local modu, modus,gens,v,subs,sub,ser,i,j,a,si,dims,cf,mats,clos,bas,rad;
a:=DerivedSubgroup(G);
if Size(a)=Size(G) then
return [gens,[TrivialModule(Length(gens),F)]];
elif IsPrimeField(F) then
if IsAbelian(G) then
elif IsAbelian(G) then
if IsPrimeField(F) then
if CanEasilyComputePcgs(G) then
# call `IrreducibleMethods` again;
# we assume that now another method is applicable
Expand All @@ -67,23 +67,27 @@ local modu, modus,gens,v,subs,sub,ser,i,j,a,si,dims,cf,mats,clos,bas,rad;
a:= IsomorphismPcGroup(G);
fi;
else
# delegate to a proper factor group
a:= MaximalAbelianQuotient(G);
a:= IsomorphismPermGroup(G);
fi;
si:=List(gens,x->ImagesRepresentative(a,x));
sub:= Group(si);
SetIsAbelian(sub, true);
sub:=IrreducibleModules(sub,F,1);
if sub[1]=si then
return [gens,sub[2]];
else
modu:=[];
for i in sub[2] do
else
# delegate to a proper factor group
a:= MaximalAbelianQuotient(G);
fi;
si:=List(gens,x->ImagesRepresentative(a,x));
sub:= Group(si);
SetIsAbelian(sub, true);
sub:= IrreducibleModules(sub,F,0);
if sub[1]=si then
return [gens, Filtered( sub[2], x -> x.dimension = 1 )];
else
modu:=[];
for i in sub[2] do
if i.dimension = 1 then
v:=GroupHomomorphismByImages(Image(a),Group(i.generators),sub[1],i.generators);
Add(modu,GModuleByMats(List(si,x->ImagesRepresentative(v,x)),F));
od;
return [gens,modu];
fi;
fi;
od;
return [gens,modu];
fi;

fi;
Expand Down
6 changes: 4 additions & 2 deletions tst/testinstall/grpreps.tst
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@ gap> Length( IrreducibleModules( AlternatingGroup(5), GF(3), 1 )[2] ) = 1;
true
gap> Length( IrreducibleModules( Group( (1,2), (1,2) ), GF(3), 1 )[2] ) = 2;
true
gap> true; # Length( IrreducibleModules( Group( (1,2), (1,2) ), GF(4), 1 )[2] ) = 1;
gap> Length( IrreducibleModules( Group( (1,2), (1,2) ), GF(4), 1 )[2] ) = 1;
true
gap> Length( IrreducibleModules( Group( (1,2,3,4,5) ), GF(4), 1 )[2] ) = 1;
true
gap> Length( IrreducibleModules( CyclicGroup( IsFpGroup, 2 ), GF(3), 1 )[2] ) = 2;
true
gap> true; # Length( IrreducibleModules( CyclicGroup( IsFpGroup, 2 ), GF(4), 1 )[2] ) = 1;
gap> Length( IrreducibleModules( CyclicGroup( IsFpGroup, 2 ), GF(4), 1 )[2] ) = 1;
true
gap> Length( IrreducibleModules( SymmetricGroup(5), GF(3), 1 )[2] ) = 2;
true
Expand Down

0 comments on commit 9ec1b22

Please sign in to comment.