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