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.