# Homomorphisms

For a general description of homomorphisms, we refer to chapter [Mappings](../../SetsSequencesMappings/Mappings/index-mappings.md#chapmap). This section describes some special aspects of homomorphisms whose domain or codomain is a rewrite group.

## General Remarks

Groups in the category `GrpRWS` currently are accepted as codomains only in some special situations. The most important cases in which a rewrite group can be used as a codomain are group homomorphisms whose domain is in one of the categories `GrpFP`, `GrpGPC`, `GrpRWS` or `GrpAtc`.

## Construction of Homomorphisms

### `hom< R -> G | S >: Struct, Struct -> Map`

Returns the homomorphism from the rewrite group $R$ to the group $G$ defined by the expression $S$ which can be the one of the following:

**(i)**
A list, sequence or indexed set containing the images of the $n$ generators $R.1,\ldots,R.n$ of $R$. Here, the $i$-th element of $S$ is interpreted as the image of $R.i$, i.e. the order of the elements in $S$ is important.

**(ii)**
A list, sequence, enumerated set or indexed set, containing $n$ tuples $<x_i,y_i>$ or arrow pairs $x_i \rightarrow y_i$, where $x_i$ is a generator of $R$ and $y_i\in G$ ($i=1,\ldots,n$) and the set $\{x_1,\ldots,x_n\}$ is the full set of generators of $R$. In this case, $y_i$ is assigned as the image of $x_i$, hence the order of the elements in $S$ is not important.

It is the user’s responsibility to ensure that the provided generator images actually give rise to a well-defined homomorphism. No checking is performed by the constructor.

Note that it is currently not possible to define a homomorphism by assigning images to the elements of an arbitrary generating set of $R$.
