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