-
Notifications
You must be signed in to change notification settings - Fork 164
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
Identity automorphism acting nontrivially #302
Comments
Thank you for reporting this - I can reproduce this in the current master branch too. I've changed |
Seems
|
So while trying to find out what goes wrong here, I noticed that something really fishy is going on here. Various methods related to automorphisms of fp-groups seem to be broken. For example:
In the end, this boils down to a bug in
So, we pick a set of three generators, which generate the whole group G. But At this point, I am not sure whether the bug in |
Just to note - if the group is a p-group, AutPGrp package may be involved. This may be the case even if GAP is started with -A option, because |
@alex-konovalov That's a red herring: This group is abelian, and thus, |
What
Thus I'm inclined to blame the MTC. This is old code, written by Volkmar Felsch and (because it is very FORTRANy never really touched by anyone else). The error has been there in GAP4.4 already (that's the oldest version I have installed), I'm inclined to think it will go back to the earliest versions, maybe even GAP3. Does someone have a version of GAP3 running and could check whether the bug occurs even there? |
@hulpke Yes, looks the same in GAP 3.4.4 |
@frankluebeck Thank you very much! I think this is the oldest bug I've ever encountered in GAP, easily 20 years old. |
On Tue, Oct 27, 2015 at 07:12:13PM -0700, Alexander Hulpke wrote:
How deep is this problem embedded in, say, the modified Todd-Coxeter Maybe it's time to drag this code into the 21st century and rewrite it. (I'll note though that I am not promising anything right now). |
I probably wanted to ask a different question here, namely, how entangled is the MTC implementation in other things in the library, and how huge a project would it be dragging parts of it into the 21st century. |
Heh, I just had a look at the code, and found a function |
Maybe this is an example where we should remove unmaintainable code, even if we loose some functionality (or mis-functionality)? |
@fingolfin This was a prior (unsuccessful) attempt of mine to start replacing the code. (I agree, it should not have made commits.) |
@hulpke Ahhhh, OK, I see. Well, I did not even attempt to find out which code was added when, though that would have been easy enough. Using @frankluebeck Well, but the MTC is used by a lot of FP code, so we can't just remove it without breaking a lot of code, can we? (Maybe I am overestimating how much it is used). That said, MTC is not the most complicated of tasks... I wouldn't discount the possibility of understanding the code and fixing. I'd like to give this at least a try. After all, it can't be that bad, as it clearly gets correct results in many instances |
A smaller example seems to be:
|
@fingolfin @frankluebeck Indeed, if I replace the subgroup generators in my reduced example by
(i.e. replacing 16 by 32) the error changes to be order 2 (instead of 1 before versus a correct 4), while replacing 16 with 24 makes the bug go away makes me believe this is a powers-of-2 issue. |
Continuing the original example, I get (in 4.8.2):
If this bug cannot be fixed before the next release, is it at least documented somewhere where users will read it? |
It is documented here, together with other known bugs. I've assigned this to GAP 4.9.0 milestone to raise its priority (it doesn't look doable in a minor release). |
This allows for more flexibility in use and experimentation, as almost all code is in the library. It also will fix the problem of gap-system#302.
This fixes the previously reported bug. Close gap-system#302
This allows for more flexibility in use and experimentation, as almost all code is in the library. It also will fix the problem of gap-system#302.
This fixes the previously reported bug. Close gap-system#302
This allows for more flexibility in use and experimentation, as almost all code is in the library. It also will fix the problem of gap-system#302.
This fixes the previously reported bug. Close gap-system#302
This problem is fixed in PR #843. |
This fixes the previously reported bug. Close gap-system#302
This allows for more flexibility in use and experimentation, as almost all code is in the library. It also will fix the problem of gap-system#302.
This fixes the previously reported bug. Close gap-system#302
This allows for more flexibility in use and experimentation, as almost all code is in the library. It also will fix the problem of gap-system#302.
This fixes the previously reported bug. Close gap-system#302
This allows for more flexibility in use and experimentation, as almost all code is in the library. It also will fix the problem of gap-system#302.
This fixes the previously reported bug. Close gap-system#302
This allows for more flexibility in use and experimentation, as almost all code is in the library. It also will fix the problem of gap-system#302.
This fixes the previously reported bug. Close gap-system#302
The following code shows a bug when working with the automorphism c. Here G=C32 x C4 x C2 is an abelian 2-group, a,b are commuting automorphisms of G and c=[a,b] is the identity automorphism. The last command shows the problem!
gap> f:=FreeGroup(3);;
gap> G:=f/[f.1^32,f.2^4,f.3^2,Comm(f.1,f.2),Comm(f.2,f.3),Comm(f.3,f.1)];;
gap> gens:=GeneratorsOfGroup(AutomorphismGroup(G));;
gap> a:=gens[6];;
gap> b:=gens[9];;
gap> c:=Comm(a,b);;
gap> Order(c)=1;
true
gap> G.2^c=G.2;
false
The codes are implemented in GAP 4.7.8 windows edition.
The text was updated successfully, but these errors were encountered: