A class function (or virtual character of a symmetric group Sn) is a function that is constant on the conjugacy classes of Sn. Class functions for Sn are in one to one correspondence with symmetric functions of degree n. The class functions corresponding to actual representations of Sn are called characters.
The character of the standard representation of S3 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 S5 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.