Construction of Group Algebras and their Elements

Contents

Construction of a Group Algebra

There are two different representations of group algebra elements used in Magma. Which is most suitable depends on the group G and on the operations required, and must be decided upon when the algebra is created.

The first representation, which requires that G is not too large, is to choose (once and for all) an ordering (g1, g2, ..., gn) of the elements of G (where n = |G|), and then to store elements of the group algebra A = R[G] as coefficient vectors relative to the basis (g1, g2, ..., gn) of A. So an element a = a1 * g1 + a2 * g2 + ... + an * gn (ai ∈R) of A will be stored as the vector (a1, a2, ..., an). This makes for fast arithmetic and allows the use of matrix echelonization for dealing with subalgebras and ideals (if R has a matrix echelon algorithm).

The alternative representation, necessary when dealing with large groups, stores an element a ∈A = R[G] as a pair of parallel arrays giving the terms of the element. One array contains the nonzero coefficients of the element and the other contains their associated group elements. This representation allows group algebras to be defined over any group in which the elements have a canonical form, including potentially infinite matrix groups over a ring of characteristic 0 or even free groups. Note however, that operations in such algebras are limited, as the length of the representing arrays may grow exponentially with the number of multiplications performed.

GroupAlgebra( R, G: parameters ) : Rng, Grp -> AlgGrp
GroupAlgebra< R, G: parameters > : Rng, Grp -> AlgGrp
    Rep: MonStgElt                      Default: 
    Table: BoolElt                      Default: 
Given a unital ring R and a group G (which is not a finitely presented group), create the group algebra R[G]. There are two optional arguments associated with this creation function.

The optional parameter Rep can be used to specify which representation should be chosen for elements of the algebra. Its possible values are "Vector" and "Terms". If Rep is not assigned, then Magma chooses the vector representation if |G| ≤1000 and the term representation otherwise. If Rep is set to "Vector", Magma has to compute the order of G. If it does not succeed in that or the order is too large to construct vectors of this size, then an error message is displayed.

The second optional parameter Table can be used to specify whether or not the multiplication table of the group should be computed and stored upon creation of the algebra. Storing the multiplication table makes multiplication of algebra elements (and all other group algebra operations using this) much faster. Building this table does, however, increase the time needed to create the algebra. The table can only be stored if the vector representation of elements is used. If the Table parameter is not set, then Magma stores the multiplication table only if G ≤200.

Example AlgGrp_creation (H91E1)

We first construct the default group algebra A = R[G] where R is the ring of integers and G is the symmetric group on three points.
> G := SymmetricGroup(3);
> R := Integers();
> A := GroupAlgebra( R, G );
> A;
Group algebra with vector representation and stored multiplication table
Coefficient ring: Integer Ring
Group: Permutation group G acting on a set of cardinality 3
    Order = 6 = 2 * 3
        (1, 2, 3)
        (1, 2)

Next we construct the group algebra A = R[G] where R = GF(5) and G is the dihedral group of order 100, given as a polycyclic group. This time we specify that the term representation should be used for elements.

> G := PCGroup( DihedralGroup(50) );
> A := GroupAlgebra( GF(5), G: Rep := "Terms" );
> A;
Group algebra with terms representation
Coefficient ring: Finite field of size 5
Group: GrpPC : G of order 100 = 2^2 * 5^2
    PC-Relations:
        G.1^2 = Id(G),
        G.2^2 = Id(G),
        G.3^5 = G.4,
        G.4^5 = Id(G),
        G.3^G.1 = G.3^4 * G.4^4,
        G.4^G.1 = G.4^4

Construction of a Group Algebra Element

elt< A | r, g > : AlgGrp, RngElt, GrpElt -> AlgGrpElt
Given a group algebra A = R[G], a ring element r ∈R and a group element g ∈G, create the element r * g of A.
A ! g : AlgGrp, GrpElt -> AlgGrpElt
Given a group element g ∈G create the element 1R * g of the group algebra A = R[G].
A ! r : AlgGrp, RngElt -> AlgGrpElt
Given a ring element r ∈R, create the element r * 1G of the group algebra A = R[G].
A ! [c1, ..., cn] : AlgGrp, SeqEnum -> AlgGrpElt
Given a group algebra A = R[G] in vector representation and a sequence [c1, ..., cn] of n = |G| elements of R, create the element c1 * g1 + ... + cn * gn, where (g1, ..., gn) is the fixed basis of A.
Eta(A) : AlgGrp -> AlgGrpElt
For a group algebra A = R[G] in vector representation, create the element ∑g ∈G 1R * g of A.

Example AlgGrp_el-creation (H91E2)

We check that Eta(A)/|G| is an idempotent in A (provided the characteristic of R does not divide the order of G).

> G := Alt(6);
> A := GroupAlgebra( GF(7), G );
> e := Eta(A) / #G;
> e^2 - e;
0
V2.28, 13 July 2023