Group homomorphisms are mappings, so all the operations and properties for mappings described in chapter Mappings are applicable to them. (However often much better methods, than for general mappings are available.)
Group homomorphisms will map groups to groups by just mapping the set of generators.
KernelOfMultiplicativeGeneralMapping can be used to compute the kernel
of a group homomorphism.
gap> hom:=GroupHomomorphismByImages(g,h,gens,[(1,2),(1,3)]);; gap> Kernel(hom); Group([ (1,2)(3,4), (1,3)(2,4) ])
Homomorphisms can map between groups in different representations and are also used to get isomorphic groups in a different representation.
gap> m1:=[[0,-1],[1,0]];;m2:=[[0,-1],[1,1]];; gap> sl2z:=Group(m1,m2);; # SL(2,Integers) as matrix group gap> F:=FreeGroup(2);; gap> psl2z:=F/[F.1^2,F.2^3]; #PSL(2,Z) as FP group <fp group on the generators [ f1, f2 ]> gap> phom:=GroupHomomorphismByImagesNC(sl2z,psl2z,[m1,m2], > GeneratorsOfGroup(psl2z)); # the non NC-version would be expensive [ [ [ 0, -1 ], [ 1, 0 ] ], [ [ 0, -1 ], [ 1, 1 ] ] ] -> [ f1, f2 ] gap> Kernel(phom); # the diagonal matrices Group([ [ [ -1, 0 ], [ 0, -1 ] ], [ [ -1, 0 ], [ 0, -1 ] ] ]) gap> p1:=(1,2)(3,4);;p2:=(2,4,5);;a5:=Group(p1,p2);; gap> ahom:=GroupHomomorphismByImages(psl2z,a5, > GeneratorsOfGroup(psl2z),[p1,p2]); # here homomorphism test is cheap. [ f1, f2 ] -> [ (1,2)(3,4), (2,4,5) ] gap> u:=PreImage(ahom,Group((1,2,3),(1,2)(4,5))); Group(<fp, no generators known>) gap> Index(psl2z,u); 10 gap> isofp:=IsomorphismFpGroup(u); [ f2*f1*f2^-1*f1^-1*f2^-1*f1^-1, f1*f2^-1*f1*f2*f1^-1, f2*f1*f2*f1*f2^-1*f1^-1*f2^-1, f2^-1*f1*f2*f1^-1*f2 ] -> [ _x1, _x2, _x3, _x4 ] gap> RelatorsOfFpGroup(Image(isofp)); [ _x2^2, _x3^2, _x4^3 ] gap> up:=PreImage(phom,u); <matrix group with 9 generators> gap> List(GeneratorsOfGroup(up),TraceMat); [ -2, -2, -2, -4, 0, -2, 0, 4, 1 ]
For an automorphism aut, Inverse returns the inverse automorphism
aut -1. However if hom is a bijective homomorphism between
different groups, or if hom is injective and considered to be a bijection
to its image, the operation InverseGeneralMapping should be used instead.
(See Inverse for a further discussion of this problem.)
gap> iso:=IsomorphismPcGroup(g); Pcgs([ (3,4), (2,4,3), (1,4)(2,3), (1,3)(2,4) ]) -> [ f1, f2, f3, f4 ] gap> Inverse(iso); #I The mapping must be bijective and have source=range #I You might want to use `InverseGeneralMapping' fail gap> InverseGeneralMapping(iso); [ f1, f2, f3, f4 ] -> Pcgs([ (3,4), (2,4,3), (1,4)(2,3), (1,3)(2,4) ])
[Top] [Previous] [Up] [Next] [Index]
GAP 4 manual