[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Homomorphisms

For a general description of homomorphisms, we refer to Chapter MAPPINGS. This section describes some special aspects of homomorphisms the domain of which is a finitely presented group.

Subsections

General remarks

The kernel of a homomorphism with a domain of type GrpFP can be computed using the function Kernel, if the codomain is of one of the types GrpGPC, GrpPC (cf. Chapter FINITE SOLUBLE GROUPS), GrpAb (cf. Chapter ABELIAN GROUPS), GrpPerm (cf. Chapter PERMUTATION GROUPS), GrpMat (cf. Chapter MATRIX GROUPS), ModAlg or ModGrp (cf. Chapter MODULES OVER A MATRIX ALGEBRA), if the image is finite and its order sufficiently small. In this case, a regular permutation representation of the image is constructed and the kernel is created as a subgroup of the domain, defined by a coset table.

The kernel may also be computable, if the codomain is of the type GrpFP, the image is sufficiently small and a presentation for the image is known.

If the kernel of a map can be computed successfully, forming preimages of substructures is possible. An attempt to compute the kernel of a map will be made automatically, if the preimage of a substructure of the codomain is to be computed.

Note, that trying to compute the kernel may be very time and memory consuming; use this feature with care.

Construction of Homomorphisms

hom< P -> G | S > : Struct , Struct -> Map
Returns the homomorphism from the fp-group P to the group G defined by the assignment S. S can be the one of the following: Note, that it is currently not possible to define a homomorphism by assigning images to the elements of an arbitrary generating set of P. It is the user's responsibility to ensure that the arguments passed to the hom-constructor actually yield a well-defined homomorphism. For certain codomain categories, this may be checked using the function IsSatisfied described below.
IsSatisfied(U, E) : { RelElt }, [ GrpElt ] -> BoolElt
IsSatisfied(U, E) : { GrpFPElt }, [ GrpElt ] -> BoolElt
IsSatisfied(U, E) : [ RelElt ], [ GrpElt ] -> BoolElt
IsSatisfied(U, E) : [ GrpFPElt ], [ GrpElt ] -> BoolElt
U is a set or sequence of either words belonging to an n-generator fp-group H or relations over H. E is a sequence of n elements [e_1, ..., e_n] belonging to a group G for which both, multiplication and comparison of elements are possible. Using the mapping H.i -> e_i (i = 1, ..., n), we evaluate the relations given by U. If U is a set or sequence of relations, the left and right hand sides of each relation are evaluated and compared for equality. Otherwise, each word in U is evaluated and compared to the identity. If all relations are satisfied, IsSatisfied returns the Boolean value true. On the other hand, if any relation is not satisfied, IsSatisfied returns the value false.

This function may be used to verify the correctness of the definition of a homomorphism from an fp-group to a group in a category for which both, multiplication and comparison of elements are possible.

Accessing Homomorphisms

w @ f : GrpFPElt, Map -> GrpElt
f(w) : Map, GrpFPElt -> GrpElt
Given a homomorphism whose domain is an fp-group G and an element w of G, return the image of w under f as an element of the codomain of f.
H @ f : GrpFP, Map -> Grp
f(H) : Map, GrpFP -> Grp
Given a homomorphism whose domain is an fp-group G and a subgroup H of G, return the image of H under f as a subgroup of the codomain of f.

Some maps do not support images of subgroups.

g @@ f : GrpElt, Map -> GrpFPElt
Given a homomorphism whose domain is an fp-group G and an element g of the image of f, return the preimage of g under f as an element of G.

Some maps do not support inverse images.

H @@ f : Grp, Map -> GrpFP
Given a homomorphism whose domain is an fp-group G and a subgroup H of the image of f, return the preimage of H under f as a subgroup of G.

Some maps do not support inverse images. The inverse image of a subgroup of the codomain can only be computed if the kernel of the homomorphism can be computed, i.e. if the kernel has moderate index in the domain.

Domain(f) : Map -> Grp
The domain of the homomorphism f.
Codomain(f) : Map -> Grp
The codomain of the homomorphism f.
Image(f) : Map -> Grp
The image or range of the homomorphism f as a subgroup of the codomain of f.

Some maps do not support this function.

Kernel(f) : Map -> Grp
The kernel of the homomorphism f as a (normal) subgroup of the domain of f, represented by a coset table.

Some maps do not support this function. The kernel of a homomorphism can only be computed, if it has moderate index in the domain.


Example GrpFP_1_Homomorphism (H22E17)

For arbitrary n>0, the symmetric group of degree n + 1 is an epimorphic image of the braid group on n generators. In this example, we exhibit this relationship for n=4.

We start with creating the braid group B on 4 generators.

> B := BraidGroup(4);
> B;
Finitely presented group B on 4 generators
Relations
    B.1 * B.2 * B.1 = B.2 * B.1 * B.2
    B.1 * B.3 = B.3 * B.1
    B.1 * B.4 = B.4 * B.1
    B.2 * B.3 * B.2 = B.3 * B.2 * B.3
    B.2 * B.4 = B.4 * B.2
    B.3 * B.4 * B.3 = B.4 * B.3 * B.4
In the symmetric group of degree 5, we define 4 transpositions which will be the images of the generators of B.

> S := SymmetricGroup(5);
> imgs := [ S!(1,2), S!(2,3), S!(3,4), S!(4,5) ];
In order to verify that this assignment actually gives rise to a well defined homomorphism, we check whether the potential images satisfy the defining relations of B.

> rels := Relations(B);
> rels;
[ B.1 * B.2 * B.1 = B.2 * B.1 * B.2, B.1 * B.3 = B.3 * B.1,
  B.1 * B.4 = B.4 * B.1, B.2 * B.3 * B.2 = B.3 * B.2 * B.3,
  B.2 * B.4 = B.4 * B.2, B.3 * B.4 * B.3 = B.4 * B.3 * B.4 ]
> IsSatisfied(rels, imgs);
true
They do. So we can define the homomorphism from B to S.

> f := hom< B->S | imgs >;
We see that f is surjective, i.e. S is an epimorphic image of B as claimed above.

> f(B) eq S;
true
We now check the kernel of f.

> Kernel(f);
Finitely presented group
Index in group B is 120 = 2^3 * 3 * 5
Subgroup of group B defined by coset table
Using the function GeneratingWords described later, we can obtain a set of generators of ker(f) as a subgroup of B.

> GeneratingWords(B, Kernel(f));
{ B.2^-2, (B.1 * B.2 * B.3^-1 * B.2^-1 * B.1^-1)^2, B.1^-2,
  (B.3 * B.4^-1 * B.3^-1)^2, (B.2 * B.3^-1 * B.2^-1)^2,
  (B.2 * B.3 * B.4^-1 * B.3^-1 * B.2^-1)^2, B.4^-2,
  (B.1 * B.2^-1 * B.1^-1)^2, B.3^-2,
  (B.1 * B.2 * B.3 * B.4^-1 * B.3^-1 * B.2^-1 * B.1^-1)^2 }
It is easy to see that all generators of ker(f) are conjugates of words of the form g^(pm2), where g is a generator of B. We check this, using the normal closure constructor ncl described later.

> Kernel(f) eq ncl< B | B.1^2, B.2^2, B.3^2, B.4^2 >;
true
Thus, the braid relations together with the relations B.1^2, B.2^2, B.3^2, B.4^2 are a set of defining relations for S.
 [Next][Prev] [Right] [Left] [Up] [Index] [Root]