deal with FpGroup
s without IsFinite
flag
#5946
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The discussion of #5944 came to the conclusion that there is a design decision that operations for f.p. groups should not automatically call
IsFinite
--the user should explicitly call (or set)IsFinite
.I did not find a statement of such a design decision in the documentation, therefore this pull request proposes adding a paragraph about it to the manual chapter on f.p. groups.
Further, the "no method found error" which one gets is not appropriate; note that the error disappears if the group knows that it is finite, which is confusing for users.
Therefore this pull request proposes a method that gives a better error message in case of the operation
ConjugacyClasses
.There are other operations for which the same treatment would be appropriate, otherwise the term "design decision" would not make sense. (
IsDihedralGroup
is one example.)Similar methods should get installed for them, ideally in a generic way.
Unfortunately, it is not that easy to determine the operations for which the design decision really holds, and for which methods showing a nicer error message should get installed:
In fact, many operations have methods that just take a group without
IsFinite
flag, and callIsFinite
at some point.And if the operation is declared for finite groups then there are already fallback methods that check
IsFinite
.It would be good if the operatons for which the design decision holds could be determined automatically, for example in order to give the Oscar system enough information to catch the errors in advance.