43.5 IsEndomorphism

IsEndomorphism( map )

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

A mapping is an endomorphism if it is a homomorphism (see IsHomomorphism) and the range is a subset of the source.

    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> IsEndomorphism( p4 );
    true
    gap> p5 := MappingByFunction( g, g, x -> x^5 );
    MappingByFunction( g, g, function ( x )
        return x ^ 5;
    end )
    gap> IsEndomorphism( p5 );
    true 

IsEndomorphism first test if the flag map.isEndomorphism is bound. If the flag is bound, it returns this value. Otherwise it calls map.operations.IsEndomorphism( map ), remembers the returned value in map.isEndomorphism, and returns it.

The default function called this way is MappingOps.IsEndomorphism, which tests if the range is a subset of the source, calls IsHomomorphism, and returns the logical and of the results. This function is seldom overlaid, because all the interesting work is done in IsSubset and IsHomomorphism.

Previous Up Top Next
Index

GAP 3.4.4
April 1997