  
  [1X3 Functions for Homological Algebra[0X
  
  
  [1X3.1 Resolutions[0X
  
  
  [1X3.1-1 ResolutionPrimePowerGroup[0X
  
  [2X> ResolutionPrimePowerGroupRadical( [0X[3XG, n[0X[2X ) ________________________[0Xoperation
  [2X> ResolutionPrimePowerGroupGF( [0X[3XG, n[0X[2X ) _____________________________[0Xoperation
  [2X> ResolutionPrimePowerGroupAutoMem( [0X[3XG, n[0X[2X ) ________________________[0Xoperation
  [2X> ResolutionPrimePowerGroupGF2( [0X[3XG, n[0X[2X ) ____________________________[0Xoperation
  [2X> ResolutionPrimePowerGroupRadical( [0X[3XM, n[0X[2X ) ________________________[0Xoperation
  [2X> ResolutionPrimePowerGroupGF( [0X[3XM, n[0X[2X ) _____________________________[0Xoperation
  [2X> ResolutionPrimePowerGroupAutoMem( [0X[3XM, n[0X[2X ) ________________________[0Xoperation
  [2X> ResolutionPrimePowerGroupGF2( [0X[3XM, n[0X[2X ) ____________________________[0Xoperation
  [6XReturns:[0X  [9XHAPResolution[0m
  
  Returns  [3Xn[0m  terms of a minimal free FG-resolution for either the ground ring
  of a prime power group [3XG[0m or of a module [3XM[0m. For the module version, [3XM[0m must be
  passed  as  an  [9XFpGModuleGF[0m object - see [14X'HAPprime Datatypes: FG-modules'[0m in
  the [5XHAPprime[0m datatypes reference manual.
  
  Three versions of this function are provided:
  
  [8X[9XResolutionPrimePowerGroupRadical[0m[8X[0m
        uses   the   same  resolution-building  method  as  the  [5XHAP[0m  function
        [2XResolutionPrimePowerGroup[0m ([14XHAP: ResolutionPrimePowerGroup[0m), but stores
        the  resolution  in  a different format that takes only about half the
        memory of the [5XHAP[0m version.
  
  [8X[9XResolutionPrimePowerGroupGF[0m[8X[0m
        calculates   the  resolution  using  [5XHAPprime[0m's  G-generator  form  of
        modules,  which  reduces  memory  use  by  around a factor of two over
        [9XResolutionPrimePowerGroupRadical[0m,   but  is  slower  by  an  order  of
        magnitude.
  
  [8X[9XResolutionPrimePowerGroupAutoMem[0m[8X[0m
        automatically  switches between the two previous versions based on the
        available  memory.  It uses the [10XRadical[0m version until it gets close to
        the  limit  of  the  available  memory,  and  then  switches to the [10XGF[0m
        version.
  
  [8X[9XResolutionPrimePowerGroupGF2[0m[8X[0m
        calculates  the  resolution  by  FG-matrix partitioning. The amount of
        partitioning  is  governed  by  the  [14X'Reference: Options Stack'[0m option
        [10XMaxFGExpansionSize[0m.  The  default  value means that until the boundary
        map    takes    about    128Mb,    the   method   is   equivalent   to
        [9XResolutionPrimePowerGroupRadical[0m,    and   then   it   tends   towards
        [9XResolutionPrimePowerGroupGF[0m in terms of time, but saves less memory.
  
  See  the  [5XHAPprime[0m  datatypes  reference manual for details of the different
  algorithms, in particular the chapters on the G-generator form of FG-modules
  [14X'HAPprime  Datatypes:  FG-modules'[0m  and  FG-module  homomorphisms  [14X'HAPprime
  Datatypes:  FG-module homomorphisms'[0m and on resolutions [14X'HAPprime Datatypes:
  Resolutions'[0m.
  
  
  [1X3.1-2 ExtendResolutionPrimePowerGroup[0X
  
  [2X> ExtendResolutionPrimePowerGroupRadical( [0X[3XR[0X[2X ) _____________________[0Xoperation
  [2X> ExtendResolutionPrimePowerGroupGF( [0X[3XR[0X[2X ) __________________________[0Xoperation
  [2X> ExtendResolutionPrimePowerGroupAutoMem( [0X[3XR[0X[2X ) _____________________[0Xoperation
  [2X> ExtendResolutionPrimePowerGroupGF2( [0X[3XR[0X[2X ) _________________________[0Xoperation
  [6XReturns:[0X  [9XHAPResolution[0m
  
  Returns  the  resolution  [3XR[0m extended by one term. The three variants offer a
  choice between memory and speed, and correspond to the different versions of
  [9XResolutionPrimePowerGroup[0m  in  [5XHAPprime[0m.  See  the documentation ([14X3.1-1[0m) for
  those functions for a description of the different variants.
  
  
  [1X3.2 Poincaré Series[0X
  
  [1X3.2-1 PoincareSeriesLHS[0m
  
  [2X> PoincareSeriesLHS( [0X[3XG[0X[2X ) __________________________________________[0Xattribute
  [6XReturns:[0X  Rational function
  
  For  a  finite p-group [3XG[0m, this function calculates and returns a quotient of
  polynomials f(x) = P(x)/Q(x) (i.e. the Poincaré series) whose coefficient of
  x^k  equals  the rank of the vector space H_k(G, F_p) for all k in the range
  k=1 to k=n.
  
  This  function  computes  a  Lyndon-Hoschild-Serre spectral sequence for the
  p-group  G.  The  last  sheet  of  this sequence will have the same additive
  structure  as  the  mod-p  group  cohomology  ring  of  G, and thus the same
  Poincaré series, which is returned by this function.
  
  See Section [14X2.2-3[0m for an example and more description.
  
  
  [1X3.3 Cohomology Ring structure[0X
  
  [1X3.3-1 ModPCohomologyRingPresentation[0m
  
  [2X> ModPCohomologyRingPresentation( [0X[3XG[0X[2X ) _____________________________[0Xattribute
  [2X> ModPCohomologyRingPresentation( [0X[3XG, n[0X[2X ) __________________________[0Xoperation
  [2X> ModPCohomologyRingPresentation( [0X[3XR[0X[2X ) _____________________________[0Xoperation
  [2X> ModPCohomologyRingPresentation( [0X[3XA[0X[2X ) _____________________________[0Xoperation
  [6XReturns:[0X  [9XGradedAlgebraPresentation[0m
  
  Calculates  and  returns a cohomology ring presentation for the group G. See
  [14X'HAPprime  Datatypes:  Presentations  of  graded  algebras'[0m in the datatypes
  reference manual for details of the [9XGradedAlgebraPresentation[0m type.
  
  If  the only argument is a p-group [3XG[0m then this function computes and returns
  the  provably-correct  cohomology  ring  presentation.  This  version  first
  computes  the  Lyndon-Hoschild-Serre  Spectral Sequence until convergence to
  find  the  additive  structure of the cohomology ring, and then computes the
  cohomology  ring  up  to  and  including  the maximum necessary generator or
  relation,  using  the [10X(G, n)[0m method described below. For certain groups, the
  cohomology  ring is returned without computation: the known mod-p cohomology
  ring presentation for cyclic groups is returned without calculation, and for
  groups  which  can  be expressed as a direct product, the cohomology ring is
  computed as a tensor product of its direct factors (thus the cohomology ring
  of all Abelian groups are also returned with minimal computation.)
  
  When   given  a  p-group  [3XG[0m  and  integer  [3Xn[0m,  this  function  computes  the
  presentation  modulo  all  elements  of  degree  greater [3Xn[0m. Alternatively, a
  minimal  resolution  [3XR[0m  (with [3Xn[0m terms) can be input, or a structure constant
  algebra   [3XA[0m   with   embedded   degrees   (from   [2XModPCohomologyRing[0m   ([14XHAP:
  ModPCohomologyRing[0m)).
  
  See  Section  [14X2.2-1[0m  and  [14X2.2-2[0m  for examples and more description. See also
  [2XLHSSpectralSequence[0m ([14XHAPprime Datatypes: LHSSpectralSequence[0m) for details of
  options that can be used to guide the spectral sequence computation.
  
