  
  [1X2 [33X[0;0YMethods for matrix groups[133X[101X
  
  
  [1X2.1 [33X[0;0YPolycyclic presentations of matrix groups[133X[101X
  
  [33X[0;0YGroups  defined  by polycyclic presentations are called PcpGroups in [5XGAP[105X. We
  refer to the Polycyclic manual [EN00] for further background.[133X
  
  [33X[0;0YSuppose  that a collection [22XX[122X of matrices of [22XGL(d,R)[122X is given, where the ring
  [22XR[122X  is  either  [22Xℚ,ℤ[122X  or  a  finite  field.  Let  [22XG=  ⟨ X ⟩[122X. If the group [22XG[122X is
  polycyclic,  then the following functions determine a PcpGroup isomorphic to
  [22XG[122X.[133X
  
  [1X2.1-1 PcpGroupByMatGroup[101X
  
  [33X[1;0Y[29X[2XPcpGroupByMatGroup[102X( [3XG[103X ) [32X operation[133X
  
  [33X[0;0Y[3XG[103X is a subgroup of [22XGL(d,R)[122X where [22XR=ℚ,ℤ[122X or [22XF_q[122X. If [3XG[103X is polycyclic, then this
  function determines a PcpGroup isomorphic to [3XG[103X. If [3XG[103X is not polycyclic, then
  this function returns [10Xfail[110X.[133X
  
  [1X2.1-2 IsomorphismPcpGroup[101X
  
  [33X[1;0Y[29X[2XIsomorphismPcpGroup[102X( [3XG[103X ) [32X method[133X
  
  [33X[0;0Y[3XG[103X is a subgroup of [22XGL(d,R)[122X where [22XR=ℚ,ℤ[122X or [22XF_q[122X. If [3XG[103X is polycyclic, then this
  function  determines an isomorphism onto a PcpGroup. If [3XG[103X is not polycyclic,
  then this function returns [10Xfail[110X.[133X
  
  [33X[0;0YNote  that the method [10XIsomorphismPcpGroup[110X, installed in this package, cannot
  be    applied    directly    to    a    group    given   by   the   function
  [10XAlmostCrystallographicGroup[110X.   Please   use  [10XPOL_AlmostCrystallographicGroup[110X
  (with the same parameters as [10XAlmostCrystallographicGroup[110X) instead.[133X
  
  [1X2.1-3 ImagesRepresentative[101X
  
  [33X[1;0Y[29X[2XImagesRepresentative[102X( [3Xmap[103X, [3Xelm[103X ) [32X method[133X
  [33X[1;0Y[29X[2XImageElm[102X( [3Xmap[103X, [3Xelm[103X ) [32X method[133X
  [33X[1;0Y[29X[2XImagesSet[102X( [3Xmap[103X, [3Xelms[103X ) [32X method[133X
  
  [33X[0;0YHere  [3Xmap[103X is an isomorphism from a polycyclic matrix group [3XG[103X onto a PcpGroup
  [3XH[103X  calculated  by  [2XIsomorphismPcpGroup[102X ([14X2.1-2[114X). These methods can be used to
  compute  with such an isomorphism. If the input [3Xelm[103X is an element of [3XG[103X, then
  the  function [10XImageElm[110X can be used to compute the image of [3Xelm[103X under [3Xmap[103X. If
  [3Xelm[103X is not contained in [3XG[103X then the function [10XImageElm[110X returns [10Xfail[110X. The input
  [3Xpcpelm[103X is an element of [3XH[103X.[133X
  
  [1X2.1-4 IsSolvableGroup[101X
  
  [33X[1;0Y[29X[2XIsSolvableGroup[102X( [3XG[103X ) [32X method[133X
  
  [33X[0;0Y[3XG[103X  is  a subgroup of [22XGL(d,R)[122X where [22XR=ℚ,ℤ[122X or [22XF_q[122X. This function tests if [3XG[103X is
  solvable and returns [10Xtrue[110X or [10Xfalse[110X.[133X
  
  [1X2.1-5 IsTriangularizableMatGroup[101X
  
  [33X[1;0Y[29X[2XIsTriangularizableMatGroup[102X( [3XG[103X ) [32X property[133X
  
  [33X[0;0Y[3XG[103X  is  a  subgroup  of [22XGL(d,ℚ)[122X. This function tests if [3XG[103X is triangularizable
  (possibly over a finite field extension) and returns [10Xtrue[110X or [10Xfalse[110X.[133X
  
  [1X2.1-6 IsPolycyclicGroup[101X
  
  [33X[1;0Y[29X[2XIsPolycyclicGroup[102X( [3XG[103X ) [32X method[133X
  
  [33X[0;0Y[3XG[103X  is  a subgroup of [22XGL(d,R)[122X where [22XR=ℚ,ℤ[122X or [22XF_q[122X. This function tests if [3XG[103X is
  polycyclic and returns [10Xtrue[110X or [10Xfalse[110X.[133X
  
  
  [1X2.2 [33X[0;0YModule series[133X[101X
  
  [33X[0;0YLet [22XG[122X be a finitely generated solvable subgroup of [22XGL(d,ℚ)[122X. The vector space
  [22Xℚ^d[122X  is  a  module for the algebra [22Xℚ[G][122X. The following functions provide the
  possibility to compute certain module series of [22Xℚ^d[122X. Recall that the radical
  [22XRad_G(ℚ^d)[122X  is  defined to be the intersection of maximal [22Xℚ[G][122X-submodules of
  [22Xℚ^d[122X. Also recall that the radical series[133X
  
  
  [24X[33X[0;6Y0=R_n < R_{n-1} < \dots < R_1 < R_0=ℚ^d[133X
  
  [124X
  
  [33X[0;0Yis defined by [22XR_i+1:= Rad_G(R_i)[122X.[133X
  
  [1X2.2-1 RadicalSeriesSolvableMatGroup[101X
  
  [33X[1;0Y[29X[2XRadicalSeriesSolvableMatGroup[102X( [3XG[103X ) [32X operation[133X
  
  [33X[0;0YThis function returns a radical series for the [22Xℚ[G][122X-module [22Xℚ^d[122X, where [3XG[103X is a
  solvable subgroup of [22XGL(d,ℚ)[122X.[133X
  
  [33X[0;0YA radical series of [22Xℚ^d[122X can be refined to a homogeneous series.[133X
  
  [1X2.2-2 HomogeneousSeriesAbelianMatGroup[101X
  
  [33X[1;0Y[29X[2XHomogeneousSeriesAbelianMatGroup[102X( [3XG[103X ) [32X function[133X
  
  [33X[0;0YA  module  is  said  to  be  homogeneous if it is the direct sum of pairwise
  irreducible  isomorphic  submodules.  A  homogeneous series of a module is a
  submodule  series  such  that  the  factors  are  homogeneous. This function
  returns  a homogeneous series for the [22Xℚ[G][122X-module [22Xℚ^d[122X, where [3XG[103X is an abelian
  subgroup of [22XGL(d,ℚ)[122X.[133X
  
  [1X2.2-3 HomogeneousSeriesTriangularizableMatGroup[101X
  
  [33X[1;0Y[29X[2XHomogeneousSeriesTriangularizableMatGroup[102X( [3XG[103X ) [32X function[133X
  
  [33X[0;0YA  module  is  said  to  be  homogeneous if it is the direct sum of pairwise
  irreducible  isomorphic  submodules.  A  homogeneous series of a module is a
  submodule  series  such  that  the  factors  are  homogeneous. This function
  returns  a  homogeneous  series  for  the  [22Xℚ[G][122X-module  [22Xℚ^d[122X,  where  [3XG[103X  is a
  triangularizable subgroup of [22XGL(d,ℚ)[122X.[133X
  
  [33X[0;0YA homogeneous series can be refined to a composition series.[133X
  
  [1X2.2-4 CompositionSeriesAbelianMatGroup[101X
  
  [33X[1;0Y[29X[2XCompositionSeriesAbelianMatGroup[102X( [3XG[103X ) [32X function[133X
  
  [33X[0;0YA composition series of a module is a submodule series such that the factors
  are  irreducible.  This  function  returns  a  composition  series  for  the
  [22Xℚ[G][122X-module [22Xℚ^d[122X, where [3XG[103X is an abelian subgroup of [22XGL(d,ℚ)[122X.[133X
  
  [1X2.2-5 CompositionSeriesTriangularizableMatGroup[101X
  
  [33X[1;0Y[29X[2XCompositionSeriesTriangularizableMatGroup[102X( [3XG[103X ) [32X function[133X
  
  [33X[0;0YA composition series of a module is a submodule series such that the factors
  are  irreducible.  This  function  returns  a  composition  series  for  the
  [22Xℚ[G][122X-module [22Xℚ^d[122X, where [3XG[103X is a triangularizable subgroup of [22XGL(d,ℚ)[122X.[133X
  
  
  [1X2.3 [33X[0;0YSubgroups[133X[101X
  
  [1X2.3-1 SubgroupsUnipotentByAbelianByFinite[101X
  
  [33X[1;0Y[29X[2XSubgroupsUnipotentByAbelianByFinite[102X( [3XG[103X ) [32X operation[133X
  
  [33X[0;0Y[3XG[103X  is  a  subgroup  of [22XGL(d,R)[122X where [22XR=ℚ[122X or [22Xℤ[122X. If [3XG[103X is polycyclic, then this
  function  returns a record containing two normal subgroups [22XT[122X and [22XU[122X of [22XG[122X. The
  group  [22XT[122X  is  unipotent-by-abelian (and thus triangularizable) and of finite
  index  in  [3XG[103X. The group [22XU[122X is unipotent and is such that [22XT/U[122X is abelian. If [3XG[103X
  is not polycyclic, then the algorithm returns [10Xfail[110X.[133X
  
  
  [1X2.4 [33X[0;0YExamples[133X[101X
  
  [1X2.4-1 PolExamples[101X
  
  [33X[1;0Y[29X[2XPolExamples[102X( [3Xl[103X ) [32X function[133X
  
  [33X[0;0YReturns  some  examples for polycyclic rational matrix groups, where [3Xl[103X is an
  integer  between  1  and 24. These can be used to test the functions in this
  package.  Some  of  the  properties  of  the  examples are summarised in the
  following table.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28XPolExamples      number generators      subgroup of      Hirsch length[128X[104X
    [4X[28X          1                      3           GL(4,Z)                 6[128X[104X
    [4X[28X          2                      2           GL(5,Z)                 6[128X[104X
    [4X[28X          3                      2           GL(4,Q)                 4[128X[104X
    [4X[28X          4                      2           GL(5,Q)                 6[128X[104X
    [4X[28X          5                      9          GL(16,Z)                 3[128X[104X
    [4X[28X          6                      6           GL(4,Z)                 3[128X[104X
    [4X[28X          7                      6           GL(4,Z)                 3[128X[104X
    [4X[28X          8                      7           GL(4,Z)                 3[128X[104X
    [4X[28X          9                      5           GL(4,Q)                 3[128X[104X
    [4X[28X         10                      4           GL(4,Q)                 3[128X[104X
    [4X[28X         11                      5           GL(4,Q)                 3[128X[104X
    [4X[28X         12                      5           GL(4,Q)                 3[128X[104X
    [4X[28X         13                      5           GL(5,Q)                 4[128X[104X
    [4X[28X         14                      6           GL(5,Q)                 4[128X[104X
    [4X[28X         15                      6           GL(5,Q)                 4[128X[104X
    [4X[28X         16                      5           GL(5,Q)                 4[128X[104X
    [4X[28X         17                      5           GL(5,Q)                 4[128X[104X
    [4X[28X         18                      5           GL(5,Q)                 4[128X[104X
    [4X[28X         19                      5           GL(5,Q)                 4[128X[104X
    [4X[28X         20                      7          GL(16,Z)                 3[128X[104X
    [4X[28X         21                      5          GL(16,Q)                 3[128X[104X
    [4X[28X         22                      4          GL(16,Q)                 3[128X[104X
    [4X[28X         23                      5          GL(16,Q)                 3[128X[104X
    [4X[28X         24                      5          GL(16,Q)                 3[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
