# Representation Theory

A set of functions are provided for computing with the characters of a group. Full details of these functions may be found in Chapter [Characters of Finite Groups](../../RepresentationTheory/CharactersOfFiniteGroups/index-characters-of-finite-groups.md#chapchtr). For convenience we include here two of the more useful character functions. Also, functions are provided for computing with the modular representations of a group. Full details of these functions may be found in Chapter [Modules over an Algebra and Group Representations](../../RepresentationTheory/ModulesOverAnAlgebraAndGroupRepresentations/index-modules-over-an-algebra-and-group-representations.md#chapmodalg). For the reader’s convenience we include here the functions which may be used to define a $K[G]$-module for a matrix group.

The functions described in this section apply only to finite groups for which a base and strong generating set may be constructed.

## `LinearCharacters(G): GrpMat -> [ Chtr ]`

A sequence containing the linear characters for the group $G$.

## `CharacterTable(G: parameters): GrpMat -> TabChtr`

```magma
Al         : MonStgElt                    Default: "Default"
DSSizeLimit: RngIntElt                    Default: 0
```

Construct the table of ordinary irreducible characters for the group $G$.

This parameter controls the algorithm used. The string `"DS"` forces use of the Dixon-Schneider algorithm. The string `"IR"` forces the use of Unger’s induction/reduction algorithm [[Unger, 2006](../../references.md#cite-chtr-table-unger)]. The `"Default"` algorithm is to use Dixon-Schneider for groups of order $\le 5000$ and Unger’s algorithm for larger groups. This may change in future.

When the default algorithm is selected, a positive value $n$ for `DSSizeLimit` means that before using Unger’s algorithm, the full character space is split by some passes of Dixon-Schneider, restricted to using class matrices corresponding to conjugacy classes with size at most $n$.

## `PermutationCharacter(G, H): GrpMat, GrpMat -> AlgChtrElt`

Given a group $G$ and a subgroup $H$ of $G$, construct the ordinary character afforded by the representation of $G$ given by its action on the coset space of the subgroup $H$.

## `GModule(G): GrpMat -> ModGrp`

The natural $R[G]$-module for the matrix group $G$.

## `GModule(G, A): GrpMat, AlgMat -> ModGrp`

Let $A$ be a matrix ring defined over the ring $R$ and let $G$ be a finite group defined on $m$ generators. Let $M$ denote the underlying module of $A$. Suppose there is a one-to-one correspondence between the generators of $G$ and the generators $[ A_1, \ldots, A_m ]$ of $A$. The function `GModule` creates the $R[G]$-module corresponding to an action of $G$ on $M$ defined by $A$, where the action of the $i$-th generator of $G$ on $M$ is given by $A_i$.

## `GModule(G, Q): GrpMat, [ AlgMatElt ] -> ModGrp`

Let $A$ be a matrix ring defined over the ring $R$ and let $G$ be a finite group defined on $m$ generators. Let $M$ denote the underlying module of $A$. Given a sequence $Q$ of $m$ elements of $A$, the function `GModule` creates the $R[G]$-module corresponding to an action of $G$ on $M$ defined by $Q$, where the action of the $i$-th generator of $G$ on $M$ is given by $Q[i]$.

## `GModule(G, A, B): GrpMat, GrpMat, GrpMat -> ModGrp, Map`

Let $A$ and $B$ be normal subgroups of $G$ such that $B$ is contained in $A$. Further, assume that $A/B$ is elementary abelian of order $p^n$, $p$ a prime. Let $K$ denote the field of $p$ elements. This function constructs a $K[G]$-module corresponding to the action of the group $G$ on the elementary abelian section $A/B$ of $G$. The map from $A$ to the $K[G]$-module’s underlying vector space is also returned.

## `PermutationModule(G, H, R): GrpMat, GrpMat, Rng -> ModGrp`

The permutation module for the matrix group $G$ over the ring $R$ defined by its action on the cosets of the subgroup $H$.

## `ChangeOfBasisMatrix(G, S): GrpMat, ModGrp -> AlgMatElt`

Given a matrix group $G$ and a submodule $S$ of its natural module, return an invertible matrix with topmost rows a basis for $S$. Conjugating by the inverse of this matrix puts the generators of $G$ into a block form that exhibits their action on $S$ and the quotient module.

## `Example: G Module (ex-089525)`

We use the module machinery to refine an elementary abelian normal subgroup by finding a normal subgroup contained in it.

```magma
> G := MatrixGroup<4, IntegerRing(4) |
>  [ 3, 3, 1, 3, 0, 2, 2, 3, 3, 0, 1, 3, 3, 2, 2, 1 ],
>  [ 2, 2, 3, 3, 0, 3, 1, 1, 3, 0, 1, 1, 2, 0, 1, 2 ] >;
> #G;
660602880
> H := pCore(G, 2);
> FactoredOrder(H);
[ <2, 15> ]
> IsElementaryAbelian(H);
true
> M, f := GModule(G, H, sub<H|>);
> SM := Submodules(M);
> #SM;
3

```

One of these submodules is 0, one is all `M`, we are interested in the one in the middle. Note that the result returned by `Submodules` is sorted by dimension.

```magma
> N := SM[2] @@ f;
> N;
MatrixGroup(4, IntegerRing(4))
Generators:
  [3 0 0 0]
  [0 3 0 0]
  [0 0 3 0]
  [0 0 0 3]

```

We have found `N`, a normal subgroup of `G`, contained in the 2-core, with order 2.
