[MathJax on]

### 1 Introduction

#### 1.1 The package

This package provides functions for computation with matrix groups. Let G be a subgroup of GL(d,R) where the ring R is either equal to ℚ,ℤ or a finite field F_q. Then:

We can test whether G is solvable.

We can test whether G is polycyclic.

If G is polycyclic, then we can determine a polycyclic presentation for G.

A group G which is given by a polycyclic presentation can be largely investigated by algorithms implemented in the **GAP**-package **Polycyclic** [EN00]. For example we can determine if G is torsion-free and calculate the torsion subgroup. Further we can compute the derived series and the Hirsch length of the group G. Also various methods for computations with subgroups, factor groups and extensions are available.

As a by-product, the **Polenta** package provides some functionality to compute certain module series for modules of solvable groups. For example, if G is a rational polycyclic matrix group, then we can compute the radical series of the natural ℚ[G]-module ℚ^d.

#### 1.2 Polycyclic groups

A group G is called polycyclic if it has a finite subnormal series with cyclic factors. It is a well-known fact that every polycyclic group is finitely presented by a so-called polycyclic presentation (see for example Chapter 9 in [Sim94] or Chapter 2 in [EN00] ). In **GAP**, groups which are defined by polycyclic presentations are called polycyclically presented groups, abbreviated PcpGroups.

The overall idea of the algorithm implemented in this package was first introduced by Ostheimer in 1996 [Ost96]. In 2001 Eick presented a more detailed version [Eic01]. This package contains an implementation of Eick's algorithm. A description of this implementation together with some refinements and extensions can be found in [AE05] and [Ass03].