Attachment 'specht_modules.sage'
Download 1 def specht_module_dim(D):
2 """
3 Return the dimension of the Specht module of diagram ``D``.
4
5 INPUT:
6
7 - ``D`` -- a list of cells ``(r,c)`` for row ``r`` and column ``c``
8 """
9 n = len(D)
10 Sn = SymmetricGroupAlgebra(ZZ, n)
11 row_diagram = [set() for _ in range(n)]
12 col_diagram = [set() for _ in range(n)]
13 for i,cell in enumerate(D):
14 x,y = cell
15 row_diagram[x].add(i)
16 col_diagram[y].add(i)
17 # Construct the row and column stabilizer elements
18 row_stab = Sn.zero()
19 col_stab = Sn.zero()
20 B = Sn.basis()
21 for w in B.keys():
22 # Remember that the permutation w is 1-based
23 row_perm = [set() for _ in range(n)]
24 col_perm = [set() for _ in range(n)]
25 for i,cell in enumerate(D):
26 x,y = cell
27 row_perm[x].add(w[i]-1)
28 col_perm[y].add(w[i]-1)
29 if row_diagram == row_perm:
30 row_stab += B[w]
31 if col_diagram == col_perm:
32 col_stab += w.sign() * B[w]
33 gen = col_stab * row_stab
34 M = matrix([(b*gen).to_vector() for b in B])
35 return M.rank()
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.