IsMonomorphism( map )
IsMonomorphism
returns true
if the mapping map is a monomorphism
and false
otherwise. Signals an error if map is a multi valued
mapping.
A mapping is a monomorphism if it is an injective homomorphism (see IsInjective, IsHomomorphism).
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> IsMonomorphism( p4 ); false gap> p5 := MappingByFunction( g, g, x -> x^5 ); MappingByFunction( g, g, function ( x ) return x ^ 5; end ) gap> IsMonomorphism( p5 ); true
IsMonomorphism
first test if the flag map.isMonomorphism
is bound.
If the flag is bound, it returns this value. Otherwise it calls
map.operations.IsMonomorphism( map )
, remembers the returned value
in map.isMonomorphism
, and returns it.
The default function called this way is MappingOps.IsMonomorphism
,
which calls the functions IsInjective
and IsHomomorphism
, and returns
the logical and of the results. This function is seldom overlaid,
because all the interesting work is done in IsInjective
and
IsHomomorphism
.
GAP 3.4.4