# Soluble Matrix Groups

The functions described in this section apply only to finite groups for which a base and strong generating set may be constructed.

## Conversion to a PC-Group

### `PolycyclicGenerators(G): GrpMat -> [ GrpPCElt ]`

Construct a polycyclic generating sequence for the soluble group $G$.

### `PCGroup(G): GrpMat -> GrpPC, Map`

Given a soluble group $G$, construct a group $S$ in category `GrpPC`, isomorphic to $G$. In addition to returning $S$, the function returns an isomorphism $\phi: G \rightarrow S$.

## Soluble Group Functions

### `pCentralSeries(G, p): GrpMat, RngIntElt -> [ GrpMat ]`

Given a soluble group $G$, and a prime $p$ dividing $|G|$, return the lower $p$-central series for $G$. The series is returned as a sequence of subgroups.

## $p$-group Functions

### `IsSpecial(G): GrpMat -> BoolElt`

Given a $p$-group $G$, return `true` if $G$ is special, `false` otherwise.

### `IsExtraSpecial(G): GrpMat -> BoolElt`

Given a $p$-group $G$, return `true` if $G$ is extraspecial, `false` otherwise.

### `FrattiniSubgroup(G): GrpMat -> GrpMat`

Given a $p$-group $G$, return the Frattini subgroup.

### `JenningsSeries(G): GrpMat -> [ GrpMat ]`

Given a $p$-group $G$, return the Jennings series for $G$. The series is returned as a sequence of subgroups.

## Abelian Group Functions

### `PrimaryAbelianInvariants(G): GrpMat -> [ RngIntElt ]`

### `AbelianInvariants(G): GrpMat -> [ RngIntElt ]`

Given an abelian group $G$, return a sequence $Q$ containing the types of each $p$-primary component of $G$. The non-primary form gives the Smith form invariants, i.e. each element of the sequence divides the next.

### `PrimaryAbelianBasis(G): GrpMat -> [ GrpMatElt ], [ RngIntElt ]`

### `AbelianBasis(G): GrpMat -> [ GrpMatElt ], [ RngIntElt ]`

Given an abelian group $G$, return sequences $B$ and $I$, where $I$ are $p$-primary invariants for $G$, and $B$ are generators for $G$ having the orders in $I$. The non-primary form uses the Smith form invariants, i.e. each element of the sequence divides the next.
