


There
is
much
interest
in
the
ring
structure
of
the
mod p cohomology H^{*}(G,Z_{p})
of
pgroups
G.
At present these HAP functions work differently to those for integral cohomology in that they rely heavily on matrix algebra and minimal resolutions. More work needs to be done on improving the effeciency of these functions. 

Let
G be the group G=SmallGroup(64,135) in the small groups
library. The following HAP commands compute the ring H^{*}(G,Z_{p})
modulo
all
elements
of
degree
greater
than
10.
The
ring is returned as
a structure constant algebra A over the field of two elements. 

gap>
R:=ResolutionPrimePowerGroup(SmallGroup(64,135),10); Resolution of length 10 in characteristic 2 for <pc group of size 64 with 6 generators> . No contracting homotopy available. A partial contracting homotopy is available. gap> A:=ModPCohomologyRing(R); <algebra of dimension 187 over GF(2)> 

The following additional command shows that the ring H^{*}(G,Z_{p}) is generated by three elements in degree 1, two in degree 2, one in degree 3, one in degree 5, one in degree 8 and possibly some generators of degree greater than 10.  
gap>
S:=List(ModPRingGenerators(A),A!.degree); [ 0, 1, 1, 1, 2, 2, 3, 5, 8 ] 

The Poincare series
for the
cohomology ring H^{*}(G,Z_{p}) is the infinite series a_{0} + a_{1}x +
a_{2}x^{2} + a_{3}x^{3} + ...
where a_{k }is by definition the dimension of the vector space H^{k}(G,Z_{k}) . The Poincare function is a rational function P(x)/Q(x) equal to the Poincare series. The following commands compute the Poincare function for the Sylow 2subgroup of the Mathieu group M_{12}. They rely on an algorithm which seems unlikely to produce a wrong answer but for which we have no proof that the answer is always correct. 

PoincareSeries(MathieuGroup(SylowSubgroup(MathieuGroup(12),2)); (1)/(x^3+3*x^23*x+1) 

Poincare series for groups of order 32 and most of the groups of order 64 are listed here.  
Steenrod Algebra Given a finite pgroup G, the
short exact sequence
Z >> Z >Z_{p}
of ZGmodules induces cohomology connecting homomorphisms b:H^{n}(G,Z_{p}) > H^{n+1}(G,Z_{p}) for each n. The collection of all these connecting homomorphisms is known as the Bockstein homomorphism b:H^{*}(G,Z_p) > H^{*}(G,Z_p). The following commands compute the Bockstein homomorphism on the generators of the ring H^{*}(G,Z_{p}), where p=3 and G=SmallGroup(81,4) is the fourth group of order 81 in GAP's library of small groups. 

gap>
G:=SmallGroup(81,4);; gap> A:=ModPSteenrodAlgebra(G,8);; gap> List(ModPRingGenerators(A),x>Bockstein(A,x)); [ 0*v.1, 0*v.1, v.5, 0*v.1, (Z(3))*v.7+v.8+(Z(3))*v.9 ] 

The
Bockstein together with the steenrod squares Sq^{k}:H^{n}(G,Z_{p})
>
H^{n+k}(G,Z_{p}) for p=2, or steenrod powers P^{k}:H^{n}(G,Z_{p})
>
H^{n+2k(p1)}(G,Z_{p}) for p>2, generate the
Steenrod
algebra. The Steenrod squares and powers are not yet fully implemented. However, the following commands compute the Steenrod square Sq^{1 }on the generators of the ring H^{*}(G,Z_{2}) where G=SmallGroup(32,8) is the eighth group of order 32 in GAP's library of small groups. It is known that all mod2 cohomology ring generators for this G lie in degrees at most 8, so only the first nine degrees of the ring H^{*}(G,Z_{2}) are computed. (This is a bit of a cheat because Sq^{1} is equal to the Bockstein homomorphism for p=2.) The higher squares Sq^{n} are only partially implemented and return fail in cases where they are not yet implemented. 

gap>
G:=SmallGroup(32,8);; gap> N:=9;; gap> R:=ResolutionPrimePowerGroup(G,N+1);; gap> S:=ResolutionNormalSeries([G,Center(G)],N+1);; gap> A:=Mod2SteenrodAlgebra(G,N,R,S);; gap> List(ModPRingGenerators(A),x>Sq(A,1,x)); [ 0*v.1, 0*v.1, v.4+v.5+v.6, 0*v.1, v.7+v.9+v.10, v.12, v.20, v.23+v.25, v.28, v.39 ] 

