7.106 IsGroupHomomorphism

IsGroupHomomorphism( map )

IsGroupHomomorphism returns true if the function map is a group homomorphism and false otherwise. Signals an error if map is a multi value mapping.

A mapping map is a group homomorphism if its source G and range H are both groups and if for every pair of elements x, y in G it holds that (x y)^{map} = x^{map} y^{map}.

    gap> s4 := Group( (1,2), (1,2,3,4) );;
    gap> v4 := Subgroup( s4, [ (1,2)(3,4), (1,3)(2,4) ] );;
    gap> phi := NaturalHomomorphism( s4, s4/v4 );;
    gap> IsGroupHomomorphism( phi );
    true
    gap> IsHomomorphism( phi );
    true    # since the source is a group this is equivalent to the above
    gap> IsGroupHomomorphism( FrobeniusAutomorphism( GF(16) ) );
    false   # it is a field automorphism 

IsGroupHomomorphism first tests if the flag map.isGroupHomomorphism is bound. If the flag is bound, IsGroupHomomorphism returns its value. Otherwise it calls
map.source.operations.IsGroupHomomorphism( map ), remembers the returned value in map.isGroupHomomorphism, and returns it. Note that of course all functions that create group homomorphisms set the flag map.isGroupHomomorphism to true, so that no function is called for those group homomorphisms.

The default function called this way is MappingOps.IsGroupHomomorphism. It computes all the elements of the source of map and for each such element x and each generator y tests whether (xy)^{map} = x^{map} y^{map}. Look under IsHomomorphism in the index to see for which mappings this function is overlaid.

Previous Up Top Next
Index

GAP 3.4.4
April 1997