Most of the mappings that are returned by Magma intrinsics or constructors (e.g. quo) are homomorphisms.
Homomorphisms can be defined by the user too, in a syntax similar to the map constructor syntax (see Maps). The hom constructor syntax is
hom< A -> B | IDENTIFIER :-> EXPRESSION >
or
hom< A -> B | G >
where G is a subgraph of A x B such that each generator of A appears exactly once.
For some structures A, the form
hom< A-> B | y1, y2, ..., yn >
is available, where the i-th y element is the image of the i-th generator A.i .
If the domain is a ring (including the case of a field) then only the unitary homomorphism can be constructed. The image 1 of 1 determines the whole homomorphism. In this case, the syntax is
hom< RING -> B | >
with nothing within the constructor after the | symbol.
For certain homomorphisms h, Image(h) and Kernel(h) are available. If preimages are available, then y@@h returns a single element of the preimage of y. The whole preimage would be K * y@@h (or K + y@@h), where K is the kernel.
For all of these forms of the hom constructor, it is the USER'S RESPONSIBILITY to ensure that the mapping so defined is a homomorphism.
> PGL27<a, b> := ProjectiveGeneralLinearGroup(2, 7); > h := hom< PGL27 -> PGL27 | x :-> x^a >;[Next] [Prev] [Right] [____] [Up] [Index] [Root]