# Subsemigroups, Ideals and Quotients

## Subsemigroups and Ideals

### `sub<S | L₁, ..., Lᵣ>: SgpFP, SgpFPElt, ..., SgpFPElt -> SgpFP`

Construct the subsemigroup $R$ of the fp-semigroup $S$ generated by the words specified by the terms of the *generator list* $L_1$,$\ldots$, $L_r$.

A term $L_i$ of the generator list may consist of any of the following objects:

**(a)**
A word;

**(b)**
A set or sequence of words;

**(c)**
A sequence of integers representing a word;

**(d)**
A set or sequence of sequences of integers representing words;

**(e)**
A subsemigroup of an fp-semigroup;

**(f)**
A set or sequence of subsemigroups.

The collection of words and semigroups specified by the list must all belong to the semigroup $S$, and $R$ will be constructed as a subgroup of $S$. The generators of $R$ consist of the words specified directly by terms $L_i$ together with the stored generating words for any semigroups specified by terms of $L_i$. Repetitions of an element and occurrences of the identity element are removed (unless $R$ is trivial).

### `ideal<S | L₁, ..., Lᵣ>: SgpFP, SgpFPElt, ..., SgpFPElt -> SgpFPIdl`

Construct the two-sided ideal $I$ of the fp-semigroup $S$ generated by the words specified by the terms of the *generator list* $L_1$,$\ldots$, $L_r$. The possible forms of a term $L_i$ of the generator list are the same as for the `sub`-constructor.

### `lideal<G | L₁, ..., Lᵣ>: SgpFP, SgpFPElt, ..., SgpFPElt -> SgpFPIdl`

Construct the left ideal $I$ of the fp-semigroup $S$ generated by the words specified by the terms of the *generator list* $L_1$,$\ldots$, $L_r$. The possible forms of a term $L_i$ of the generator list are the same as for the `sub`-constructor.

### `rideal<G | L₁, ..., Lᵣ>: SgpFP, SgpFPElt, ..., SgpFPElt -> SgpFPIdl`

Construct the right ideal $I$ of the fp-semigroup $S$ generated by the words specified by the terms of the *generator list* $L_1$,$\ldots$, $L_r$. The possible forms of a term $L_i$ of the generator list are the same as for the `sub`-constructor.

## Quotients

### `quo< F | relations >: SgpFP, Rel, ..., Rel -> SgpFP`

Given an fp-semigroup $F$, and a list of relations over the generators of $F$, construct the quotient of $F$ by the ideal of $F$ defined by . The expression defining $F$ may be either simply the name of a previously constructed semigroup, or an expression defining an fp-semigroup. Each term of the list must be a *relation*, a *relation list* or, if $S$ is a monoid, a *word*. A *word* is interpreted as a relator if $S$ is a monoid. A *relation* consists of a pair of words, separated by ‘=’. (See above). A *relation list* consists of a list of words, where each pair of adjacent words is separated by ‘=’: $w_1 = w_2 = \cdots = w_r$. This is interpreted as the relations $w_1 = w_r, \ldots, w_{r - 1} = w_r$.

Note that the relation list construct is only meaningful in the context of the `fp semigroup`-constructor. In the context of the `quo`-constructor, the identity element (empty word) of a monoid may be represented by the digit `1`.

Note that this function returns:

**(a)**
The quotient semigroup $S$;

**(b)**
The natural homomorphism $\phi : F \rightarrow S$.
