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

Buggy GroupHomomorphismByImages for f.p. groups #3100

Closed
laurentbartholdi opened this issue Dec 8, 2018 · 1 comment
Closed

Buggy GroupHomomorphismByImages for f.p. groups #3100

laurentbartholdi opened this issue Dec 8, 2018 · 1 comment
Milestone

Comments

@laurentbartholdi
Copy link
Contributor

GAP can create a homomorphism, check that it's bijective, but the inverse map is not a homomorphism.

This seems to be related to the complexity of the groups involved. If I replace q by SimplifiedFpGroup(q) then everything works.

gap> f := FreeGroup(18);;
gap> AssignGeneratorVariables(f);
#I  Assigned the global variables [ f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18 ]
gap> q := f / [ f1*f3*f7, f2*f6*f8, f4*f18*f14, f5*f13*f9, f10*f12*f16, f11*f15*f17, f1*f6, f2*f7, f3*f18, f4*f13, f5*f8, f9*f12, f10*f15, f11*f16, f14*f17 ];
<fp group of size infinity on the generators [ f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12,
  f13, f14, f15, f16, f17, f18 ]>
gap> AssignGeneratorVariables(q);
#I  Global variable `f1' is already defined and will be overwritten
#I  Global variable `f2' is already defined and will be overwritten
#I  Global variable `f3' is already defined and will be overwritten
#I  Global variable `f4' is already defined and will be overwritten
#I  Global variable `f5' is already defined and will be overwritten
#I  Global variable `f6' is already defined and will be overwritten
#I  Global variable `f7' is already defined and will be overwritten
#I  Global variable `f8' is already defined and will be overwritten
#I  Global variable `f9' is already defined and will be overwritten
#I  Global variable `f10' is already defined and will be overwritten
#I  Global variable `f11' is already defined and will be overwritten
#I  Global variable `f12' is already defined and will be overwritten
#I  Global variable `f13' is already defined and will be overwritten
#I  Global variable `f14' is already defined and will be overwritten
#I  Global variable `f15' is already defined and will be overwritten
#I  Global variable `f16' is already defined and will be overwritten
#I  Global variable `f17' is already defined and will be overwritten
#I  Global variable `f18' is already defined and will be overwritten
#I  Assigned the global variables [ f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18 ]
gap> src := [ f3^-1*f2^-1, f2, f3, f4, f5, f2*f3, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18 ];
[ f3^-1*f2^-1, f2, f3, f4, f5, f2*f3, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18 ]
gap> dst := [ f16, f10, f12, f13, f14, f11, f15, f17, f18, f1, f2, f3, f4, f5, f6, f7, f8, f9 ];
[ f16, f10, f12, f13, f14, f11, f15, f17, f18, f1, f2, f3, f4, f5, f6, f7, f8, f9 ]
gap> Group(src)=q;
true
gap> Group(dst)=q;
true
gap> hom := GroupHomomorphismByImages(q,q,src,dst);
[ f3^-1*f2^-1, f2, f3, f4, f5, f2*f3, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18 ] ->
[ f16, f10, f12, f13, f14, f11, f15, f17, f18, f1, f2, f3, f4, f5, f6, f7, f8, f9 ]
gap> inv := GroupHomomorphismByImages(q,q,dst,src); # BUG!
fail
gap> IsInjective(hom);
true
gap> IsSurjective(hom);
true
hulpke added a commit to hulpke/gap that referenced this issue Dec 11, 2018
@hulpke
Copy link
Contributor

hulpke commented Dec 11, 2018

Error arises if homomorphism is given on permuted standard generators. I have a fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants