# Conversion between Categories

This section describes category transfers from polycyclic groups to other Magma categories of groups. For category transfers to permutation groups (cf. Chapter [Permutation Groups](../../FiniteGroups/PermutationGroups/index-permutation-groups.md#chapgrpperm)) the functions [`CosetAction`](coset-space.md#function-grpgpc-cosetaction) and [`CosetImage`](coset-space.md#function-grpgpc-cosetimage) can be used. For category transfers to matrix groups (cf. Chapter [Matrix Groups over General Rings](../../FiniteGroups/MatrixGroupsOverGeneralRings/index-matrix-groups-over-general-rings.md#chapgrpmat)) we refer to Section [Representation Theory](representation-theory.md#grpgpc-sectrepthy).

## `AbelianGroup(G): GrpGPC -> GrpAb, Map`

A `GrpAb` (cf. Chapter [Abelian Groups](../AbelianGroups/index-abelian-groups.md#chapgrpab)) representation $A$ of the abelian polycyclic group $G$ and the isomorphism from $G$ to $A$.

## `FPGroup(G): GrpGPC -> GrpFP, Map`

A `GrpFP` (cf. Chapter [Finitely Presented Groups](../FPGroups/index-fpgroups.md#chapgrpfp)) representation $F$ of $G$ and the isomorphism from $F$ to $G$. This category transfer is currently only possible provided that all exponents occurring in the presentation of $G$ are small integers. This can be checked by means of the function [`PresentationIsSmall`](polycyclic-groups.md#function-grpgpc-presentationissmall).

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

A `GrpPC` (cf. Chapter [Finite Soluble Groups](../../FiniteGroups/FiniteSolubleGroups/index-finite-soluble-groups.md#chapgrppc)) representation $F$ of the finite polycyclic group $G$ and the isomorphism from $G$ to $F$.

This category transfer is currently only possible provided that all exponents occurring in the presentation of $G$ are small integers. This can be checked by means of the function [`PresentationIsSmall`](polycyclic-groups.md#function-grpgpc-presentationissmall).

## `GPCGroup(G): GrpPerm -> GrpGPC, Map`

## `GPCGroup(G): GrpMat -> GrpGPC, Map`

## `GPCGroup(G): GrpAb -> GrpGPC, Map`

## `GPCGroup(G): GrpPC -> GrpGPC, Map`

A `GrpGPC` representation $P$ of the solvable group $G$ and the isomorphism from $G$ to $P$. The group $G$ can be of one of the following types: `GrpPerm` (cf. Chapter [Permutation Groups](../../FiniteGroups/PermutationGroups/index-permutation-groups.md#chapgrpperm)), `GrpMat` (cf. Chapter [Matrix Groups over General Rings](../../FiniteGroups/MatrixGroupsOverGeneralRings/index-matrix-groups-over-general-rings.md#chapgrpmat)), `GrpAb` (cf. Chapter [Abelian Groups](../AbelianGroups/index-abelian-groups.md#chapgrpab)), `GrpPC` (cf. Chapter [Finite Soluble Groups](../../FiniteGroups/FiniteSolubleGroups/index-finite-soluble-groups.md#chapgrppc)). Currently $G$ must be finite, if it is of type `GrpMat`.

## `Example: Subgroups Quotients Transfer (ex-f0ed02)`

We define a finite, solvable matrix group and convert it to a (general) polycyclic group $G$.

```magma
> a := GL(2,3) ! [1,1,0,1];
> b := GL(2,3) ! [0,1,1,0];
> M := sub<Parent(a)|a,b>;
> IsSolvable(M);
true
> IsFinite(M);
true
> G, f := GPCGroup(M);

```

We now compute the direct product $D$ of $G$ and the infinite dihedral group $H$, define a subgroup $S$ of $D$, its normal closure $N$ and construct the quotient $Q$ of $D$ by $N$.

```magma
> H<u,v> := DihedralGroup(GrpGPC, 0);
> D, incl, proj := DirectProduct(G, H);
> S := sub<D | incl[1](f(a*b)), incl[2]((u,v)^2)>;
> N := ncl<D|S>;
> Q := D/N;
> Q;
GrpGPC : Q of order 2^3 on 2 PC-generators
PC-Relations:
    Q.1^2 = Id(Q),
    Q.2^4 = Id(Q),
    Q.2^Q.1 = Q.2^3

```

Since $Q$ is finite, it can be transformed into a group of type `GrpPC` using the function [`PCGroup`](#function-grpgpc-pcgroup). This should (in non-trivial examples) be done, if further computations with it are intended.

```magma
> Q_ := PCGroup(Q);
> Q_;
GrpPC : Q_ of order 8 = 2^3
PC-Relations:
    Q_.2^2 = Q_.3,
    Q_.2^Q_.1 = Q_.2 * Q_.3

```
