characters of S_n are incorrect
The function character(l, m) gives wrong results, e.g. the dimensions of representations (i.e. values at [1,1,...,1]):
N = 4
for λ in partitions(N)
println("λ = $(rpad(λ,10))\t χ_λ($(ones(Int,N))) = ", character(λ, ones(Int,N)))
end
λ = [4] χ_λ([1,1,1,1]) = 1λ = [3,1] χ_λ([1,1,1,1]) = 2λ = [2,2] χ_λ([1,1,1,1]) = 2λ = [2,1,1] χ_λ([1,1,1,1]) = 4λ = [1,1,1,1] χ_λ([1,1,1,1]) = 1are incorrect; these should beλ = [4] χ_λ([1,1,1,1]) = 1 # sign reprλ = [3,1] χ_λ([1,1,1,1]) = 3 # regular reprλ = [2,2] χ_λ([1,1,1,1]) = 2 # repr via epimorphism to S₃λ = [2,1,1] χ_λ([1,1,1,1]) = 3 # sign ⊗ regularλ = [1,1,1,1] χ_λ([1,1,1,1]) = 1 # trivial
The results are incorrect for N≥4. For N≤3 the characters are correct. I think this is related to an incorrect dictionary key of https://github.com/JuliaMath/Combinatorics.jl/blob/84fe2fd43a945007fdf192bb959de24c48838435/src/youngdiagrams.jl#L137
Moreover character([2,2,2,2], [8]) will result in BoundsError: attempt to access 6-element Array{Int64,1} at index [7]. This is due to the fact that MN1inner does not check if μ[t] (the length of the requested rim-hooks) is smaller than length(R). It should, and should return 0 otherwise (i.e. if no hooks of the requested length are found).
Do you have an idea for the fix?
my implementation in AbstractAlgebra.jl is correct. have a look at
https://github.com/Nemocas/AbstractAlgebra.jl/blob/master/src/generic/YoungTabs.jl#L268
Could just be #52