43.1 IsHomomorphism

IsHomomorphism( map )

IsHomomorphism returns true if the mapping map is a homomorphism and false otherwise. Signals an error if map is a multi valued mapping.

A mapping map is a homomorphism if the source and the range are sources of the same category, and map respects the structure. For example, if both source and range are groups and for each x,y in the source (xy)^{map} = x^{map} y^{map}, then map is a homomorphism.

    gap> g := Group( (1,2,3,4), (2,4), (5,6,7) );;  g.name := "g";;
    gap> p4 := MappingByFunction( g, g, x -> x^4 );
    MappingByFunction( g, g, function ( x )
        return x ^ 4;
    end )
    gap> IsHomomorphism( p4 );
    true
    gap> p5 := MappingByFunction( g, g, x -> x^5 );
    MappingByFunction( g, g, function ( x )
        return x ^ 5;
    end )
    gap> IsHomomorphism( p5 );
    true
    gap> p6 := MappingByFunction( g, g, x -> x^6 );
    MappingByFunction( g, g, function ( x )
        return x ^ 6;
    end )
    gap> IsHomomorphism( p6 );
    false 

IsHomomorphism first tests if the flag map.isHomomorphism is bound. If the flag is bound, it returns its value. Otherwise it calls map.source.operations.IsHomomorphism( map ), remembers the returned value in map.isHomomorphism, and returns it.

The functions usually called this way are IsGroupHomomorphism if the source of map is a group and IsFieldHomomorphism if the source of map is a field (see IsGroupHomomorphism, IsFieldHomomorphism).

Up Top Next
Index

GAP 3.4.4
April 1997