# Arithmetic with Elements

## `u * v: GrpSLPElt, GrpSLPElt -> GrpSLPElt`

Given straight-line programs $u = [u_1, \ldots, u_m]$ and $v = [v_1, \ldots, v_n]$ belonging to the same SLP-group $G$, return a straight-line program corresponding to the product of $u$ and $v$. It is clear that the straight-line program $[u_1, \ldots, u_m, v_1, \ldots, v_n, u_m v_n]$ satisfies the formal definition. In practice, the $u_i$ and $v_i$ need not be distinct, so the resulting program may be shorter.

## `u ^ m: GrpSLPElt, RngIntElt -> GrpSLPElt`

Given an integer $m$ and a straight-line program $u$, return the straight-line program corresponding to the $m$-th power of $u$.

## `u ^ v: GrpSLPElt, GrpSLPElt -> GrpSLPElt`

Given straight-line programs $u$ and $v$, return the straight-line program corresponding to the conjugate of $u$ by $v$.

## `# u: GrpSLPElt -> RngIntElt`

Given a straight-line program $u$, return the number of multiplication, power or conjugate operations required to evaluate a homomorphism on $u$.

## Accessing the Defining Generators and Relations

The functions described here provide access to basic information stored for an SLP-group $G$.

### `G . i: GrpSLP, RngIntElt -> GrpSLPElt`

The $i$-th generator for $G$.

### `Generators(G): GrpSLP -> { GrpSLPElt}`

A set containing the generators for $G$.

### `NumberOfGenerators(G): GrpSLP -> RngIntElt`

### `Ngens(G): GrpSLP -> RngIntElt`

The number of generators for $B$.

### `Parent(u): GrpSLPElt -> GrpSLP`

The parent group $G$ of the straight-line program $u$.
