1
0
mirror of https://github.com/kalmarek/PropertyT.jl.git synced 2024-11-27 01:10:28 +01:00

account for changes in order of characters

This commit is contained in:
kalmar 2017-07-17 12:27:28 +02:00
parent 4e48917a38
commit 6ecd63197b

View File

@ -29,26 +29,27 @@ end
function rankOne_projections(G::PermutationGroup, T::Type=Rational{Int}) function rankOne_projections(G::PermutationGroup, T::Type=Rational{Int})
RG = GroupRing(G) RG = GroupRing(G)
projections = [central_projection(RG, χ, T) for χ in chars(G)] cprojs = [central_projection(RG, χ, T) for χ in (character(λ) for λ in IntPartitions(G.n))]
if G.n == 1 || G.n == 2 if G.n == 1 || G.n == 2
return projections return cprojs
elseif G.n == 3 elseif G.n == 3
p = 1//2*(one(RG, T) - RG(G([2,1,3]), T))
rankone_projs = [ rankone_projs = [
projections[1], cprojs[1], # alternating
projections[2], p*cprojs[2], # regular
1//2*(one(RG, T) - RG(G([2,1,3]), T))*projections[3] cprojs[3] # trivial
] ]
return rankone_projs
elseif G.n == 4 elseif G.n == 4
rankone_projs = [ p⁺ = 1//2*(one(RG, T) + RG(G([2,1,3,4]), T))
projections[1], p⁻ = 1//2*(one(RG, T) - RG(G([2,1,3,4]), T))
projections[2], rankone_projs = [
1//2*(one(RG, T) - RG(G([2,1,3,4]), T))*projections[3], cprojs[1], # alternating
1//2*(one(RG, T) - RG(G([2,1,3,4]), T))*projections[4], p⁺*cprojs[2], # alt_regular
1//2*(one(RG, T) + RG(G([2,1,3,4]), T))*projections[5] p⁻*cprojs[3], # regular
p⁻*cprojs[4], # via projection to S₃
cprojs[5] # trivial
] ]
return rankone_projs
elseif G.n == 5 elseif G.n == 5
p⁺ = 1//2*(one(RG, T) + RG(G([2,1,3,4,5]), T)) p⁺ = 1//2*(one(RG, T) + RG(G([2,1,3,4,5]), T))
p⁻ = 1//2*(one(RG, T) - RG(G([2,1,3,4,5]), T)) p⁻ = 1//2*(one(RG, T) - RG(G([2,1,3,4,5]), T))
@ -57,17 +58,18 @@ function rankOne_projections(G::PermutationGroup, T::Type=Rational{Int})
q⁻ = 1//2*(one(RG, T) - RG(G([1,2,4,3,5]), T)) q⁻ = 1//2*(one(RG, T) - RG(G([1,2,4,3,5]), T))
rankone_projs = [ rankone_projs = [
projections[1], cprojs[1], # alternating
projections[2], p*cprojs[2], # alt_regular
p*projections[3], p*q⁺*cprojs[3], # ψ
p*projections[4], p*q⁻*cprojs[4], # alt_ϱ
p*q⁺*projections[5], p*cprojs[5], # regular
p*q⁻*projections[6], p*q⁺*cprojs[6], # ϱ
p⁺*q⁺*projections[7] cprojs[7] # trivial
] ]
else else
throw("Rank-one projections for $G unknown!") throw("Rank-one projections for $G unknown!")
end end
return rankone_projs
end end
function rankOne_projections(BN::WreathProduct, T::Type=Rational{Int}) function rankOne_projections(BN::WreathProduct, T::Type=Rational{Int})