// Murphy operators L := function(u,n); S := SymmetricGroup(n); A := GroupAlgebra(Rationals(),S); x := A! 0; for v in [1..u-1] do x := x + A! S! (v,u); end for; return x; end function; // E_i idempotents in the case of (n-1,1) //need to know residues of the ith basis element residue := function(u,i,n); //1 \le i \le n-1, 1 \le u \le n if u le i then return u-1; end if; if u eq i+1 then return -1; end if; return u-2; end function; E := function(i,n); S := SymmetricGroup(n); A := GroupAlgebra(Rationals(),S); x := A! 1; for c in [-n+1..n-1] do for u in [1..n] do if not (residue(u,i,n) eq c) then x := x * (L(u,n)-c)/(residue(u,i,n)-c); end if; end for; end for; return x; end function; // Function to compute the Young idempotents for each tableaux // there should be some relationship between Y(1,n) and E(1,n) // but it's not obvious what ... Y := function(i,n); S := SymmetricGroup(n); A := GroupAlgebra(Rationals(),S); C := sub; Rgens := {}; for j in [1..i-1] do Rgens := Rgens join {S! (j, j+1)}; end for; for j in [i+2,n-1] do Rgens := Rgens join {S! (j, j+1)}; end for; R := sub; C; R; c := A! 0; for t in C do c := c + Sign(t)*A! t; end for; c; r := A! 0; for s in R do r := r + s; end for; r; return c*r; end function;