Symbols
Chevie.SymbolsChevie.Symbols.CharSymbolChevie.Symbols.PartitionChevie.Symbols.MalledefectChevie.Symbols.Symbol_partition_tupleChevie.Symbols.XSPChevie.Symbols.coreChevie.Symbols.defectChevie.Symbols.degree_fegChevie.Symbols.degree_gendegChevie.Symbols.ennolaChevie.Symbols.fakedegreeChevie.Symbols.gendegChevie.Symbols.partition_core_quotientChevie.Symbols.partβChevie.Symbols.quotientChevie.Symbols.rankChevie.Symbols.shiftβChevie.Symbols.string_partition_tupleChevie.Symbols.symbolsChevie.Symbols.valuation_fegChevie.Symbols.valuation_gendegChevie.Symbols.βset
Chevie.Symbols — Module
The combinatorial objects in this module are partitions, β-sets and symbols.
A partition is a non-increasing list of nonnegative integers p₁≥p₂≥…pₙ, represented as a Vector{Int}, which is normalized if it has no trailing zeroes. The functions for partitions in this module are
Partition(p₁,…,pₙ)orPartition([p₁,…,pₙ])makes aPartitionobject from the listp₁,…,pₙ.core(μ::Partition,e)which returns thee-core ofμ.quotient(μ::Partition,e)which returns thee-quotient ofμ.partition_core_quotient(μ::Partition,q)which recovers a partition given itse-coreμand itse-quotientq.
A β-set is a strictly increasing Vector of nonnegative integers, up to shift, the equivalence relation generated by the elementary shifts [b₁,…,bₙ]∼[0,1+b₁,…,1+bₙ]. An equivalence class has exactly one member which does not contain 0: it is called a normalized β-set.
To a normalized partition p₁≥p₂≥…pₙ>0 is associated a β-set, whose normalized representative is pₙ,pₙ₋₁+1,…,p₁+n-1. A mnemonic is that this is the areas of the hooks in the Young diagram going up along the first column. Conversely, to each β-set b₁<b₂<…<bₙ is associated the partition bₙ-n+1≥…≥b₂-1≥b₁, which may have some trailing zeros if starting from a non-normalized representative.
The functions for βsets in this module are
βsetwhich constructs a normalized βset from a partition.shiftβwhich shifts a βsetpartβwhich constructs a partition from a βset
As a generalisation of β-sets, (Lusztig, 1977) has introduced 2-symbols and more general e-symbols were introduced in (Malle, 1995). An e-symbol is a vector S=[S₁,…,Sₑ] of β-sets, taken modulo the equivalence relation generated by the simultaneous elementary shift of all β-sets, and by cyclic permutations of S; in the particular case where e=2, S is thus an unordered pair of β-sets. S is a normalized symbol if 0 is not in the intersection of the Sᵢ; equivalent normalized symbols are equivalent by cyclic permutation. The content of S is mod(c,e) where c=sum(length.(S)); it is an invariant of the symbol, as well as the rank, defined for an e-symbol as sum(sum,S)-div((c-1)*(c-e+1),2*e). Invariant by shift but not cyclic permutation is the shape s.-minimum(s) where s=length.(S).
When e=2 we choose a normalized representative of a symbol [S₁,S₂] such that length(S₁)≥length(S₂), so the shape is [d,0] for some d≥0 called the defect of the symbol; the content is equal to mod(d,2). When d==0 we choose a normalized representative such that P₁≤P₂ lexicographically where P₁,P₂ are the partitions associated to S₁,S₂. For e>2 we choose the reduced representative, which means a symbol ≥ to all its cyclic permutations, where a symbol is < another if the shape length.(S) is lexicographically smaller and, if the shapes are the same, if the vector of βsets is lexicographically greater.
Partitions and pairs of partitions parametrize characters of the Weyl groups of classical types, and tuples of partitions parametrize characters of imprimitive complex reflection groups. 2-Symbols parametrize unipotent characters of classical Chevalley groups, and more general e-symbols parametrize unipotent characters of spetses associated to spetsial imprimitive complex reflection groups. The rank of a symbol is equal to the semi-simple rank of the corresponding Chevalley group or Spets.
Symbols of rank n and defect 0 parametrize characters of the Weyl group W(Dₙ), and symbols of rank n and defect≡0 (mod 4) parameterize unipotent characters of SO₂ₙ; symbols of rank n and defect≡2 (mod 4) parameterize unipotent characters of SO⁻₂ₙ. Symbols of rank n and defect 1 parametrize characters of the Weyl group W(Bₙ), and symbols of rank n and odd defect parametrize unipotent characters of Sp₂ₙ or SO₂ₙ₊₁.
To parametrize unipotent characters of spetses we need another statistic on symbols, the Malle-defect defined in (Malle, 1995) as mod(binomial(e,2)*div(sum(length.(S)),e)-dot(O:e-1,length.(S)),e). It is invariant under shift; it is invariant under circular permutation for symbols of content O but not for symbols of content 1; for these only one circular permutation has Malle-defect 0.
e-symbols of rank n and content 1 parameterize unipotent characters of the spets G(e,1,n). The principal series (in bijection with characters of the reflection group) is parametrized by symbols whose reduced representative has shape [1,0,…,0].
Unipotent characters of the spets G(e,e,n) are parametrized by e-symbols of content 0 and Malle-defect 0. The symbols for the principal series characters have shape [0,…,0].
Unipotent characters of the twisted spets ᵗG(e,e,n) are parametrized by e-symbols of rank n, content 0 and Malle-defect t.
In the above parametrizations, periodic symbols, that is symbols S such that the sequence S₁,…,Sₙ is a repetition k times of a shorter sequence, must be repeated k times. To distinguish the k copies, an additional parameter, a k-th root of unity, is attached to the symbol. As an example, here are the symbols for G₃,₃,₃:
julia> symbols(3,3,0)
12-element Vector{CharSymbol}:
(1+)
(1ζ₃)
(1ζ₃²)
(01,12,02)
(01,02,12)
(012,012,123)
(0,1,2)
(0,2,1)
(01,01,13)
(0,0,3)
(012,,)
(012,012,)when the symbol has a period, only the period is shown, followed by the root of unity (where 1 is shown as + and -1 is shown as -.
The functions for symbols in this module are
CharSymbol, which constructs a symbolSymbol_partition_tuplewhich constructs a symbol of a given shape from a partition tuplerankwhich computes the rank of a symboldefectwhich returns the defect of a 2-symbolMalledefectwhich returns the Malle-defect of a symbolcore(l,ζₑʲ)which returns the(l,ζₑʲ)-core of a symbolfakedegree,degree_feg,valuation_fegreturn the fake degree (resp. its degree and valuation) of the unipotent character parametrized by a symbolgendeg,degree_gendeg,valuation_gendegreturn the generic degree (resp. its degree and valuation) of the unipotent character parametrized by a symbolsymbolsreturns the list of symbols of a given length, rank and content.
Finally, in this module we also provides a function XSP which returns the "symbols" (pairs of vectors of increasing positive integers satisfying some conditions) $X̃^{ρ-s,s}_{n,d}$ defined by Lusztig and Spaltenstein which parametrize local systems on unipotent classes for classical reductive groups.
Chevie.Symbols.Partition — Type
A Partition object is formed from a non-increasing list of integers ending with a number>0. The following two forms are equivalent for making a Partition object:
julia> Partition([2,1,1])
Partition: 211
julia> p=Partition(2,1,1)
Partition: 211
julia> length(p) # how many parts
3
julia> rank(p) # the sum of the parts
4some basic operations on partitions is the union and the conjugate partition
julia> union(p,p)
Partition: 221111
julia> p'
Partition: 31we get the i-th part by indexing with the convention that we get 0 for large i.
julia> p[1]
2
julia> p[4]
0The partitions are ordered by rank, and then lexicographically.
Chevie.Symbols.shiftβ — Function
shiftβ( β, n) shift the β-set β by n
julia> shiftβ([2,3],2)
4-element Vector{Int64}:
0
1
4
5
julia> shiftβ([0,1,4,5],-2)
2-element Vector{Int64}:
2
3shiftβ(β) returns the unique normalized representative of β.
julia> shiftβ([0,1,4,5])
2-element Vector{Int64}:
2
3Chevie.Symbols.βset — Function
βset(p) normalized β-set of partition p
julia> βset([3,3,1])
3-element Vector{Int64}:
1
4
5Chevie.Symbols.partβ — Function
partβ(β) partition defined by β-set β
julia> partβ([0,4,5])
2-element Vector{Int64}:
3
3Chevie.Symbols.string_partition_tuple — Function
string_partition_tuple(tuple)
converts the partition tuple tuple to a string where the partitions are separated by a dot.
julia> d=partition_tuples(3,2)
10-element Vector{Vector{Vector{Int64}}}:
[[1, 1, 1], []]
[[1, 1], [1]]
[[1], [1, 1]]
[[], [1, 1, 1]]
[[2, 1], []]
[[1], [2]]
[[2], [1]]
[[], [2, 1]]
[[3], []]
[[], [3]]
julia> string_partition_tuple.(d)
10-element Vector{String}:
"111."
"11.1"
"1.11"
".111"
"21."
"1.2"
"2.1"
".21"
"3."
".3"Chevie.Symbols.quotient — Function
quotient(μ::Partition,e) the e-quotient of the partition μ.
The e-quotient is best described in terms of βsets. Divide the βset of μ in e sets S₀,…,Sₑ₋₁ according to the congruence mod e. Replace Sᵢ by S'ᵢ={(x-i)/e∣x∈Sᵢ}. Then each S'ᵢ can be interpreted in turn as the βset of a partition. The resulting e-tuple of partitions is the e-quotient of mu.
julia> quotient(Partition(3,3,1),3)
3-element Vector{Vector{Int64}}:
[]
[]
[1]Chevie.Symbols.CharSymbol — Type
CharSymbol(v::Vector{Vector{Int}},repeat::Int=1,no::Int=0)
CharSymbol makes a vector of βsets into a symbol. If the vector of βsets has a period this is specified by giving a number repeats of repetitions and a number 0≤no<repat.
julia> CharSymbol([[1],Int[],[2]])
(1,,2)
julia> CharSymbol([[1],[1],[1]],3,2)
(1ζ₃²)Chevie.Symbols.rank — Method
rank(S) rank of symbol S.
julia> rank(CharSymbol([[1,5,6],[1,2]]))
11Chevie.Symbols.defect — Method
defect(s::CharSymbol)
For an e-symbol [S₁,S₂,…,Sₑ] returns length(S₁)-length(S₂).
julia> defect(CharSymbol([[1,5,6],[1,2]]))
1Chevie.Symbols.Malledefect — Function
Malledefect(S::CharSymbol)
Malle-defect of S. This is an invariant by shift but not in general under cyclic permutations.
Chevie.Symbols.core — Function
core(μ::Partition,e) the e-core of the partition μ.
It is the partition left after removing recursively all possible e-hooks from the young diagram of μ.
julia> core(Partition(3,3,1),3)
Partition: 211core(s::CharSymbol,l,j=0) the (l,ζₑʲ) core of the e-symbol s
This core is obtained by removing recursively all possible (l,ζₑʲ)-hooks. An (l,ζₑʲ)-hook consists of, assuming x occurs in the i-th βset of s and x-l does not occur in the mod1(i+j,e)-th βset of s, removing x from the i-th β-set and adding x-l to the mod1(i+j,e)-th βset.
Chevie.Symbols.partition_core_quotient — Function
partition_core_quotient(c::Partition,q)
given a partition c and an e-tuple q of partitions, return a partition p of e-core c and e-quotient q.
julia> partition_core_quotient(Partition(2,1,1),[Int[],Int[],[1]])
Partition: 331Chevie.Symbols.Symbol_partition_tuple — Function
Symbol_partition_tuple(p, s) symbol of shape s for partition tuple p.
In the general case, s is a Vector{Int} of same length as p and the i-th element of the result is the β-set for pᵢ shifted to be of length sᵢ (the minimal integer which makes this possible is added to s).
When s is a positive integer it is interpreted as [s,0,0,…] and a negative integer is interpreted as [0,-s,-s,…] so when p is a double partition one gets the symbol of defect s associated to p; as other uses the unipotent symbol for a character of the principal series of G(e,1,r) parameterized by an e-tuple p of partitions is Symbol_partition_tuple(p,1) and for G(e,e,r) the similar computation is Symbol_partition_tuple(p,0) (the function handles coded periodic p for G(e,e,r)).
julia> Symbol_partition_tuple([[2,1],[1]],1)
(13,1)
julia> Symbol_partition_tuple([[2,1],[1]],0)
(13,02)
julia> Symbol_partition_tuple([[2,1],[1]],-1)
(13,013)Chevie.Symbols.fakedegree — Method
fakedegree(S::CharSymbol,p=0)
returns as a CycPol the fake degree of the character of symbol S.
julia> fakedegree(CharSymbol([[1,5,6],[1,2]]))
q¹⁶Φ₅Φ₇Φ₈Φ₉Φ₁₀Φ₁₁Φ₁₄Φ₁₆Φ₁₈Φ₂₀Φ₂₂If S is an e-symbol, when given a second argument p dividing e, and a first argument of shape (0,…,0) representing the restriction of the character to G(e,e,r), works for the coset G(e,e,r).s₁ᵖ.
Chevie.Symbols.degree_feg — Function
degree_feg(s::CharSymbol)
the degree of the fake degree of the character parameterized by the symbol s.
julia> degree_feg(CharSymbol([[1,5,6],[1,2]]))
88Chevie.Symbols.valuation_feg — Function
valuation_feg(s::CharSymbol)
the valuation of the fake degree of the character parameterized by the symbol s.
julia> valuation_feg(CharSymbol([[1,5,6],[1,2]]))
16Chevie.Symbols.gendeg — Function
gendeg(S::CharSymbol)
returns as a CycPol the generic degree of the unipotent character parameterized by S.
julia> gendeg(CharSymbol([[1,2],[1,5,6]]))
q¹³Φ₅Φ₆Φ₇Φ₈²Φ₉Φ₁₀Φ₁₁Φ₁₄Φ₁₆Φ₁₈Φ₂₀Φ₂₂/2works for spetses G(e,1,r), G(e,e,r), ᵗG(e,e,r)
see (Malle, 1995; 3.9 and 6.4).
Chevie.Symbols.degree_gendeg — Function
degree_gendeg(S::CharSymbol)
the degree of the generic degree of the unipotent character parameterized by the symbol S.
julia> degree_gendeg(CharSymbol([[1,5,6],[1,2]]))
91Chevie.Symbols.valuation_gendeg — Function
valuation_gendeg(S::CharSymbol)
the valuation of the generic degree of the unipotent character parameterized by the symbol S.
julia> valuation_gendeg(CharSymbol([[1,5,6],[1,2]]))
13Chevie.Symbols.symbols — Function
symbols(e,r,content=1,Malledefect=0)
The list of e-symbols of rank r and given content and Malle-defect.
The symbols parametrize unipotent characters of:
G(d,1,r):symbols(d,r)G(e,e,r):symbols(e,r,0).G(e,e,r).s₁ᵗwheres₁is the first generator ofG(e,1,r)andt|e:symbols(e,r,0,t)
In particular we have
Aₙ:symbols(1,n)Bₙ:symbols(2,n)Dₙ:symbols(2,n,0)²Dₙ:symbols(2,n,0,1)²B₂:symbols(4,2,0,1)²G₂:symbols(6,2,0,1)
julia> symbols(2,4,0,1) # unipotent characters of ²D₄
10-element Vector{CharSymbol}:
(123,0)
(023,1)
(0124,12)
(01234,123)
(13,)
(013,2)
(014,1)
(0123,13)
(04,)
(012,3)Chevie.Symbols.ennola — Method
ennola(S::CharSymbol)
Ennola of e-symbol S (of content 1 or 0) The order of Ennola (order of center of reflection group) is computed automatically: it is e for content 1 and gcd(e,rank(S)) for content 0.
Chevie.Symbols.XSP — Function
XSP(ρ,s,n,even=false) Lusztig-Spaltenstein symbols.
returns the union of the (Lusztig and Spaltenstein, 1985) symbols $X̃^{ρ-s,s}_{n,d}$ for all d even when even=true, all d odd otherwise; these symbols parametrize local systems on unipotent conjugacy classes for classical groups. In (Lusztig, 2004; 13.2) the notation is ${}^ρ X^s_{n,d}$. The result is a vector of vectors, each inner vector regrouping the symbols in a similarity class (the local systems whose support is the same conjugacy class). If s==0, only positive defects d are considered.
XSP(2,1,n)gives Lusztig-Spaltenstein symbols for Sp₂ₙXSP(4,2,n)gives Lusztig-Spaltenstein symbols for Sp₂ₙ in char.2XSP(2,0,n)gives Lusztig-Spaltenstein symbols for SO₂ₙ₊₁ of odd defectXSP(2,0,n,true)gives Lusztig-Spaltenstein symbols for SO₂ₙ of even defectXSP(4,0,n,true)gives Lusztig-Spaltenstein symbols for SO₂ₙ in char 2
Each Lusztig-Spaltenstein symbol is represented by a LocSys.