IsBijection( map )
true if the mapping map is a bijection and
false otherwise. Signals an error if map is a multi valued mapping.
A mapping map is a bijection if for each element img of the range there is exactly one element elm of the source that map maps to img. We also say that map is bijective.
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> IsBijection( p4 ); false gap> IsBijection( InverseMapping( p4 ) ); Error, <map> must be a single valued mapping gap> p5 := MappingByFunction( g, g, x -> x^5 ); MappingByFunction( g, g, function ( x ) return x ^ 5; end ) gap> IsBijection( p5 ); true gap> IsBijection( InverseMapping( p5 ) ); true # 'p5' is a bijection
IsBijection first tests if the flag
map.isBijection is bound. If
the flag is bound, it returns its value. Otherwise it calls
map.operations.IsBijection( map ), remembers the returned value in
map.isBijection, and returns it.
The default function called this way is
IsSurjective, and returns the logical and of
the results. This function is seldom overlaid, because all the
interesting work is done by
Previous Up Top Next