7.112 GroupHomomorphismByImages

GroupHomomorphismByImages( G, H, gens, imgs )

GroupHomomorphismByImages returns the group homomorphism with source G and range H that is defined by mapping the list gens of generators of G to the list imgs of images in H.

    gap> g := Group( (1,2,3,4), (1,2) );;
    gap> h := Group( (2,3), (1,2) );;
    gap> m := GroupHomomorphismByImages(g,h,g.generators,h.generators);
    GroupHomomorphismByImages( Group( (1,2,3,4), (1,2) ), Group( (2,3), 
    (1,2) ), [ (1,2,3,4), (1,2) ], [ (2,3), (1,2) ] )
    gap> Image( m, (1,3,4) );
    (1,3,2)
    gap> Kernel( m );
    Subgroup( Group( (1,2,3,4), (1,2) ), [ (1,4)(2,3), (1,2)(3,4) ] ) 

Note that the result need not always be a single value mapping, even though the name seems to imply this. Namely if the elements in imgs do not satisfy all relations that hold for the generators gens, no element of G has a unique image under the mapping. This is demonstrated in the following example.

    gap> g := Group( (1,2,3,4,5,6,7,8,9,10) );;
    gap> h := Group( (1,2,3,4,5,6) );;
    gap> m := GroupHomomorphismByImages(g,h,g.generators,h.generators);
    GroupHomomorphismByImages( Group( ( 1, 2, 3, 4, 5, 6, 7, 8, 9,10
     ) ), Group( (1,2,3,4,5,6) ), [ ( 1, 2, 3, 4, 5, 6, 7, 8, 9,10) ],
    [ (1,2,3,4,5,6) ] )
    gap> IsMapping( m );
    false
    gap> Images( m, () );
    (Subgroup( Group( (1,2,3,4,5,6) ), [ ( 1, 3, 5)( 2, 4, 6) ] )*())
    gap> g.1^10;
    ()    # the generator of <g> satisfies this relation
    gap> h.1^10;
    (1,5,3)(2,6,4)    # but its image does not 

The set of images of the identity returned by Images is the set of elements h.1^n such that g.1^n is the identity in g.

The test whether a mapping constructed by GroupHomomorphismByImages is a single valued mapping, is usually quite expensive. Note that this test is automatically performed the first time that you apply a function that expects a single valued mapping, e.g., Image or Images. There are two possibilities to avoid this test. When you know that the mapping constructed is really a single valued mapping, you can set the flag map.isMapping to true. Then the functions assume that map is indeed a mapping and do not test it again. On the other hand if you are not certain whether the mapping is single valued, you can use ImagesRepresentative instead of Image (see ImagesRepresentative). ImagesRepresentative returns just one possible image, without testing whether there might actually be more than one possible image.

GroupHomomorphismByImages calls
G.operations.GroupHomomorphismByImages( G, H, gens, imgs )
and returns this value.

The default function called this way is GroupOps.GroupHomomorphismByImages. Below we describe how the mapping functions are implemented for such a mapping. The functions not mentioned below are implemented by the default functions described in Mapping Functions for Group Homomorphisms.

All the function below first compute the list of elements of G with an orbit algorithm, sorts this list, and stores this list in hom.elements. In parallel they computes and sort a list of images, and store this list in hom.images.

IsMapping( map )

The mapping constructed by GroupHomomorphismByImages is a single valued mapping if for each i and for each k the following equation holds
map.images[Position(map.elements,map.elements[i]*gens[k])]
= map.images[i] * imgs[k]
.

Image( map, elm )

If the mapping map is a single valued mapping, the image of an element elm is computed as map.images[ Position(map.elements,elm) ].

ImagesRepresentative( map, elm )

The representative of the images of an element elm under the mapping map is computed as map.images[ Position(map.elements,elm) ].

InverseMapping( map )

The inverse of the mapping map is constructed as GroupHomomorphismByImages( H, G, imgs, gens ).

CompositionMapping( map1, map2 )

If map2 is a mapping constructed by GroupHomomorphismByImages the composition is constructed by making a copy of map2 and replacing every element in map2.images with its image under map1.

Look under GroupHomomorphismByImages in the index to see for which groups this function is overlaid.

Previous Up Top Next
Index

GAP 3.4.4
April 1997