Dear Forum,
We have encountered the following problem:
gap> a:=Group( (1,2,3,4)); Group( (1,2,3,4) ) gap> b:=Group((5,6,7,8)); Group( (5,6,7,8) ) gap> g:=GroupHomomorphismByImages(a,b,a.generators,b.generators); GroupHomomorphismByImages( Group( (1,2,3,4) ), Group( (5,6,7,8) ), [ (1,2,3,4) ], [ (5,6,7,8) ] ) gap> KernelGroupHomomorphism(g); Subgroup( Group( (5,6,7,8) ), [ ] )
As you can see, gap aims, that this kernel is a subgroup of g.range
instead of g.source. The problem is (we hope) only in the case if g is a
bijection.
Is it enough to change lines
else hom.kernel := TrivialSubgroup( Parent(hom.range) ); ^^^^^ fi; fi; # not IsBound(hom.inverseMapping.orbit) or not IsBound(hom.kernel)
to lines
else hom.kernel := TrivialSubgroup( Parent(hom.source) ); ^^^^^^ fi; fi; # not IsBound(hom.inverseMapping.orbit) or not IsBound(hom.kernel)
in premhomo.g file (this seems to be the only convenient place, but we
may fail)?
Thank you
Jaroslav Gurican, Martin Macaj