# Operations on Group Algebras and their Subalgebras

## Operations on Group Algebras

The operations in this section can only be applied to a full group algebra. Functions accepting also a subalgebra of type `AlgGrpSub` are dealt with in the next section.

### `Algebra(A): AlgGrp -> AlgAss, Map`

For a group algebra $A$ given in vector representation, construct the associative structure constant algebra $B$ isomorphic to $A$ together with the isomorphism $A \rightarrow B$.

### `AugmentationMap(A): AlgGrp -> Map`

The augmentation map of $A$. That is, the map $A \rightarrow R : \sum_{g \in G} r_g * g \rightarrow \sum_{g \in G} r_g$.

### `AugmentationIdeal(A): AlgGrp -> AlgGrpSub`

The augmentation ideal of the group algebra $A$ given in vector representation. This is defined as the kernel of the augmentation map.

### `RepresentationType(A): AlgGrp -> MonStgElt`

Given a group algebra $A$, return either `"Vector"` or `"Terms"` depending on which representation is used for the elements of $A$.

### `ChangeRepresentationType(A, Rep): AlgGrp, MonStgElt -> AlgGrp, Map`

Given a group algebra $A$, construct an isomorphic group algebra $B$ in which the elements are represented as specified by `Rep` which may be `"Vector"` or `"Terms"`, together with the homomorphism from $A$ to $B$.

### `ConstructTable(A): AlgGrp`

Procedure which, given a group algebra $A = R[G]$ in vector representation, constructs the multiplication table for the group $G$ to speed up multiplication in $A$. If the multiplication table already exists, nothing is done.

### `CoefficientRing(A): AlgGrp -> Rng`

### `BaseRing(A): AlgGrp -> Rng`

The coefficient ring (base ring) of A.

## Operations on Subalgebras of Group Algebras

The functions in this section can be applied to group algebras and their subalgebras of type `AlgGrpSub`.

### `S ! 1: AlgGrpSub -> Grp`

### `S ! 1: AlgGrp -> Grp`

Create the identity element of the group algebra (subalgebra) $S$. Note that for a proper subalgebra of the full group algebra this may be different from the identity element of the group.

### `Group(S): AlgGrpSub -> Grp`

### `Group(S): AlgGrp -> Grp`

The group $G$ for the group algebra (subalgebra) $S$.

### `GroupAlgebra(S): AlgGrpSub -> AlgGrp`

### `GroupAlgebra(S): AlgGrp -> AlgGrp`

The group algebra of which $S$ is a subalgebra.

### `Module(S): AlgGrpSub -> ModTupRng, Map`

### `Module(S): AlgGrp -> ModTupRng, Map`

For a subalgebra $S$ of the group algebra $A = R[G]$, return the submodule of the module underlying $A$ which corresponds to $S$. This is an $R$-module of dimension `Dimension(S)` and degree `Dimension(A)`. Also returns (as a second return value) the natural map from the subalgebra to the module.

### `CoefficientRing(A): AlgGrpSub -> Rng`

### `BaseRing(A): AlgGrpSub -> Rng`

The coefficient ring (base ring) of A.

### `BasisMatrix(S): AlgGrpSub -> ModMatRngElt`

### `BasisMatrix(S): AlgGrp -> ModMatRngElt`

For a subalgebra $S$ of the group algebra $A = R[G]$ return the coefficient matrix of the basis of $S$ with respect to the basis of $A$. If $S$ has dimension $m$ this is an $m \times |G|$-matrix over $R$ where the $i$-th row are the coefficients of the $i$-th basis vector of $S$ with respect to the fixed basis of $A$.

### `Coordinates(S, a): AlgGrpSub, AlgGrpElt -> [ RingElt ]`

### `Coordinates(S, a): AlgGrp, AlgGrpElt -> [ RingElt ]`

Given an element $a$ which lies in the subalgebra $S$, return a sequence giving the coordinates of $a$ with respect to the basis of $S$.

### `IsLeftIdeal(S): AlgGrpSub -> BoolElt`

### `IsLeftIdeal(S): AlgGrp -> BoolElt`

Returns `true` if $S$ is a left ideal of its group algebra; otherwise `false`.

### `IsRightIdeal(S): AlgGrpSub -> BoolElt`

### `IsRightIdeal(S): AlgGrp -> BoolElt`

Returns `true` if $S$ is a right ideal of its group algebra; otherwise `false`.

### `IsIdeal(S): AlgGrpSub -> BoolElt`

### `IsIdeal(S): AlgGrp -> BoolElt`

Returns `true` if $S$ is a (two-sided) ideal of its group algebra; otherwise `false`.

### `Centraliser(S): AlgGrpSub -> AlgGrpSub`

### `Centralizer(S): AlgGrpSub -> AlgGrpSub`

### `Centraliser(S): AlgGrp -> AlgGrpSub`

### `Centralizer(S): AlgGrp -> AlgGrpSub`

The centralizer of the subalgebra $S$ of a group algebra $A$ (in $A$).

### `Idealiser(S): AlgGrpSub -> AlgGrpSub`

### `Idealizer(S): AlgGrpSub -> AlgGrpSub`

### `Idealiser(S): AlgGrp -> AlgGrpSub`

### `Idealizer(S): AlgGrp -> AlgGrpSub`

The largest subalgebra $T$ of $A$ such that $S$ is an ideal in $T$.

### `LeftAnnihilator(S): AlgGrpSub -> AlgGrpSub`

### `LeftAnnihilator(S): AlgGrp -> AlgGrpSub`

For a subalgebra $S$ of the group algebra $A$ construct the left annihilator of $S$, that is, the subalgebra of $A$ consisting of all elements $a$ such that $a*s = 0$ for all $s \in S$.

### `RightAnnihilator(S): AlgGrpSub -> AlgGrpSub`

### `RightAnnihilator(S): AlgGrp -> AlgGrpSub`

For a subalgebra $S$ of the group algebra $A$ construct the right annihilator of $S$, that is, the subalgebra of $A$ consisting of all elements $a$ such that $s*a = 0$ for all $s \in S$.

### `Example: jacobson (ex-71b601)`

We construct the group algebra of an elementary abelian group over $GF(2)$ and get its Jacobson ideal.

```magma
> A := AbelianGroup([2,2,2,2,2]);
> FG := GroupAlgebra(GF(2), A);
> J := JacobsonRadical(FG);
> J;
Ideal of dimension 31 of the group algebra FG

```

We now check that the Jacobson radical is nilpotent and get its nilpotency class.

```magma
> JPow := [ J ];
> I := J;
> while Dimension(I) ne 0 do
>     I := I*J;
>     Append(~JPow, I);
> end while;
> [ Dimension(I) : I in JPow ];
[ 31, 26, 16, 6, 1, 0 ]

```

Thus, $J$ is nilpotent of class 6. However, every non-zero element of $J$ is of course nilpotent of class 2.

```magma
> IsNilpotent(Random(J));
true 2

```
