  
  [1X2 [33X[0;0YBasic functionality for [22XZG[122X[101X[1X-resolutions and group cohomology[133X[101X
  
  [33X[0;0YThis  page  covers the functions used in chapter 3 of the book An Invitation
  to                           Computational                          Homotopy
  (
  https://global.oup.com/academic/product/an-invitation-to-computational-homotopy-9780198832980
  ).[133X
  
  
  [1X2.1 [33X[0;0YResolutions[133X[101X
  
  [1X2.1-1 EquivariantChainMap[101X
  
  [33X[1;0Y[29X[2XEquivariantChainMap[102X( [3XR[103X, [3XS[103X, [3Xf[103X ) [32X function[133X
  
  [33X[0;0YInputs a free [22XZG[122X-resolution [22XR[122X of [22XZ[122X, a free [22XZQ[122X-resolution [22XS[122X of [22XZ[122X, and a group
  homomorphism [22Xf: G → Q[122X. It returns the induced [22Xf[122X-equivariant chain map [22XF: R →
  S[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X             1             ([7X../tutorial/chap7.html[107X) ,             2
  ([7X../www/SideLinks/About/aboutCohomologyRings.html[107X) ,                       3
  ([7X../www/SideLinks/About/aboutPoincareSeries.html[107X) ,                        4
  ([7X../www/SideLinks/About/aboutFunctorial.html[107X) [133X
  
  [1X2.1-2 FreeGResolution[101X
  
  [33X[1;0Y[29X[2XFreeGResolution[102X( [3XP[103X, [3Xn[103X ) [32X function[133X
  
  [33X[0;0YInputs a non-free [22XZG[122X-resolution [22XP_∗[122X and a positive integer [22Xn[122X. It attempts to
  return  [22Xn[122X terms of a free [22XZG[122X-resolution of [22XZ[122X. However, the stabilizer groups
  in  the  non-free  resolution  must  be  such  that  HAP  can construct free
  resolutions with contracting homotopies for them.[133X
  
  [33X[0;0YThe contracting homotopy on the resolution was implemented by Bui Anh Tuan.[133X
  
  [33X[0;0Y[12XExamples:[112X   1   ([7X../tutorial/chap1.html[107X) ,  2  ([7X../tutorial/chap7.html[107X) ,  3
  ([7X../tutorial/chap11.html[107X) ,                                                4
  ([7X../www/SideLinks/About/aboutArithmetic.html[107X) ,                            5
  ([7X../www/SideLinks/About/aboutPolytopes.html[107X) ,                             6
  ([7X../www/SideLinks/About/aboutDavisComplex.html[107X) ,                          7
  ([7X../www/SideLinks/About/aboutIntro.html[107X) [133X
  
  [1X2.1-3 ResolutionBieberbachGroup[101X
  
  [33X[1;0Y[29X[2XResolutionBieberbachGroup[102X( [3XG[103X ) [32X function[133X
  [33X[1;0Y[29X[2XResolutionBieberbachGroup[102X( [3XG[103X, [3Xv[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  torsion free crystallographic group [22XG[122X, also known as a Bieberbach
  group,  represented  using  [12XAffineCrystGroupOnRight[112X  as  in  the GAP package
  Cryst. It also optionally inputs a choice of vector [22Xv[122X in the Euclidean space
  [22XR^n[122X  on  which  [22XG[122X  acts  freely.  The function returns [22Xn+1[122X terms of the free
  ZG-resolution of [22XZ[122X arising as the cellular chain complex of the tessellation
  of  [22XR^n[122X  by  the  Dirichlet-Voronoi  fundamental  domain determined by [22Xv[122X. No
  contracting homotopy is returned with the resolution.[133X
  
  [33X[0;0YThis  function  is  part  of the HAPcryst package written by Marc Roeder and
  thus requires the HAPcryst package to be loaded.[133X
  
  [33X[0;0YThe function requires the use of Polymake software.[133X
  
  [33X[0;0Y[12XExamples:[112X 1 ([7X../tutorial/chap11.html[107X) [133X
  
  [1X2.1-4 ResolutionCubicalCrystGroup[101X
  
  [33X[1;0Y[29X[2XResolutionCubicalCrystGroup[102X( [3XG[103X, [3Xk[103X ) [32X function[133X
  
  [33X[0;0YInputs  a crystallographic group [22XG[122X represented using [12XAffineCrystGroupOnRight[112X
  as  in  the  GAP  package [22XCryst[122X together with an integer [22Xk ≥ 1[122X. The function
  tries  to  find  a  cubical fundamental domain in the Euclidean space [22XR^n[122X on
  which  [22XG[122X  acts.  If it succeeds it uses this domain to return [22Xk+1[122X terms of a
  free ZG-resolution of [22XZ[122X.[133X
  
  [33X[0;0YThis function was written by Bui Anh Tuan.[133X
  
  [33X[0;0Y[12XExamples:[112X 1 ([7X../tutorial/chap1.html[107X) , 2 ([7X../tutorial/chap11.html[107X) [133X
  
  [1X2.1-5 ResolutionFiniteGroup[101X
  
  [33X[1;0Y[29X[2XResolutionFiniteGroup[102X( [3XG[103X, [3Xk[103X ) [32X function[133X
  
  [33X[0;0YInputs a finite group [22XG[122X and an integer [22Xk ≥ 1[122X. It returns [22Xk+1[122X terms of a free
  ZG-resolution of [22XZ[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X   1   ([7X../tutorial/chap6.html[107X) ,  2  ([7X../tutorial/chap7.html[107X) ,  3
  ([7X../tutorial/chap8.html[107X) ,       4       ([7X../tutorial/chap10.html[107X) ,       5
  ([7X../tutorial/chap11.html[107X) ,  6 ([7X../www/SideLinks/About/aboutParallel.html[107X) ,
  7             ([7X../www/SideLinks/About/aboutPerformance.html[107X) ,             8
  ([7X../www/SideLinks/About/aboutCocycles.html[107X) ,                              9
  ([7X../www/SideLinks/About/aboutPeriodic.html[107X) ,                             10
  ([7X../www/SideLinks/About/aboutCohomologyRings.html[107X) ,                      11
  ([7X../www/SideLinks/About/aboutPoincareSeries.html[107X) ,                       12
  ([7X../www/SideLinks/About/aboutCrossedMods.html[107X) ,                          13
  ([7X../www/SideLinks/About/aboutDefinitions.html[107X) ,                          14
  ([7X../www/SideLinks/About/aboutSimplicialGroups.html[107X) ,                     15
  ([7X../www/SideLinks/About/aboutExtensions.html[107X) ,                           16
  ([7X../www/SideLinks/About/aboutSpaceGroup.html[107X) ,                           17
  ([7X../www/SideLinks/About/aboutFunctorial.html[107X) ,                           18
  ([7X../www/SideLinks/About/aboutGouter.html[107X) ,                               19
  ([7X../www/SideLinks/About/aboutTopology.html[107X) ,                             20
  ([7X../www/SideLinks/About/aboutTwistedCoefficients.html[107X) [133X
  
  [1X2.1-6 ResolutionNilpotentGroup[101X
  
  [33X[1;0Y[29X[2XResolutionNilpotentGroup[102X( [3XG[103X, [3Xk[103X ) [32X function[133X
  
  [33X[0;0YInputs  a nilpotent group [22XG[122X (which can be infinite) and an integer [22Xk ≥ 1[122X. It
  returns [22Xk+1[122X terms of a free [22XZG[122X-resolution of [22XZ[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X             1             ([7X../tutorial/chap11.html[107X) ,            2
  ([7X../www/SideLinks/About/aboutCohomologyRings.html[107X) ,                       3
  ([7X../www/SideLinks/About/aboutRosenbergerMonster.html[107X) ,                    4
  ([7X../www/SideLinks/About/aboutExtensions.html[107X) [133X
  
  [1X2.1-7 ResolutionNormalSeries[101X
  
  [33X[1;0Y[29X[2XResolutionNormalSeries[102X( [3XL[103X, [3Xk[103X ) [32X function[133X
  
  [33X[0;0YInputs  a a list [22XL[122X consisting of a chain $[22X1=N_1 ≤ N_2 ≤ ⋯ ≤ N_n =G[122X of normal
  subgroups  of  [22XG[122X,  together with an integer [22Xk ≥ 1[122X. It returns [22Xk+1[122X terms of a
  free ZG-resolution of [22XZ[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X  1  ([7X../tutorial/chap10.html[107X) ,  2  ([7X../tutorial/chap11.html[107X) ,  3
  ([7X../www/SideLinks/About/aboutModPRings.html[107X) ,                             4
  ([7X../www/SideLinks/About/aboutPerformance.html[107X) ,                           5
  ([7X../www/SideLinks/About/aboutPersistent.html[107X) ,                            6
  ([7X../www/SideLinks/About/aboutRosenbergerMonster.html[107X) ,                    7
  ([7X../www/SideLinks/About/aboutExtensions.html[107X) [133X
  
  [1X2.1-8 ResolutionPrimePowerGroup[101X
  
  [33X[1;0Y[29X[2XResolutionPrimePowerGroup[102X( [3XG[103X, [3Xk[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  finite  [22Xp[122X-group [22XG[122X and an integer [22Xk ≥ 1[122X. It returns [22Xk+1[122X terms of a
  minimal free [22XFG[122X-resolution of the field [22XF[122X of [22Xp[122X elements.[133X
  
  [33X[0;0Y[12XExamples:[112X   1   ([7X../tutorial/chap7.html[107X) ,  2  ([7X../tutorial/chap8.html[107X) ,  3
  ([7X../tutorial/chap11.html[107X) , 4 ([7X../www/SideLinks/About/aboutModPRings.html[107X) ,
  5             ([7X../www/SideLinks/About/aboutDefinitions.html[107X) ,             6
  ([7X../www/SideLinks/About/aboutTopology.html[107X) [133X
  
  [1X2.1-9 ResolutionSL2Z[101X
  
  [33X[1;0Y[29X[2XResolutionSL2Z[102X( [3Xm[103X, [3Xk[103X ) [32X function[133X
  
  [33X[0;0YInputs positive integers [22Xm, n[122X and returns [22Xn[122X terms of a free [22XZG[122X-resolution of
  [22XZ[122X for the group [22XG=SL_2( Z[1/m])[122X.[133X
  
  [33X[0;0YThis function is joint work with Bui Anh Tuan.[133X
  
  [33X[0;0Y[12XExamples:[112X             1             ([7X../tutorial/chap11.html[107X) ,            2
  ([7X../www/SideLinks/About/aboutArithmetic.html[107X) ,                            3
  ([7X../www/SideLinks/About/aboutIntro.html[107X) [133X
  
  [1X2.1-10 ResolutionSmallGroup[101X
  
  [33X[1;0Y[29X[2XResolutionSmallGroup[102X( [3XG[103X, [3Xk[103X ) [32X function[133X
  [33X[1;0Y[29X[2XResolutionSmallGroup[102X( [3XG[103X, [3Xk[103X ) [32X function[133X
  
  [33X[0;0YInputs  a small group [22XG[122X and an integer [22Xk ≥ 1[122X. It returns [22Xk+1[122X terms of a free
  ZG-resolution of [22XZ[122X.[133X
  
  [33X[0;0YIf  [22XG[122X  is  a  finitely  presented  group  then up to degree [22X2[122X the resolution
  coincides  with  cellular  chain  complex  of  the  universal cover of the [22X2[122X
  complex  associated  to  the  presentation  of [22XG[122X. Thus the boundaries of the
  generators in degree [22X3[122X provide a generating set for the module of identities
  of the presentation.[133X
  
  [33X[0;0YThis function was written by Irina Kholodna.[133X
  
  [33X[0;0Y[12XExamples:[112X 1 ([7X../tutorial/chap7.html[107X) , 2 ([7X../tutorial/chap11.html[107X) [133X
  
  [1X2.1-11 ResolutionSubgroup[101X
  
  [33X[1;0Y[29X[2XResolutionSubgroup[102X( [3XR[103X, [3XH[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  free  ZG-resolution  of  [22XZ[122X  and a finite index subgroup [22XH ≤ G[122X. It
  returns a free ZH-resolution of [22XZ[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X      1      ([7X../www/SideLinks/About/aboutArithmetic.html[107X) ,      2
  ([7X../www/SideLinks/About/aboutArtinGroups.html[107X) ,                           3
  ([7X../www/SideLinks/About/aboutTwistedCoefficients.html[107X) [133X
  
  
  [1X2.2 [33X[0;0YAlgebras [22X⟶[122X[101X[1X (Co)chain Complexes[133X[101X
  
  [1X2.2-1 LeibnizComplex[101X
  
  [33X[1;0Y[29X[2XLeibnizComplex[102X( [3Xg[103X, [3Xn[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  Leibniz algebra, or Lie algebra, [22Xmathfrakg[122X over a ring [22XK[122X together
  with  an  integer  [22Xn≥  0[122X.  It returns the first [22Xn[122X terms of the Leibniz chain
  complex over [22XK[122X. The complex was implemented by Pablo Fernandez Ascariz.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  
  [1X2.3 [33X[0;0YResolutions [22X⟶[122X[101X[1X (Co)chain Complexes[133X[101X
  
  [1X2.3-1 HomToIntegers[101X
  
  [33X[1;0Y[29X[2XHomToIntegers[102X( [3XC[103X ) [32X function[133X
  [33X[1;0Y[29X[2XHomToIntegers[102X( [3XR[103X ) [32X function[133X
  [33X[1;0Y[29X[2XHomToIntegers[102X( [3XF[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  chain  complex  [22XC[122X  of free abelian groups and returns the cochain
  complex [22XHom_ Z(C, Z)[122X.[133X
  
  [33X[0;0YInputs  a  free  [22XZG[122X-resolution [22XR[122X in characteristic [22X0[122X and returns the cochain
  complex [22XHom_ ZG(R, Z)[122X.[133X
  
  [33X[0;0YInputs  an  equivariant  chain  map  [22XF:  R→ S[122X of resolutions and returns the
  induced cochain map [22XHom_ ZG(S, Z) ⟶ Hom_ ZG(R, Z)[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X   1   ([7X../tutorial/chap1.html[107X) ,  2  ([7X../tutorial/chap7.html[107X) ,  3
  ([7X../tutorial/chap10.html[107X) ,                                                4
  ([7X../www/SideLinks/About/aboutCohomologyRings.html[107X) ,                       5
  ([7X../www/SideLinks/About/aboutSpaceGroup.html[107X) ,                            6
  ([7X../www/SideLinks/About/aboutIntro.html[107X) ,                                 7
  ([7X../www/SideLinks/About/aboutTorAndExt.html[107X) [133X
  
  [1X2.3-2 HomToIntegralModule[101X
  
  [33X[1;0Y[29X[2XHomToIntegralModule[102X( [3XR[103X, [3XA[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  free [22XZG[122X-resolution [22XR[122X in characteristic [22X0[122X and a group homomorphism
  [22XA:  G  →  GL_n(  Z)[122X.  The homomorphism [22XA[122X can be viewed as the [22XZG[122X-module with
  underlying  abelian  group  [22XZ^n[122X  on  which [22XG[122X acts via the homomorphism [22XA[122X. It
  returns the cochain complex [22XHom_ ZG(R,A)[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X             1             ([7X../tutorial/chap7.html[107X) ,             2
  ([7X../www/SideLinks/About/aboutTwistedCoefficients.html[107X) [133X
  
  [1X2.3-3 TensorWithIntegers[101X
  
  [33X[1;0Y[29X[2XTensorWithIntegers[102X( [3XR[103X ) [32X function[133X
  [33X[1;0Y[29X[2XTensorWithIntegers[102X( [3XF[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  free  [22XZG[122X-resolution  [22XR[122X  of characteristic [22X0[122X and returns the chain
  complex [22XR ⊗_ ZG Z[122X.[133X
  
  [33X[0;0YInputs an equivariant chain map [22XF: R → S[122X in characteristic [22X0[122X and returns the
  induced chain map [22XF⊗_ ZG Z : R ⊗_ ZG Z ⟶ S ⊗_ ZG Z[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X   1   ([7X../tutorial/chap1.html[107X) ,  2  ([7X../tutorial/chap3.html[107X) ,  3
  ([7X../tutorial/chap7.html[107X) ,       4       ([7X../tutorial/chap10.html[107X) ,       5
  ([7X../tutorial/chap11.html[107X) ,                                                6
  ([7X../www/SideLinks/About/aboutArithmetic.html[107X) ,                            7
  ([7X../www/SideLinks/About/aboutArtinGroups.html[107X) ,                           8
  ([7X../www/SideLinks/About/aboutAspherical.html[107X) ,                            9
  ([7X../www/SideLinks/About/aboutParallel.html[107X) ,                             10
  ([7X../www/SideLinks/About/aboutPerformance.html[107X) ,                          11
  ([7X../www/SideLinks/About/aboutCocycles.html[107X) ,                             12
  ([7X../www/SideLinks/About/aboutPersistent.html[107X) ,                           13
  ([7X../www/SideLinks/About/aboutPoincareSeries.html[107X) ,                       14
  ([7X../www/SideLinks/About/aboutCoveringSpaces.html[107X) ,                       15
  ([7X../www/SideLinks/About/aboutCoverinSpaces.html[107X) ,                        16
  ([7X../www/SideLinks/About/aboutPolytopes.html[107X) ,                            17
  ([7X../www/SideLinks/About/aboutCoxeter.html[107X) ,                              18
  ([7X../www/SideLinks/About/aboutRosenbergerMonster.html[107X) ,                   19
  ([7X../www/SideLinks/About/aboutDavisComplex.html[107X) ,                         20
  ([7X../www/SideLinks/About/aboutDefinitions.html[107X) ,                          21
  ([7X../www/SideLinks/About/aboutSimplicialGroups.html[107X) ,                     22
  ([7X../www/SideLinks/About/aboutExtensions.html[107X) ,                           23
  ([7X../www/SideLinks/About/aboutSpaceGroup.html[107X) ,                           24
  ([7X../www/SideLinks/About/aboutFunctorial.html[107X) ,                           25
  ([7X../www/SideLinks/About/aboutGraphsOfGroups.html[107X) ,                       26
  ([7X../www/SideLinks/About/aboutIntro.html[107X) ,                                27
  ([7X../www/SideLinks/About/aboutTorAndExt.html[107X) [133X
  
  [1X2.3-4 TensorWithIntegersModP[101X
  
  [33X[1;0Y[29X[2XTensorWithIntegersModP[102X( [3XC[103X, [3Xp[103X ) [32X function[133X
  [33X[1;0Y[29X[2XTensorWithIntegersModP[102X( [3XR[103X, [3Xp[103X ) [32X function[133X
  [33X[1;0Y[29X[2XTensorWithIntegersModP[102X( [3XF[103X, [3Xp[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  chain  complex  [22XC[122X  of  characteristic [22X0[122X and a prime integer [22Xp[122X. It
  returns the chain complex [22XC ⊗_ Z Z_p[122X of characteristic [22Xp[122X.[133X
  
  [33X[0;0YInputs  a free [22XZG[122X-resolution [22XR[122X of characteristic [22X0[122X and a prime integer [22Xp[122X. It
  returns the chain complex [22XR ⊗_ ZG Z_p[122X of characteristic [22Xp[122X.[133X
  
  [33X[0;0YInputs an equivariant chain map [22XF: R → S[122X in characteristic [22X0[122X a prime integer
  [22Xp[122X. It returns the induced chain map [22XF⊗_ ZG Z_p : R ⊗_ ZG Z_p ⟶ S ⊗_ ZG Z_p[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X   1  ([7X../tutorial/chap1.html[107X) ,  2  ([7X../tutorial/chap10.html[107X) ,  3
  ([7X../www/SideLinks/About/aboutArithmetic.html[107X) ,                            4
  ([7X../www/SideLinks/About/aboutPerformance.html[107X) ,                           5
  ([7X../www/SideLinks/About/aboutPersistent.html[107X) ,                            6
  ([7X../www/SideLinks/About/aboutPoincareSeries.html[107X) ,                        7
  ([7X../www/SideLinks/About/aboutDefinitions.html[107X) ,                           8
  ([7X../www/SideLinks/About/aboutExtensions.html[107X) ,                            9
  ([7X../www/SideLinks/About/aboutTorAndExt.html[107X) [133X
  
  
  [1X2.4 [33X[0;0YCohomology rings[133X[101X
  
  [1X2.4-1 AreIsomorphicGradedAlgebras[101X
  
  [33X[1;0Y[29X[2XAreIsomorphicGradedAlgebras[102X( [3XA[103X, [3XB[103X ) [32X function[133X
  
  [33X[0;0YInputs  two  freely  presented  graded algebras [22XA= F[x_1, ..., x_m]/I[122X and [22XB=
  F[y_1,  ...,  y_n]/J[122X  and  returns  [12Xtrue[112X  if  they are isomorphic, and [12Xfalse[112X
  otherwise. This function was implemented by Paul Smith.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X2.4-2 HAPDerivation[101X
  
  [33X[1;0Y[29X[2XHAPDerivation[102X( [3XR[103X, [3XI[103X, [3XL[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  polynomial  ring [22XR= F[x_1,...,x_m][122X over a field [22XF[122X together with a
  list  [22XI[122X  of  generators  for an ideal in [22XR[122X and a list [22XL=[y_1,...,y_m]⊂ R[122X. It
  returns  the  derivation  [22Xd:  E  →  E[122X  for [22XE=R/I[122X defined by [22Xd(x_i)=y_i[122X. This
  function was written by Paul Smith. It uses the Singular commutative algebra
  package.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X2.4-3 HilbertPoincareSeries[101X
  
  [33X[1;0Y[29X[2XHilbertPoincareSeries[102X( [3XE[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  presentation  [22XE= F[x_1,...,x_m]/I[122X of a graded algebra and returns
  its  Hilbert–Poincaré  series.  This  function was written by Paul Smith and
  uses  the  Singular commutative algebra package. It is essentially a wrapper
  for Singular's Hilbert–Poincaré series.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X2.4-4 HomologyOfDerivation[101X
  
  [33X[1;0Y[29X[2XHomologyOfDerivation[102X( [3Xd[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  derivation  [22Xd:  E → E[122X on a quotient [22XE=R/I[122X of a polynomial ring [22XR=
  F[x_1,...,x_m][122X  over  a  field  [22XF[122X.  It  returns  a list [22X[S,J,h][122X where [22XS[122X is a
  polynomial  ring  and  [22XJ[122X is a list of generators for an ideal in [22XS[122X such that
  there is an isomorphism [22Xα: S/J → ker d/ im~ d[122X. This isomorphism lifts to the
  ring  homomorphism [22Xh: S → ker d[122X. This function was written by Paul Smith. It
  uses the Singular commutative algebra package.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X2.4-5 IntegralCohomologyGenerators[101X
  
  [33X[1;0Y[29X[2XIntegralCohomologyGenerators[102X( [3XR[103X, [3Xn[103X ) [32X function[133X
  
  [33X[0;0YInputs  at  least [22Xn+1[122X terms of a free [22XZG[122X-resolution of [22XZ[122X and the integer [22Xn ≥
  1[122X.  It  returns  a  minimal  list  of cohomology classes in [22XH^n(G, Z)[122X which,
  together  with  all cup products of lower degree classes, generate the group
  [22XH^n(G,  Z)[122X  .  (Let  [22Xa_i[122X  be the [22Xi[122X-th canonical generator of the [22Xd[122X-generator
  abelian  group  [22XH^n(G,Z)[122X.  The  cohomology  class  [22Xn_1a_1  +  ... +n_da_d[122X is
  represented by the integer vector [22Xu=(n_1, ..., n_d)[122X. )[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X2.4-6 LHSSpectralSequence[101X
  
  [33X[1;0Y[29X[2XLHSSpectralSequence[102X( [3XG[103X, [3XN[103X, [3Xr[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  finite  [22X2[122X-group  [22XG[122X,  and  normal  subgroup [22XN[122X and an integer [22Xr[122X. It
  returns  a  list  of length [22Xr[122X whose [22Xi[122X-th term is a presentation for the [22Xi[122X-th
  page  of  the  Lyndon-Hochschild-Serre  spectral sequence. This function was
  written by Paul Smith. It uses the Singular commutative algebra package.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X2.4-7 LHSSpectralSequenceLastSheet[101X
  
  [33X[1;0Y[29X[2XLHSSpectralSequenceLastSheet[102X( [3XG[103X, [3XN[103X ) [32X function[133X
  
  [33X[0;0YInputs a finite [22X2[122X-group [22XG[122X and normal subgroup [22XN[122X. It returns presentation for
  the [22XE_∞[122X page of the Lyndon-Hochschild-Serre spectral sequence. This function
  was written by Paul Smith. It uses the Singular commutative algebra package.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X2.4-8 ModPCohomologyGenerators[101X
  
  [33X[1;0Y[29X[2XModPCohomologyGenerators[102X( [3XG[103X, [3Xn[103X ) [32X function[133X
  [33X[1;0Y[29X[2XModPCohomologyGenerators[102X( [3XR[103X ) [32X function[133X
  
  [33X[0;0YInputs  either  a  [22Xp[122X-group  [22XG[122X and positive integer [22Xn[122X, or else [22Xn+1[122X terms of a
  minimal  [22XFG[122X-resolution  [22XR[122X  of  the  field [22XF[122X of [22Xp[122X elements. It returns a pair
  whose  first  entry  is  a  minimal  list  of homogeneous generators for the
  cohomology  ring  [22XA=H^∗(G,  F)[122X modulo all elements in degree greater than [22Xn[122X.
  The  second  entry  of  the  pair is a function [12Xdeg[112X which, when applied to a
  minimal  generator,  yields  its degree. WARNING: the following rule must be
  applied  when multiplying generators [22Xx_i[122X together. Only products of the form
  [22Xx_1*(x_2*(x_3*(x_4*...)))[122X  with  [22Xdeg(x_i)  ≤  deg(x_i+1)[122X  should be computed
  (since  the [22Xx_i[122X belong to a structure constant algebra with only a partially
  defined structure constants table).[133X
  
  [33X[0;0Y[12XExamples:[112X 1 ([7X../www/SideLinks/About/aboutIntro.html[107X) [133X
  
  [1X2.4-9 ModPCohomologyRing[101X
  
  [33X[1;0Y[29X[2XModPCohomologyRing[102X( [3XR[103X ) [32X function[133X
  [33X[1;0Y[29X[2XModPCohomologyRing[102X( [3XR[103X, [3Xlevel[103X ) [32X function[133X
  [33X[1;0Y[29X[2XModPCohomologyRing[102X( [3XG[103X, [3Xn[103X ) [32X function[133X
  [33X[1;0Y[29X[2XModPCohomologyRing[102X( [3XG[103X, [3Xn[103X, [3Xlevel[103X ) [32X function[133X
  
  [33X[0;0YInputs  either  a  [22Xp[122X-group  [22XG[122X  and  positive integer [22Xn[122X, or else [22Xn[122X terms of a
  minimal  [22XFG[122X-resolution  [22XR[122X  of  the  field  [22XF[122X  of  [22Xp[122X elements. It returns the
  cohomology  ring  [22XA=H^∗(G,  F)[122X modulo all elements in degree greater than [22Xn[122X.
  The  ring  is  returned  as  a  structure  constant algebra [22XA[122X. The ring [22XA[122X is
  graded.  It  has  a component [12XA!.degree(x)[112X which is a function returning the
  degree  of  each  (homogeneous)  element  [22Xx[122X  in  [12XGeneratorsOfAlgebra(A)[112X.  An
  optional input variable [22X"level"[122X can be set to one of the strings [22X"medium"[122X or
  [22X"high"[122X.  These  settings  determine parameters in the algorithm. The default
  setting  is  [22X"medium"[122X.  When [22X"level"[122X is set to [22X"high"[122X the ring [22XA[122X is returned
  with  a  component  [12XA!.niceBasis[112X. This component is a pair [22X[Coeff,Bas][122X. Here
  [22XBas[122X is a list of integer lists; a "nice" basis for the vector space [22XA[122X can be
  constructed  using  the command [12XList(Bas,x->Product(List(x,i->Basis(A)[i]))[112X.
  The  coefficients  of  the canonical basis element [12XBasis(A)[i][112X are stored as
  [12XCoeff[i][112X.  If the ring [22XA[122X is computed using the setting [22X"level"="medium"[122X then
  the   component   [12XA!.niceBasis[112X   can   be  added  to  [22XA[122X  using  the  command
  [12XA:=ModPCohomologyRing_part_2(A)[112X.[133X
  
  [33X[0;0Y[12XExamples:[112X             1             ([7X../tutorial/chap8.html[107X) ,             2
  ([7X../www/SideLinks/About/aboutModPRings.html[107X) [133X
  
  [1X2.4-10 Mod2CohomologyRingPresentation[101X
  
  [33X[1;0Y[29X[2XMod2CohomologyRingPresentation[102X( [3XG[103X ) [32X function[133X
  [33X[1;0Y[29X[2XMod2CohomologyRingPresentation[102X( [3XG[103X, [3Xn[103X ) [32X function[133X
  [33X[1;0Y[29X[2XMod2CohomologyRingPresentation[102X( [3XA[103X ) [32X function[133X
  [33X[1;0Y[29X[2XMod2CohomologyRingPresentation[102X( [3XR[103X ) [32X function[133X
  
  [33X[0;0YWhen  applied to a finite [22X2[122X-group [22XG[122X this function returns a presentation for
  the  mod-[22X2[122X  cohomology  ring [22XH^∗(G, F)[122X. The Lyndon-Hochschild-Serre spectral
  sequence  is  used  to  prove  that  the  presentation is complete. When the
  function is applied to a [22X2[122X-group G and positive integer [22Xn[122X the function first
  constructs  [22Xn+1[122X  terms  of  a  free  [22XFG[122X-resolution  [22XR[122X,  then  constructs the
  finite-dimensional  graded  algebra [22XA=H^(∗ ≤ n)(G, F)[122X, and finally uses [22XA[122X to
  approximate  a  presentation  for  [22XH^*(G, F)[122X. For "sufficiently large" [22Xn[122X the
  approximation  will  be a correct presentation for [22XH^∗(G, F)[122X. Alternatively,
  the  function  can  be applied directly to either the resolution [22XR[122X or graded
  algebra  [22XA[122X.  This  function  was written by Paul Smith. It uses the Singular
  commutative  algebra  package to handle the Lyndon-Hochschild-Serre spectral
  sequence.[133X
  
  [33X[0;0Y[12XExamples:[112X             1             ([7X../tutorial/chap8.html[107X) ,             2
  ([7X../www/SideLinks/About/aboutIntro.html[107X) [133X
  
  
  [1X2.5 [33X[0;0YGroup Invariants[133X[101X
  
  [1X2.5-1 GroupCohomology[101X
  
  [33X[1;0Y[29X[2XGroupCohomology[102X( [3XG[103X, [3Xk[103X ) [32X function[133X
  [33X[1;0Y[29X[2XGroupCohomology[102X( [3XG[103X, [3Xk[103X, [3Xp[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  group [22XG[122X and integer [22Xk ≥ 0[122X. The group [22XG[122X should either be finite or
  else lie in one of a range of classes of infinite groups (such as nilpotent,
  crystallographic,  Artin  etc.).  The  function  returns the list of abelian
  invariants of [22XH^k(G, Z)[122X.[133X
  
  [33X[0;0YIf  a prime [22Xp[122X is given as an optional third input variable then the function
  returns  the  list  of  abelian invariants of [22XH^k(G, Z_p)[122X. In this case each
  abelian  invariant will be equal to [22Xp[122X and the length of the list will be the
  dimension of the vector space [22XH^k(G, Z_p)[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X 1 ([7X../tutorial/chap7.html[107X) [133X
  
  [1X2.5-2 GroupHomology[101X
  
  [33X[1;0Y[29X[2XGroupHomology[102X( [3XG[103X, [3Xk[103X ) [32X function[133X
  [33X[1;0Y[29X[2XGroupHomology[102X( [3XG[103X, [3Xk[103X, [3Xp[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  group [22XG[122X and integer [22Xk ≥ 0[122X. The group [22XG[122X should either be finite or
  else lie in one of a range of classes of infinite groups (such as nilpotent,
  crystallographic,  Artin  etc.).  The  function  returns the list of abelian
  invariants of [22XH_k(G, Z)[122X.[133X
  
  [33X[0;0YIf  a prime [22Xp[122X is given as an optional third input variable then the function
  returns  the  list  of  abelian invariants of [22XH_k(G, Z_p)[122X. In this case each
  abelian  invariant will be equal to [22Xp[122X and the length of the list will be the
  dimension of the vector space [22XH_k(G, Z_p)[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X             1             ([7X../tutorial/chap7.html[107X) ,             2
  ([7X../www/SideLinks/About/aboutLinks.html[107X) ,                                 3
  ([7X../www/SideLinks/About/aboutParallel.html[107X) ,                              4
  ([7X../www/SideLinks/About/aboutRosenbergerMonster.html[107X) ,                    5
  ([7X../www/SideLinks/About/aboutFunctorial.html[107X) ,                            6
  ([7X../www/SideLinks/About/aboutIntro.html[107X) ,                                 7
  ([7X../www/SideLinks/About/aboutTensorSquare.html[107X) ,                          8
  ([7X../www/SideLinks/About/aboutLie.html[107X) [133X
  
  [1X2.5-3 PrimePartDerivedFunctor[101X
  
  [33X[1;0Y[29X[2XPrimePartDerivedFunctor[102X( [3XG[103X, [3XR[103X, [3XA[103X, [3Xk[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  group  [22XG[122X,  an  integer  [22Xk  ≥  0[122X,  at  least  [22Xk+1[122X  terms of a free
  [22XZP[122X-resolution  of  [22XZ[122X  for  [22XP[122X  a  Sylow  [22Xp[122X-subgroup  of [22XG[122X. A function such as
  [12XA=TensorWithIntegers[112X   is  also  entered.  The  abelian  invariants  of  the
  [22Xp[122X-primary  part  [22XH_k(G,A)_(p)[122X  of  the  homology  with  coefficients in [22XA[122X is
  returned.[133X
  
  [33X[0;0Y[12XExamples:[112X             1             ([7X../tutorial/chap7.html[107X) ,             2
  ([7X../www/SideLinks/About/aboutPerformance.html[107X) ,                           3
  ([7X../www/SideLinks/About/aboutFunctorial.html[107X) ,                            4
  ([7X../www/SideLinks/About/aboutTwistedCoefficients.html[107X) [133X
  
  [1X2.5-4 PoincareSeries[101X
  
  [33X[1;0Y[29X[2XPoincareSeries[102X( [3XG[103X, [3Xn[103X ) [32X function[133X
  [33X[1;0Y[29X[2XPoincareSeries[102X( [3XG[103X ) [32X function[133X
  [33X[1;0Y[29X[2XPoincareSeries[102X( [3XR[103X, [3Xn[103X ) [32X function[133X
  [33X[1;0Y[29X[2XPoincareSeries[102X( [3XL[103X, [3Xn[103X ) [32X function[133X
  
  [33X[0;0YInputs a finite [22Xp[122X-group [22XG[122X and a positive integer [22Xn[122X. It returns a quotient of
  polynomials  [22Xf(x)=P(x)/Q(x)[122X  whose expansion has coefficient of [22Xx^k[122X equal to
  the  rank  of the vector space [22XH_k(G, F_p)[122X for all [22Xk[122X in the range [22X1 ≤ k ≤ n[122X.
  (The  second input variable can be omitted, in which case the function tries
  to   choose   a   `reasonable'  value  for  [22Xn[122X.  For  2-groups  the  function
  [12XPoincareSeriesLHS(G)[112X  can  be used to produce an [22Xf(x)[122X that is correct in all
  degrees.)  In  place  of the group [22XG[122X the function can also input (at least [22Xn[122X
  terms of) a minimal mod-[22Xp[122X resolution [22XR[122X for [22XG[122X. Alternatively, the first input
  variable can be a list [22XL[122X of integers. In this case the coefficient of [22Xx^k[122X in
  [22Xf(x)[122X is equal to the [22X(k+1)[122Xst term in the list.[133X
  
  [33X[0;0Y[12XExamples:[112X   1  ([7X../tutorial/chap7.html[107X) ,  2  ([7X../tutorial/chap11.html[107X) ,  3
  ([7X../www/SideLinks/About/aboutArithmetic.html[107X) ,                            4
  ([7X../www/SideLinks/About/aboutModPRings.html[107X) ,                             5
  ([7X../www/SideLinks/About/aboutPoincareSeries.html[107X) ,                        6
  ([7X../www/SideLinks/About/aboutPoincareSeriesII.html[107X) ,                      7
  ([7X../www/SideLinks/About/aboutIntro.html[107X) ,                                 8
  ([7X../www/SideLinks/About/aboutTorAndExt.html[107X) [133X
  
  [1X2.5-5 PoincareSeries[101X
  
  [33X[1;0Y[29X[2XPoincareSeries[102X( [3XG[103X, [3Xn[103X ) [32X function[133X
  [33X[1;0Y[29X[2XPoincareSeries[102X( [3XG[103X ) [32X function[133X
  [33X[1;0Y[29X[2XPoincareSeries[102X( [3XR[103X, [3Xn[103X ) [32X function[133X
  [33X[1;0Y[29X[2XPoincareSeries[102X( [3XL[103X, [3Xn[103X ) [32X function[133X
  
  [33X[0;0YInputs a finite [22Xp[122X-group [22XG[122X and a positive integer [22Xn[122X. It returns a quotient of
  polynomials  [22Xf(x)=P(x)/Q(x)[122X  whose expansion has coefficient of [22Xx^k[122X equal to
  the  rank  of the vector space [22XH_k(G, F_p)[122X for all [22Xk[122X in the range [22X1 ≤ k ≤ n[122X.
  (The  second input variable can be omitted, in which case the function tries
  to   choose   a   `reasonable'  value  for  [22Xn[122X.  For  2-groups  the  function
  [12XPoincareSeriesLHS(G)[112X  can  be used to produce an [22Xf(x)[122X that is correct in all
  degrees.)  In  place  of the group [22XG[122X the function can also input (at least [22Xn[122X
  terms of) a minimal mod-[22Xp[122X resolution [22XR[122X for [22XG[122X. Alternatively, the first input
  variable can be a list [22XL[122X of integers. In this case the coefficient of [22Xx^k[122X in
  [22Xf(x)[122X is equal to the [22X(k+1)[122Xst term in the list.[133X
  
  [33X[0;0Y[12XExamples:[112X   1  ([7X../tutorial/chap7.html[107X) ,  2  ([7X../tutorial/chap11.html[107X) ,  3
  ([7X../www/SideLinks/About/aboutArithmetic.html[107X) ,                            4
  ([7X../www/SideLinks/About/aboutModPRings.html[107X) ,                             5
  ([7X../www/SideLinks/About/aboutPoincareSeries.html[107X) ,                        6
  ([7X../www/SideLinks/About/aboutPoincareSeriesII.html[107X) ,                      7
  ([7X../www/SideLinks/About/aboutIntro.html[107X) ,                                 8
  ([7X../www/SideLinks/About/aboutTorAndExt.html[107X) [133X
  
  [1X2.5-6 RankHomologyPGroup[101X
  
  [33X[1;0Y[29X[2XRankHomologyPGroup[102X( [3XG[103X, [3XP[103X, [3Xn[103X ) [32X function[133X
  
  [33X[0;0YInputs  a  [22Xp[122X-group [22XG[122X, a rational function [22XP[122X representing the Poincaré series
  of  the  mod-[22Xp[122X  cohomology  of  [22XG[122X  and  a positive integer [22Xn[122X. It returns the
  minimum number of generators for the finite abelian [22Xp[122X-group [22XH_n(G, Z)[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X 1 ([7X../tutorial/chap7.html[107X) [133X
  
  
  [1X2.6 [33X[0;0Y[22XF_p[122X[101X[1X-modules[133X[101X
  
  [1X2.6-1 GroupAlgebraAsFpGModule[101X
  
  [33X[1;0Y[29X[2XGroupAlgebraAsFpGModule[102X( [3XG[103X ) [32X function[133X
  
  [33X[0;0YInputs  a finite [22Xp[122X-group [22XG[122X and returns the modular group algebra [22XF_pG[122X in the
  form of an [22XF_pG[122X-module.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X2.6-2 Radical[101X
  
  [33X[1;0Y[29X[2XRadical[102X( [3XM[103X ) [32X function[133X
  
  [33X[0;0YInputs an [22XF_pG[122X-module and returns its radical.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
  [1X2.6-3 RadicalSeries[101X
  
  [33X[1;0Y[29X[2XRadicalSeries[102X( [3XM[103X ) [32X function[133X
  [33X[1;0Y[29X[2XRadicalSeries[102X( [3XR[103X ) [32X function[133X
  
  [33X[0;0YInputs  an  [22XF_pG[122X-module  [22XM[122X  and  returns  its  radical  series  as a list of
  [22XF_pG[122X-modules.[133X
  
  [33X[0;0YInputs  a  free  [22XF_pG[122X-resolution  R and returns the filtered chain complex [22X⋯
  Rad_2( F_pG)R ≤ Rad_1( F_pG)R ≤ R[122X.[133X
  
  [33X[0;0Y[12XExamples:[112X[133X
  
