### 2 Basic functionality for ZG-resolutions and group cohomology

This page covers the functions used in chapter 3 of the book An Invitation to Computational Homotopy.

#### 2.1 Resolutions

##### 2.1-1 EquivariantChainMap
 ‣ EquivariantChainMap( R, S, f ) ( function )

Inputs a free ZG-resolution R of Z, a free ZQ-resolution S of Z, and a group homomorphism f: G → Q. It returns the induced f-equivariant chain map F: R → S.

1 , 2 , 3

##### 2.1-2 FreeGResolution
 ‣ FreeGResolution( P, n ) ( function )

Inputs a non-free $\mathbb ZG$-resolution $P_\ast$ and a positive integer n. It attempts to return n terms of a free ZG-resolution of Z. However, the stabilizer groups in the non-free resolution must be such that HAP can construct free resolutions with contracting homotopies for them.

The contracting homotopy on the resolution was implemented by Bui Anh Tuan.

1 , 2 , 3 , 4 , 5 , 6

##### 2.1-3 ResolutionBieberbachGroup
 ‣ ResolutionBieberbachGroup( G ) ( function )
 ‣ ResolutionBieberbachGroup( G, v ) ( function )

Inputs a torsion free crystallographic group G, also known as a Bieberbach group, represented using as in the GAP package Cryst. It also optionally inputs a choice of vector v in the Euclidean space R^n on which G acts freely. The function returns n+1 terms of the free ZG-resolution of Z arising as the cellular chain complex of the tessellation of R^n by the Dirichlet-Voronoi fundamental domain determined by v. No contracting homotopy is returned with the resolution.

This function is part of the HAPcryst package written by Marc Roeder and thus requires the HAPcryst package to be loaded.

The function requires the use of Polymake software.

##### 2.1-4 ResolutionCubicalCrystGroup
 ‣ ResolutionCubicalCrystGroup( G, k ) ( function )

Inputs a crystallographic group G represented using as in the GAP package Cryst together with an integer k ge 1. The function tries to find a cubical fundamental domain in the Euclidean space R^n on which G acts. If it succeeds it uses this domain to return k+1 terms of a free ZG-resolution of Z.

This function was written by Bui Anh Tuan.

##### 2.1-5 ResolutionFiniteGroup
 ‣ ResolutionFiniteGroup( G, k ) ( function )

Inputs a finite group G and an integer k ge 1. It returns k+1 terms of a free ZG-resolution of Z.

1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15

##### 2.1-6 ResolutionNilpotentGroup
 ‣ ResolutionNilpotentGroup( G, k ) ( function )

Inputs a nilpotent group G (which can be infinite) and an integer k ge 1. It returns k+1 terms of a free ZG-resolution of Z.

1 , 2 , 3

##### 2.1-7 ResolutionNormalSeries
 ‣ ResolutionNormalSeries( L, k ) ( function )

##### 2.4-5 IntegralCohomologyGenerators
 ‣ IntegralCohomologyGenerators( R, n ) ( function )

Inputs at least n+1 terms of a free ZG-resolution of Z and the integer n ge 1. It returns a minimal list of cohomology classes in H^n(G, Z) which, together with all cup products of lower degree classes, generate the group H^n(G, Z) . (Let a_i be the i-th canonical generator of the d-generator abelian group H^n(G,Z). The cohomology class n_1a_1 + ... +n_da_d is represented by the integer vector u=(n_1, ..., n_d). )

##### 2.4-6 LHSSpectralSequence
 ‣ LHSSpectralSequence( G, N, r ) ( function )

Inputs a finite 2-group G, and normal subgroup N and an integer r. It returns a list of length r whose i-th term is a presentation for the i-th page of the Lyndon-Hochschild-Serre spectral sequence. This function was written by Paul Smith. It uses the Singular commutative algebra package.

##### 2.4-7 LHSSpectralSequenceLastSheet
 ‣ LHSSpectralSequenceLastSheet( G, N ) ( function )

Inputs a finite 2-group G and normal subgroup N. It returns presentation for the E_∞ page of the Lyndon-Hochschild-Serre spectral sequence. This function was written by Paul Smith. It uses the Singular commutative algebra package.

##### 2.4-8 ModPCohomologyGenerators
 ‣ ModPCohomologyGenerators( G, n ) ( function )
 ‣ ModPCohomologyGenerators( R ) ( function )

Inputs either a p-group G and positive integer n, or else n+1 terms of a minimal FG-resolution R of the field F of p elements. It returns a pair whose first entry is a minimal list of homogeneous generators for the cohomology ring A=H^∗(G, F) modulo all elements in degree greater than n. The second entry of the pair is a function which, when applied to a minimal generator, yields its degree. WARNING: the following rule must be applied when multiplying generators x_i together. Only products of the form x_1*(x_2*(x_3*(x_4*...))) with deg(x_i) le deg(x_i+1) should be computed (since the x_i belong to a structure constant algebra with only a partially defined structure constants table).

1

##### 2.4-9 ModPCohomologyRing
 ‣ ModPCohomologyRing( R ) ( function )
 ‣ ModPCohomologyRing( R, level ) ( function )
 ‣ ModPCohomologyRing( G, n ) ( function )
 ‣ ModPCohomologyRing( G, n, level ) ( function )

Inputs either a p-group G and positive integer n, or else n terms of a minimal FG-resolution R of the field F of p elements. It returns the cohomology ring A=H^∗(G, F) modulo all elements in degree greater than n. The ring is returned as a structure constant algebra A. The ring A is graded. It has a component which is a function returning the degree of each (homogeneous) element x in . An optional input variable "level" can be set to one of the strings "medium" or "high". These settings determine parameters in the algorithm. The default setting is "medium". When "level" is set to "high" the ring A is returned with a component . This component is a pair [Coeff,Bas]. Here Bas is a list of integer lists; a "nice" basis for the vector space A can be constructed using the command . The coefficients of the canonical basis element are stored as . If the ring A is computed using the setting "level"="medium" then the component can be added to A using the command .

1

##### 2.4-10 Mod2CohomologyRingPresentation
 ‣ Mod2CohomologyRingPresentation( G ) ( function )
 ‣ Mod2CohomologyRingPresentation( G, n ) ( function )
 ‣ Mod2CohomologyRingPresentation( A ) ( function )
 ‣ Mod2CohomologyRingPresentation( R ) ( function )

When applied to a finite 2-group G this function returns a presentation for the mod-2 cohomology ring H^∗(G, F). The Lyndon-Hochschild-Serre spectral sequence is used to prove that the presentation is complete. When the function is applied to a 2-group G and positive integer n the function first constructs n+1 terms of a free FG-resolution R, then constructs the finite-dimensional graded algebra A=H^(∗ le n)(G, F), and finally uses A to approximate a presentation for H^*(G, F). For "sufficiently large" n the approximation will be a correct presentation for H^∗(G, F). Alternatively, the function can be applied directly to either the resolution R or graded algebra A. This function was written by Paul Smith. It uses the Singular commutative algebra package to handle the Lyndon-Hochschild-Serre spectral sequence.

1 , 2

#### 2.5 Group Invariants

##### 2.5-1 GroupCohomology
 ‣ GroupCohomology( G, k ) ( function )
 ‣ GroupCohomology( G, k, p ) ( function )

Inputs a group G and integer k ge 0. The group G 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 H^k(G, Z).

If a prime p is given as an optional third input variable then the function returns the list of abelian invariants of H^k(G, Z_p). In this case each abelian invariant will be equal to p and the length of the list will be the dimension of the vector space H^k(G, Z_p).

1

##### 2.5-2 GroupHomology
 ‣ GroupHomology( G, k ) ( function )
 ‣ GroupHomology( G, k, p ) ( function )

Inputs a group G and integer k ge 0. The group G 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 H_k(G, Z).

If a prime p is given as an optional third input variable then the function returns the list of abelian invariants of H_k(G, Z_p). In this case each abelian invariant will be equal to p and the length of the list will be the dimension of the vector space H_k(G, Z_p).

1 , 2 , 3 , 4 , 5 , 6 , 7 , 8

##### 2.5-3 PrimePartDerivedFunctor
 ‣ PrimePartDerivedFunctor( G, R, A, k ) ( function )

Inputs a group G, an integer k ge 0, at least k+1 terms of a free ZP-resolution of Z for P a Sylow p-subgroup of G. A function such as is also entered. The abelian invariants of the p-primary part H_k(G,A)_(p) of the homology with coefficients in A is returned.

1 , 2 , 3

##### 2.5-4 PoincareSeries
 ‣ PoincareSeries( G, n ) ( function )
 ‣ PoincareSeries( G ) ( function )
 ‣ PoincareSeries( R, n ) ( function )
 ‣ PoincareSeries( L, n ) ( function )

Inputs a finite p-group G and a positive integer n. It returns a quotient of polynomials f(x)=P(x)/Q(x) whose expansion has coefficient of x^k equal to the rank of the vector space H_k(G, F_p) for all k in the range 1 le k le n. (The second input variable can be omitted, in which case the function tries to choose a reasonable' value for n. For 2-groups the function can be used to produce an f(x) that is correct in all degrees.) In place of the group G the function can also input (at least n terms of) a minimal mod-p resolution R for G. Alternatively, the first input variable can be a list L of integers. In this case the coefficient of x^k in f(x) is equal to the (k+1)st term in the list.

1 , 2 , 3 , 4 , 5 , 6 , 7

##### 2.5-5 PoincareSeries
 ‣ PoincareSeries( G, n ) ( function )
 ‣ PoincareSeries( G ) ( function )
 ‣ PoincareSeries( R, n ) ( function )
 ‣ PoincareSeries( L, n ) ( function )

Inputs a finite p-group G and a positive integer n. It returns a quotient of polynomials f(x)=P(x)/Q(x) whose expansion has coefficient of x^k equal to the rank of the vector space H_k(G, F_p) for all k in the range 1 le k le n. (The second input variable can be omitted, in which case the function tries to choose a reasonable' value for n. For 2-groups the function can be used to produce an f(x) that is correct in all degrees.) In place of the group G the function can also input (at least n terms of) a minimal mod-p resolution R for G. Alternatively, the first input variable can be a list L of integers. In this case the coefficient of x^k in f(x) is equal to the (k+1)st term in the list.

1 , 2 , 3 , 4 , 5 , 6 , 7

##### 2.5-6 RankHomologyPGroup
 ‣ RankHomologyPGroup( G, P, n ) ( function )

Inputs a p-group G, a rational function P representing the Poincar\'e series of the mod-p cohomology of G and a positive integer n. It returns the minimum number of generators for the finite abelian p-group H_n(G, Z).

#### 2.6 F_p-modules

##### 2.6-1 GroupAlgebraAsFpGModule
 ‣ GroupAlgebraAsFpGModule( G ) ( function )

Inputs a finite p-group G and returns the modular group algebra F_pG in the form of an F_pG-module.

 ‣ Radical( M ) ( function )

Inputs an F_pG-module and returns its radical.

 ‣ RadicalSeries( M ) ( function )
 ‣ RadicalSeries( R ) ( function )