Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

problem with IrreducibleModules #5924

Open
ThomasBreuer opened this issue Feb 3, 2025 · 3 comments
Open

problem with IrreducibleModules #5924

ThomasBreuer opened this issue Feb 3, 2025 · 3 comments

Comments

@ThomasBreuer
Copy link
Contributor

The following happens in GAP 4.14.0 as well as in the current master branch.

gap> G:= Group( (1,2), (1,2) );
Group([ (1,2), (1,2) ])
gap> CanEasilyComputePcgs( G );
false
gap> F:= GF(2);
GF(2)
gap> IrreducibleModules( G, F, 1 );
Error, recursion depth trap (5000) in
  IsOne( gen ) at /.../gap/lib/grpperm.gi:301 called from 
SmallestMovedPoint( C ) at /.../gap/lib/grpperm.gi:399 called from
NrMovedPoints( GeneratorsOfGroup( G ) 
 ) at /.../gap/lib/grpperm.gi:466 called from
NrMovedPoints( grp ) at /.../gap/lib/pcgsperm.gi:370 called from
TryPcgsPermGroup( [ G, GroupStabChain( G, S, true ) ], false, false, true 
 ) at /.../gap/lib/stbc.gi:108 called from
StabChainOp( G, rec(
     ) ) at /.../gap/lib/stbc.gi:28 called from
...  at *stdin*:4
you may 'return;'
brk> 

The problem is a delegation to the same operation called with the commutator factor group, also if the group is itself abelian.
(In many other situations, the method for solvable groups is applicable and therefore one does not run into the infinite recursion.)

I will create a pull request that fixes this problem.

@ThomasBreuer
Copy link
Contributor Author

The situation is a bit worse than I thought.

#5925 fixes the delegations between the IrreducibleModules methods, but it turns out that we have in fact no code for computing the irreducible modules of abelian groups over finite non-prime fields.
After the changes from #5925, we get the following (instead of the infinite recursion).

gap> IrreducibleModules( Group( (1,2), (1,2) ), GF(4), 1 );
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `[]' on 2 arguments
The 2nd argument is 'fail' which might point to an earlier problem
 at /.../gap/lib/methsel2.g:250 called from
Random( GlobalMersenneTwister, 1, Length( l ) 
 ) at /.../gap/lib/random.gi:238 called from
Random( [ 2 .. a ] ) at /.../gap/lib/grpreps.gi:149 called from
<function "IrreducibleModules generic method for groups and finite field">( <a\
rguments> )
 called from read-eval loop at *stdin*:2
type 'quit;' to quit to outer loop
brk>

Apparently the generic code does not deal with this situation.

@ThomasBreuer
Copy link
Contributor Author

The second commit for #5925 fixes the errors that popped up after the first commit.

This is an ugly hack, but for the moment I do not have a better solution.
(Eventually, the generic code should be fixed, and perhaps a better method for abelian groups could be provided.)

@ThomasBreuer
Copy link
Contributor Author

(Just for curiosity:
The IrreducibleModules methods for IsPermGroup and IsField and IsFinite claims to do a reduction modulo the p-core, but the result is used only if it is written w.r.t. the given generators, otherwise this result gets ignored. Is this really intended, or is it just an oversight?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant