Kernel( hom )
Kernel
returns the kernel of the homomorphism hom. The kernel is
usually returned as a source, though in some cases it might be returned
as a proper set.
The kernel is the set of elements that are mapped hom to the identity
element of hom.range
, i.e., to hom.range.identity
if hom is a
group homomorphism, and to hom.range.zero
if hom is a ring or field
homomorphism. The kernel is a substructure of hom.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> Kernel( p4 ); Subgroup( g, [ (1,2,3,4), (1,4)(2,3) ] ) gap> p5 := MappingByFunction( g, g, x -> x^5 ); MappingByFunction( g, g, function ( x ) return x ^ 5; end ) gap> Kernel( p5 ); Subgroup( g, [ ] )
Kernel
first tests if the field hom.kernel
is bound. If the field
is bound it returns its value. Otherwise it calls
hom.source.operations.Kernel( hom )
, remembers the returned value
in hom.kernel
, and returns it.
The functions usually called this way from the dispatcher are
KernelGroupHomomorphism
and KernelFieldHomomorphism
(see
KernelGroupHomomorphism, KernelFieldHomomorphism).
GAP 3.4.4