Mod-&p; cohomology rings and their presentation

The mod &p; cohomology ring of a &p;-group &G; given a field \mathbb{F} = GF(p) is given by H^*(G, \mathbb{F}) = \bigoplus_{i=0}^\infty H^i(G, \mathbb{F}) H^*(G, F) = H^0(G, F) + H^1(G, F) + H^2(G, F) + ... Since it is also a vector space, any such ring is also an algebra. This has a presentation as a quotient ring of: H^*(G, \mathbb{F}) = \frac{\mathbb{F}[x_1, x_2, \ldots, x_n]}{\langle I_1, I_2, \ldots, I_m \rangle} H^*(G, F) = F[x_1, x_2, ..., x_n] / <I_1, I_2, ..., I_m> where the polynomial ring indeterminates x_i each have an associated degree d_i and the I_j are relations which together generate an ideal in the ring.

Representing mod-&p; cohomology rings

There is no new datatype for representing cohomology rings. Instead, &HAP; represents rings with degree no larger than n as a structure constant algebra . To the record of the algebra A, &HAP; adds a new component, A!.degree(e), a function which returns the degree of an algebra element e.

&HAPprime; adds some attributes to such an algebra, providing information on the basis and generators of the algebra. A ring presentation for this algebra can also be computed, and this is also stored as an attribute. The ring presentation is represented simply as a polynomial ring, a set of relations, and a list of integers corresponding to the degrees of the ring indeterminates.
Construction function
<#Include Label="PresentationOfGradedStructureConstantAlgebra_DTmanRings_Con"> <#Include Label="LHSSpectralSequence_DTmanRings_Con">
Data access functions
<#Include Label="ModPRingGeneratorDegrees_DTmanRings_Dat"> <#Include Label="ModPRingNiceBasis_DTmanRings_Dat"> <#Include Label="ModPRingNiceBasisAsPolynomials_DTmanRings_Dat"> <#Include Label="ModPRingBasisAsPolynomials_DTmanRings_Dat">

Example: Mod-&p; cohomology rings

As an example, we use the &HAP; function to compute the mod-&p; cohomology ring for the quaternion group Q_8 up to and including degree five. We can display its generators and basis and the information to construct a 'nice basis' gap> A := ModPCohomologyRing(SmallGroup(8, 4), 5); <algebra of dimension 9 over GF(2)> gap> Display(Basis(A)); CanonicalBasis( Algebra( GF(2), [ v.1, v.2, v.3, v.4, v.5, v.6, v.7, v.8, v.9 ] ) ) gap> ModPRingGenerators(A); [ v.1, v.2, v.3, v.7 ] gap> ModPRingGeneratorDegrees(A); [ 0, 1, 1, 4 ] gap> ModPRingNiceBasis(A); [ [ [ 1, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 1, 0 ] ], [ [ 1, 1, 1 ], [ 1, 1, 2 ], [ 1, 1, 3 ], [ 1, 1, 7 ], [ 1, 2, 2 ], [ 1, 2, 3 ], [ 1, 2, 7 ], [ 1, 3, 7 ], [ 2, 2, 3 ] ] ]

A presentation for this algebra can be constructed using , which (see below) returns the presentation to be H^*(G, \mathbb{F}) = \frac{\mathbb{F}[x,y,z]}{\langle x^2 + xy + y^2, y^3\rangle} H^*(G, F) = F[x,y,z] / (x^2 + xy + y^2, y^3) where x and y have degree one and z is degree four. The 'nice basis' referred to above is monomials of degree up to five in this polynomial ring, and is not necessarily the same as the basis of the algebra given by , as demonstrated below. gap> A := ModPCohomologyRing(SmallGroup(8, 4), 5);; gap> PresentationOfGradedStructureConstantAlgebra(A); Graded algebra GF(2)[ x_1, x_2, x_3 ] / [ x_1^2+x_1*x_2+x_2^2, x_2^3 ] with indeterminate degrees [ 1, 1, 4 ] gap> ModPRingNiceBasisAsPolynomials(A); [ Z(2)^0, x_1, x_2, x_3, x_1^2, x_1*x_2, x_1*x_3, x_2*x_3, x_1^2*x_2 ] gap> ModPRingBasisAsPolynomials(A); [ Z(2)^0, x_1, x_2, x_1*x_2, x_1^2+x_1*x_2, x_1^2*x_2, x_3, x_2*x_3, x_1*x_3+x_2*x_3 ]