next | previous | forward | backward | up | top | index | toc | Macaulay2 website
BettiCharacters > characterTable

characterTable -- construct a character table



This function is provided by the package BettiCharacters.

Use the characterTable method to construct the character table of a finite group.

The first argument is a list containing the cardinalities of the conjugacy classes of the group.

The second argument is a square matrix whose entry in row $i$ and column $j$ is the value of the $i$-th irreducible character of the group at an element of the $j$-th conjugacy class.

The third argument is a polynomial ring over a field, the same ring over which the modules and resolutions are defined whose characters are to be decomposed against the character table. Note that the matrix in the second argument must be liftable to this ring.

Assuming the polynomial ring in the third argument has a coefficient field F which is a subfield of the complex numbers, then the fourth argument is the restriction of complex conjugation to F.

For example, we construct the character table of the alternating group $A_4$ considered as a subgroup of the symmetric group $S_4$. The conjugacy classes are represented by the identity, and the permutations $(12)(34)$, $(123)$, and $(132)$, in cycle notation. These conjugacy classes have cardinalities: 1, 3, 4, 4. The irreducible characters can be constructed over the field $\mathbb{Q}[w]$, where $w$ is a primitive third root of unity. Complex conjugation restricts to $\mathbb{Q}[w]$ by sending $w$ to $w^2$.

i1 : F = toField(QQ[w]/ideal(1+w+w^2))

o1 = F

o1 : PolynomialRing
i2 : s = {1,3,4,4}

o2 = {1, 3, 4, 4}

o2 : List
i3 : M = matrix{{1,1,1,1},{1,1,w,w^2},{1,1,w^2,w},{3,-1,0,0}}

o3 = | 1 1  1    1    |
     | 1 1  w    -w-1 |
     | 1 1  -w-1 w    |
     | 3 -1 0    0    |

             4       4
o3 : Matrix F  <--- F
i4 : R = F[x_1..x_4]

o4 = R

o4 : PolynomialRing
i5 : conj = map(F,F,{w^2})

o5 = map (F, F, {- w - 1})

o5 : RingMap F <--- F
i6 : T = characterTable(s,M,R,conj)

o6 = Character table over R
         |  1   3        4        4
     X0  |  1   1        1        1
     X1  |  1   1        w  - w - 1
     X2  |  1   1  - w - 1        w
     X3  |  3  -1        0        0

o6 : CharacterTable

By default, irreducible characters in a character table are labeled as X0, X1, ..., etc. The user may pass custom labels in a list using the option Labels.

When working over a splitting field for a finite group $G$ in the non modular case, the irreducible characters of $G$ form an orthonormal basis for the space of class functions on $G$ with the scalar product given by $$\langle \chi_1, \chi_2 \rangle = \frac{1}{|G|} \sum_{g\in G} \chi_1 (g) \chi_2 (g^{-1}).$$ Over the complex numbers, the second factor in the summation is equal to $\overline{\chi_2 (g)}$. Thus the scalar product can be computed using the conjugation function provided by the user.

If working over coefficient fields of positive characteristic or if one wishes to avoid defining conjugation, one may replace the fourth argument by a list containing a permutation $\pi$ of the integers $1,\dots,r$, where $r$ is the number of conjugacy classes of the group. The permutation $\pi$ is defined as follows: if $g$ is an element of the $j$-th conjugacy class, then $g^{-1}$ is an element of the $\pi (j)$-th class.

In the case of $A_4$, the identity and $(12)(34)$ are their own inverses, while $(123)^{-1} = (132)$. Therefore the permutation $\pi$ is the transposition exchanging 3 and 4. Hence the character table of $A_4$ may also be constructed as follows, with $\pi$ represented in one-line notation by a list passed as the fourth argument.

i7 : perm = {1,2,4,3}

o7 = {1, 2, 4, 3}

o7 : List
i8 : T' = characterTable(s,M,R,perm)

o8 = Character table over R
         |  1   3        4        4
     X0  |  1   1        1        1
     X1  |  1   1        w  - w - 1
     X2  |  1   1  - w - 1        w
     X3  |  3  -1        0        0

o8 : CharacterTable
i9 : T' === T

o9 = true


This constructor checks orthonormality of the table matrix under the standard scalar product of characters. However, it may still be possible to construct a table that is not an actual character table. Note also that there are no further checks when using a character table to decompose characters.

See also

Ways to use characterTable :

For the programmer

The object characterTable is a method function with options.