-
Notifications
You must be signed in to change notification settings - Fork 160
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
g/c for (matrix) groups only works after Order(g) is called #3070
Comments
I just stumbled onto this issue myself:
I was inserting |
To be able to compute this quotient GAP needs to prove that One wouldn't want to prove that So the only option would be to do this when forming the quotient, and the question is then whether we should pretend to know what we're doing and try computing some representation for A more radical approach would be to form the quotient abstractly (and lazily) and wait for the user to do some computation with it before we are faced with a similar decision. |
The problem is a bit more subtle, and affects a lot of operations for matrix groups -- in some way it is lucky that If the matrix group is known to be finite, all work is delegated immediately to an isomorphic permutation group. If not, the code later finds out it should know that the group is finite, but is past the delegation phase. So a special treatment is needed. (The test for finiteness of matrix groups is not horrendously expensive in this context, and in fact the calculation that would follow would be more expensive than the finiteness test, so no harm is done.) |
Is there a way to tell GAP that a matrix group is finite? |
@dimpase |
… be finite This is needed, as for matrix groups the earlier `NiceMonomorphism` dispatch does not hold. Test is only done before expesive action search is started, so negligible cost. Also added redispatches in case the NiceMonomorphism approach is ever removed. This resolves gap-system#3070
… be finite This is needed, as for matrix groups the earlier `NiceMonomorphism` dispatch does not hold. Test is only done before expesive action search is started, so negligible cost. Also added redispatches in case the NiceMonomorphism approach is ever removed. This fixes gap-system#3070 Added testfile
So with this toggled, such an error won’t arise? (away from a computer, can’t check). If so, perhaps at least the error message ought to suggest this... |
… be finite This is needed, as for matrix groups the earlier `NiceMonomorphism` dispatch does not hold. Test is only done before expesive action search is started, so negligible cost. Also added redispatches in case the NiceMonomorphism approach is ever removed. This fixes #3070 Added testfile
… be finite This is needed, as for matrix groups the earlier `NiceMonomorphism` dispatch does not hold. Test is only done before expesive action search is started, so negligible cost. Also added redispatches in case the NiceMonomorphism approach is ever removed. This fixes gap-system#3070 Added testfile
… be finite This is needed, as for matrix groups the earlier `NiceMonomorphism` dispatch does not hold. Test is only done before expesive action search is started, so negligible cost. Also added redispatches in case the NiceMonomorphism approach is ever removed. This fixes gap-system#3070 Added testfile
Observed behaviour
with a medium-sized matrix group over cyclotomics, and on current master branch:
Expected behaviour
g/c
works without callingOrder(g)
first.Copy and paste GAP banner (to tell us about your setup)
The text was updated successfully, but these errors were encountered: