Closed
Description
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
Metadata
Assignees
Labels
No labels
Activity