-
Notifications
You must be signed in to change notification settings - Fork 163
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
Ensure IsomorphismPermGroup(G)
always returns an isomorphism for G
(before if G
was a finite matrix group it sometimes returned an isomorphism for a general linear group containing G
)
#5339
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking at the code, my interpretation of the proposed change is that it fixes first of all an inconsistency. Up to now, the result of IsomorphismPermGroup
depends on whether or not the NiceMonomorphism
value of the group is already available.
gap> g:= SL(2,5);
SL(2,5)
gap> iso:= IsomorphismPermGroup( g );; Source( iso );
GL(2,5)
gap> g:= SL(2,5); NiceMonomorphism(g);;
SL(2,5)
gap> iso:= IsomorphismPermGroup( g );; Source( iso );
SL(2,5)
Thus I approve the change.
If this is the only place in the code where IsomorphismPermGroup
has returned a map whose image is not necessarily isomorphic with the given group then I support the idea that IsomorphismPermGroup
should always return an isomorphism defined on the given group, as is stated in the Reference Manual.
(Perhaps @hulpke wants to object.)
(Just to be clear, this PR should not be merged before @hulpke had a chance to comment) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is patching in one place to satisfy up a complaining user, but is not fundamentally solving the problem:
- There are other places (nice monomorphism, automorphism groups) where a (nice) isomorphism to perm is through an action and is inherited by subgroups. One should go through all of them.
- It is unclear to me whether
GeneralRestrictedMapping
in all cases works effective (and will not accidentally redo an action, change from action to ByImages or have to recompute a range. We should check that this indeed works as expected and without notable overhead or base cost.
I am not sure I follow. The "complaining users" (we had at least two reports, and I'd happily add myself to that list, and basically all the people I spoke to about this seem to agree, too) complained about one specific place, and this fixes that place. What is the fundamental problem beyond "ensure IsomorphismPermGroup methods conform to the documentation?
I don't understand: in how far do these relate to Perhaps a concrete example of what you have in mind would help to illuminate this point?
|
The problem is that it only fixes one such situation. There are other cases of permutation mappings and nice monomorphisms (automorphism groups being one of them) where exactly the same might be happening. If you want to fix it you need to go through all the
So this is checked. Good.
I'm not claiming that the current setup is perfect, it will merit reviewing. But ability to do things, and performance can be a serious difficulty:
|
@hulpke @fingolfin
I have checked the currently 18 The following methods may return a map
Besides that, I noticed that
How shall we proceed with the above list? |
Thank you, @ThomasBreuer Yes, I think they all need to be sorted out (not something I want to do) before we can claim this to have been changed. |
0c10e64
to
ad528ef
Compare
I don't follow why we can't fix one instance of a bug (which has been reported several times in the past years) just because there are other similar but different bugs? I agree we should fix all instances, but should this be all or nothing? Anyway, I've had a first look at other methods: Some remarks:
|
Of course we can change one instance. We just cannot claim that |
... for its argument.
Add an explicit inverse function to the definition
ad528ef
to
7a36c35
Compare
Fixes #3601