Graded algebras

A graded algebra A is a ring that has a direct sum decomposition into Abelian additive groups (called degrees) A = \bigoplus_{n \in \mathbb{N}} A_n = A_0 \oplus A_1 \oplus A_2 \oplus \ldots A = A_1 + A_2 + A_3 + ... and where multiplication of elements follows a grading such that A_s \times A_r \longrightarrow A_{s+r} A_s x A_r --> A_s+r This means that for any elements x \in A_s and y \in A_r, the product lies in degree r+s, i.e. xy \in A_{s+r}.

Graded algebras in &HAP; (and &HAPprime;)

Small finite algebras can be represented explicitly in &GAP; using a basis and a structure constant table , which specifies all products of basis elements. &HAP; extends this definition to provide a finite approximation to a graded algebra, storing all basis elements and products up to a given degree, n. The graded algebras used by &HAP; add a new component to the algebra object A, the function A!.degree(e) which returns the degree of an algebra element e.

&HAPprime; uses this &HAP; algebra object and adds some attributes, providing information on the basis and generators of the algebra. A ring presentation for this algebra can also be computed and represented using the GradedAlgebraPresentation datatype (see Section ).
Data access functions
<#Include Label="ModPRingGeneratorDegrees_DTmanRings_Dat"> <#Include Label="ModPRingNiceBasis_DTmanRings_Dat"> <#Include Label="ModPRingNiceBasisAsPolynomials_DTmanRings_Dat"> <#Include Label="ModPRingBasisAsPolynomials_DTmanRings_Dat">

Other functions
<#Include Label="PresentationOfGradedStructureConstantAlgebra_DTmanRings_Other">
Example: Graded algebras and mod-&p; cohomology rings

The mod-&p; cohomology ring of a &p;-group is a graded algebra (see ). As an example, we use the &HAP; function to compute this algebra for the quaternion group Q_8 up to and including degree five. We can display its generators and basis (and degrees), 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> List(Basis(A), i->A!.degree(i)); [ 0, 1, 1, 2, 2, 3, 4, 5, 5 ] 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_1,x_2,x_3]}{\langle x_1^2 + x_1x_2 + x_2^2, x_2^3\rangle} H^*(G, F) = F[x_1, x_2, x_3] / (x_1^2 + x_1x_2 + x_2^2, x_2^3) where x_1 and x_2 have degree one and x_3 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 ]