  
  [1X6 [33X[0;0YLibraries and examples of pcp-groups[133X[101X
  
  
  [1X6.1 [33X[0;0YLibraries of various types of polycyclic groups[133X[101X
  
  [33X[0;0YThere are the following generic pcp-groups available.[133X
  
  [1X6.1-1 AbelianPcpGroup[101X
  
  [29X[2XAbelianPcpGroup[102X( [3Xn[103X, [3Xrels[103X ) [32X function
  
  [33X[0;0Yconstructs the abelian group on [3Xn[103X generators such that generator [22Xi[122X has order
  [22Xrels[i][122X. If this order is infinite, then [22Xrels[i][122X should be either unbound or
  0.[133X
  
  [1X6.1-2 DihedralPcpGroup[101X
  
  [29X[2XDihedralPcpGroup[102X( [3Xn[103X ) [32X function
  
  [33X[0;0Yconstructs  the  dihedral  group  of  order  [3Xn[103X. If [3Xn[103X is an odd integer, then
  'fail'  is  returned.  If  [3Xn[103X  is  zero  or not an integer, then the infinite
  dihedral group is returned.[133X
  
  [1X6.1-3 UnitriangularPcpGroup[101X
  
  [29X[2XUnitriangularPcpGroup[102X( [3Xn[103X, [3Xc[103X ) [32X function
  
  [33X[0;0Yreturns  a pcp-group isomorphic to the group of upper triangular in [22XGL(n, R)[122X
  where  [22XR = ℤ[122X if [22Xc = 0[122X and [22XR = F_p[122X if [22Xc = p[122X. The natural unitriangular matrix
  representation   of   the   returned   pcp-group   [22XG[122X   can  be  obtained  as
  [22XG!.isomorphism[122X.[133X
  
  [1X6.1-4 SubgroupUnitriangularPcpGroup[101X
  
  [29X[2XSubgroupUnitriangularPcpGroup[102X( [3Xmats[103X ) [32X function
  
  [33X[0;0Y[3Xmats[103X  should  be a list of upper unitriangular [22Xn × n[122X matrices over [22Xℤ[122X or over
  [22XF_p[122X.   This   function   returns   the   subgroup   of   the   corresponding
  'UnitriangularPcpGroup' generated by the matrices in [3Xmats[103X.[133X
  
  [1X6.1-5 InfiniteMetacyclicPcpGroup[101X
  
  [29X[2XInfiniteMetacyclicPcpGroup[102X( [3Xn[103X, [3Xm[103X, [3Xr[103X ) [32X function
  
  [33X[0;0YInfinite   metacyclic  groups  are  classified  in  [BK00].  Every  infinite
  metacyclic group [22XG[122X is isomorphic to a finitely presented group [22XG(m,n,r)[122X with
  two  generators  [22Xa[122X and [22Xb[122X and relations of the form [22Xa^n = b^m = 1[122X and [22X[a,b] =
  a^1-r[122X,  where  [22Xm,n,r[122X  are  three  non-negative  integers  with  [22Xmn=0[122X  and  [22Xr[122X
  relatively  prime  to  [22Xm[122X. If [22Xr ≡ -1[122X mod [22Xm[122X then [22Xn[122X is even, and if [22Xr ≡ 1[122X mod [22Xm[122X
  then [22Xm=0[122X. Also [22Xm[122X and [22Xn[122X must not be [22X1[122X.[133X
  
  [33X[0;0YMoreover,  [22XG(m,n,r)≅  G(m',n',s)[122X if and only if [22Xm=m'[122X, [22Xn=n'[122X, and either [22Xr ≡ s[122X
  or [22Xr ≡ s^-1[122X mod [22Xm[122X.[133X
  
  [33X[0;0YThis  function  returns the metacyclic group with parameters [3Xn[103X, [3Xm[103X and [3Xr[103X as a
  pcp-group  with  the  pc-presentation  [22X⟨  x,y  |  x^n, y^m, y^x = y^r⟩[122X. This
  presentation  is  easily  transformed into the one above via the mapping [22Xx ↦
  b^-1, y ↦ a[122X.[133X
  
  [1X6.1-6 HeisenbergPcpGroup[101X
  
  [29X[2XHeisenbergPcpGroup[102X( [3Xn[103X ) [32X function
  
  [33X[0;0Yreturns  the  Heisenberg  group  on [22X2[3Xn[103X[122X generators as pcp-group. This gives a
  group of Hirsch length [22X3[3Xn[103X[122X.[133X
  
  [1X6.1-7 MaximalOrderByUnitsPcpGroup[101X
  
  [29X[2XMaximalOrderByUnitsPcpGroup[102X( [3Xf[103X ) [32X function
  
  [33X[0;0Ytakes  as  input  a normed, irreducible polynomial over the integers. Thus [3Xf[103X
  defines  a  field  extension [3XF[103X over the rationals. This function returns the
  split  extension of the maximal order [3XO[103X of [3XF[103X by the unit group [3XU[103X of [3XO[103X, where
  [3XU[103X acts by right multiplication on [3XO[103X.[133X
  
  [1X6.1-8 BurdeGrunewaldPcpGroup[101X
  
  [29X[2XBurdeGrunewaldPcpGroup[102X( [3Xs[103X, [3Xt[103X ) [32X function
  
  [33X[0;0Yreturns  a nilpotent group of Hirsch length 11 which has been constructed by
  Burde  und  Grunewald.  If  [3Xs[103X  is  not  0,  then  this group has no faithful
  12-dimensional linear representation.[133X
  
  
  [1X6.2 [33X[0;0YSome assorted example groups[133X[101X
  
  [33X[0;0YThe functions in this section provide some more example groups to play with.
  They come with no further description and their investigation is left to the
  interested user.[133X
  
  [1X6.2-1 ExampleOfMetabelianPcpGroup[101X
  
  [29X[2XExampleOfMetabelianPcpGroup[102X( [3Xa[103X, [3Xk[103X ) [32X function
  
  [33X[0;0Yreturns  an  example of a metabelian group. The input parameters must be two
  positive integers greater than 1.[133X
  
  [1X6.2-2 ExamplesOfSomePcpGroups[101X
  
  [29X[2XExamplesOfSomePcpGroups[102X( [3Xn[103X ) [32X function
  
  [33X[0;0Ythis  function  takes  values  [3Xn[103X in 1 up to 16 and returns for each input an
  example  of  a  pcp-group. The groups in this example list have been used as
  test groups for the functions in this package.[133X
  
