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

Error with TwoCohomologyGeneric #5932

Open
mecejide opened this issue Feb 8, 2025 · 4 comments
Open

Error with TwoCohomologyGeneric #5932

mecejide opened this issue Feb 8, 2025 · 4 comments
Labels
kind: bug: unexpected error Issues describing bugs in which computation unexpectedly encounters an error, and PRs fixing them kind: bug Issues describing general bugs, and PRs fixing them

Comments

@mecejide
Copy link

mecejide commented Feb 8, 2025

gap> G:=AtlasGroup("G2(3)",Position,7);
<matrix group of size 4245696 with 2 generators>
gap> M:=NaturalGModule(G);
rec( IsOverFiniteField := true, dimension := 7, field := GF(3),
  generators := [ < immutable compressed matrix 7x7 over GF(3) >, < immutable compressed matrix 7x7 over GF(3) > ],
  isMTXModule := true )
gap> TwoCohomologyGeneric(G,M);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 2nd choice method found for `FittingFreeLiftSetup' on 1 arguments at /opt/gap-4.14.0/lib/methsel2.g:250 called from
FittingFreeLiftSetup( G ); at /opt/gap-4.14.0/lib/grplatt.gi:3223 called from
LowLayerSubgroups( G, lev ) at /opt/gap-4.14.0/lib/gpfpiso.gi:2980 called from
IsomorphismFpGroupForRewriting( sf ) at /opt/gap-4.14.0/lib/gpfpiso.gi:425 called from
IsomorphismFpGroupByChiefSeriesFactor( g, str, TrivialSubgroup( g ) ) at /opt/gap-4.14.0/lib/gpfpiso.gi:615 called from
IsomorphismFpGroupByChiefSeries( G, "F" ) at /opt/gap-4.14.0/lib/gpfpiso.gi:54 called from
...  at *stdin*:3
type 'quit;' to quit to outer loop
@fingolfin
Copy link
Member

Thank you for reporting this issue.

As a quick workaround (so you can continue your work while we investigate a fix), this should work:

res:=TwoCohomologyGeneric(NiceObject(G),M);

@fingolfin fingolfin added kind: bug Issues describing general bugs, and PRs fixing them kind: bug: unexpected error Issues describing bugs in which computation unexpectedly encounters an error, and PRs fixing them labels Feb 10, 2025
@fingolfin
Copy link
Member

@hulpke any insights on this? should we just implement this via Nice monomorphism dispatch (me or @ThomasBreuer could look into a patch), or do you have a better suggestion?

@ThomasBreuer
Copy link
Contributor

Since TwoCohomologyGeneric is documented to work for arbitrary finite groups, matrix groups over finite fields must be supported.

Delegating to a nicer group in TwoCohomologyGeneric seems to be an easy solution for groups that can be handled via nice objects.

On the other hand, if the code shall be really generic (as the name suggests) then also the functions called by TwoCohomologyGeneric should work for arbitrary finite groups. Achieving this would be more work.
For example, FittingFreeLiftSetup has methods only for pc groups and permutation groups. We could install a method that uses a nice monomorphism, likewise for other functions that cause problems.

(By the way: FittingFreeLiftSetup is undocumented, as well as the other functions declared in lib/fitfree.gd, although this file looks as if the functions were intended to be documented; lib/fitfree.gd is even listed in doc/ref/makedocreldata.g.)

@hulpke
Copy link
Contributor

hulpke commented Feb 21, 2025

There are lots of things that could work for all groups but at the moment are only implemented for particular representations. I think we are doing ourselves a disfavor by trying to make this all work for naive users. But that is my $0.02.

There is nothing that would stop a Nice method for TwoCohomologyGeneric, but it would have to change the record output to move maps (and decomposition functions) back to the original group, So this will be significantly more effort than just a 5 line wrapper function.

As for the actual error, a method for FittingFreeLiftSetup for matrix groups is provided by my matgrp package. The reason we cannot use this generically is that it relies on composition trees which lack verification. (And the whole calculation will be much slower here, than in the nice permrep of degree 351.)
I will write a second message on FittingFreeLiftSetup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: bug: unexpected error Issues describing bugs in which computation unexpectedly encounters an error, and PRs fixing them kind: bug Issues describing general bugs, and PRs fixing them
Projects
None yet
Development

No branches or pull requests

4 participants