Combinatorics.jl icon indicating copy to clipboard operation
Combinatorics.jl copied to clipboard

characters of S_n are incorrect

Open kalmarek opened this issue 8 years ago • 4 comments

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]) = 1 are 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).

kalmarek avatar Jul 15 '17 10:07 kalmarek

Do you have an idea for the fix?

mschauer avatar Oct 16 '18 10:10 mschauer

my implementation in AbstractAlgebra.jl is correct. have a look at https://github.com/Nemocas/AbstractAlgebra.jl/blob/master/src/generic/YoungTabs.jl#L268

kalmarek avatar Oct 16 '18 10:10 kalmarek

Could just be #52

mschauer avatar Oct 16 '18 10:10 mschauer