IsMapping( map )
IsMapping returns true if the general mapping map  is single valued
and  false  otherwise.   Signals  an  error if  map is  not a general
mapping.
    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> IsMapping( p4 );
    true
    gap> IsMapping( InverseMapping( p4 ) );
    false    # note that the inverse mapping is multi valued
    gap> p5 := MappingByFunction( g, g, x -> x^5 );
    MappingByFunction( g, g, function ( x )
        return x ^ 5;
    end )
    gap> IsMapping( p5 );
    true
    gap> IsMapping( InverseMapping( p5 ) );
    true    # 'p5' is a bijection 
IsMapping first tests if the  flag map.isMapping  is bound.  If the
flag   is   bound,   it   returns  its   value.    Otherwise   it   calls
map.operations.IsMapping( map ),  remembers the  returned  value in
map.isMapping, and returns it.
The default  function  called  this way is  MappingOps.IsMapping, which
computes the sets of images of  all the elements in  the source of map,
provided  this is finite,  and returns true if all those sets have size
one.  Look in the index under IsMapping to see for  which mappings this
function is overlaid.
GAP 3.4.4