A class function (or virtual character of a symmetric group S_n) is a function that is constant on the conjugacy classes of S_n. Class functions for S_n are in one to one correspondence with symmetric functions of degree n. The class functions corresponding to actual representations of S_n are called characters.
The character of the standard representation of S_3 is
i1 : S = schurRing(QQ,s,3); |
i2 : classFunction(s_{2,1})
o2 = ClassFunction{{1, 1, 1} => 2}
{3} => -1
o2 : ClassFunction
|
The character of the sign representation of S_5 is
i3 : S = schurRing(QQ,s,5); |
i4 : classFunction(s_{1,1,1,1,1})
o4 = ClassFunction{{1, 1, 1, 1, 1} => 1}
{2, 1, 1, 1} => -1
{2, 2, 1} => 1
{3, 1, 1} => 1
{3, 2} => -1
{4, 1} => -1
{5} => 1
o4 : ClassFunction
|
We can go back and forth between class functions and symmetric functions.
i5 : R = symmetricRing(QQ,3); |
i6 : cF = new ClassFunction from {{1,1,1} => 2, {3} => -1};
|
i7 : sF = symmetricFunction(cF,R)
1 3 1
o7 = -p - -p
3 1 3 3
o7 : R
|
i8 : toS sF
o8 = s
2,1
o8 : schurRing (QQ, s, 3)
|
i9 : classFunction sF
o9 = ClassFunction{{1, 1, 1} => 2}
{3} => -1
o9 : ClassFunction
|
We can add, subtract, multiply, scale class functions:
i10 : S = schurRing(QQ,s,4); |
i11 : c1 = classFunction(S_{2,1,1}-S_{4});
|
i12 : c2 = classFunction(S_{3,1});
|
i13 : c1 + c2
o13 = ClassFunction{{1, 1, 1, 1} => 5}
{2, 1, 1} => -1
{2, 2} => -3
{3, 1} => -1
{4} => -1
o13 : ClassFunction
|
i14 : c1 * c2
o14 = ClassFunction{{1, 1, 1, 1} => 6}
{2, 1, 1} => -2
{2, 2} => 2
o14 : ClassFunction
|
i15 : 3*c1 - c2*2
o15 = ClassFunction{{2, 1, 1} => -8}
{2, 2} => -4
{3, 1} => -3
{4} => 2
o15 : ClassFunction
|
The object ClassFunction is a type, with ancestor classes HashTable < Thing.