Symbols

Chevie.SymbolsModule

The combinatorial objects in this module are partitions, β-sets and symbols.

A partition is a non-increasing list of positive integers p₁≥p₂≥…pₙ≥0, represented as a Vector{Int}, which is normalized if it has no trailing zeroes.

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. 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.

As a generalisation of β-sets, Lusztig1977 has introduced 2-symbols and more general e-symbols were introduced in Malle1995. 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 representatives of the symbols [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). For symbols [S₁,S₂] with length(S₁)==length(S₂) we choose representatives such that P₁≤P₂ lexicographically where P₁,P₂ are the partitions associated to S₁,S₂.

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 of type Dₙ, and symbols of rank n and defect divisible by 4 parameterize unipotent characters of split orthogonal groups of dimension 2n. Symbols of rank n and defect≡2 (mod 4) parameterize unipotent characters of non-split orthogonal groups of dimension 2n. Symbols of rank n and defect 1 parametrize characters of the Weyl group of type Bₙ, and symbols of rank n and odd defect parametrize unipotent characters of symplectic groups of dimension 2n or orthogonal groups of dimension 2n+1.

e-symbols of rank n and content 1 parameterize unipotent characters of G(e,1,n). Those of content 0 parameterize unipotent characters of G(e,e,n). The principal series (in bijection with characters of the reflection group) is parametrized by symbols of shape [1,0,…,0] for G(e,1,n) and [0,…,0] for G(e,e,n).

Finally, in this module we also provides a function XSP which returns the "symbols" (pairs of lists 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.

source
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
 3
source
Chevie.Symbols.βsetFunction

βset(p) normalized β-set of partition p

julia> βset([3,3,1])
3-element Vector{Int64}:
 1
 4
 5
source
Chevie.Symbols.symbolsFunction

symbols(e,r,c=1,def=0)

The list of e-symbols of rank r, content c and Malle-defect def

An e-symbol is a symbol of length e. The content of an e-symbol S is sum(length,S)%e. The symbols for unipotent characters of:

  • G(d,1,r) are symbols(d,r)
  • G(e,e,r) are symbols(e,r,0).
  • G(e,e,r).s₁ᵗ where s₁ is the first generator of G(e,1,r) and t|e are symbols(e,r,0,t)
julia> stringsymbol.(symbols(3,2)) # unipotent characters of G(3,1,2)
14-element Vector{String}:
 "(12,0,0)"
 "(02,1,0)"
 "(02,0,1)"
 "(012,12,01)"
 "(01,1,1)"
 "(012,01,12)"
 "(2,,)"
 "(01,2,0)"
 "(01,0,2)"
 "(1,012,012)"
 "(,02,01)"
 "(,01,02)"
 "(0,,012)"
 "(0,012,)"

julia> stringsymbol.(symbols(3,3,0)) # unipotent characters of G(3,3,3)
12-element Vector{String}:
 "(1+)"
 "(1E(3))"
 "(1E(3,2))"
 "(01,12,02)"
 "(01,02,12)"
 "(012,012,123)"
 "(0,1,2)"
 "(0,2,1)"
 "(01,01,13)"
 "(0,0,3)"
 "(012,,)"
 "(012,012,)"
source
Chevie.Symbols.defectsymbolFunction

`defectsymbol(s)'

For an e-symbol [S₁,S₂,…,Sₑ] returns length(S₁)-length(S₂).

julia> defectsymbol([[1,5,6],[1,2]])
1
source
Chevie.Symbols.symbol_partition_tupleFunction

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)
2-element Vector{Vector{Int64}}:
 [1, 3]
 [1]

julia> symbol_partition_tuple([[2,1],[1]],0)
2-element Vector{Vector{Int64}}:
 [1, 3]
 [0, 2]

julia> symbol_partition_tuple([[2,1],[1]],-1)
2-element Vector{Vector{Int64}}:
 [1, 3]
 [0, 1, 3]
source
Chevie.Symbols.string_partition_tupleFunction

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"
source
Chevie.Symbols.fegsymbolFunction

fegsymbol(S,p=0)

returns as a CycPol the fake degree of the character of symbol S.

julia> fegsymbol([[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₁ᵖ.

source
Chevie.Symbols.degree_fegsymbolFunction

degree_fegsymbol(s)

the degree of the fake degree of the character parameterized by the symbol s.

julia> degree_fegsymbol([[1,5,6],[1,2]])
88
source
Chevie.Symbols.valuation_fegsymbolFunction

valuation_fegsymbol(s)

the valuation of the fake degree of the character parameterized by the symbol s.

julia> valuation_fegsymbol([[1,5,6],[1,2]])
16
source
Chevie.Symbols.gendeg_symbolFunction

gendeg_symbol(S)

returns as a CycPol the generic degree of the unipotent character parameterized by S.

julia> gendeg_symbol([[1,2],[1,5,6]])
q¹³Φ₅Φ₆Φ₇Φ₈²Φ₉Φ₁₀Φ₁₁Φ₁₄Φ₁₆Φ₁₈Φ₂₀Φ₂₂/2

for an e-symbol of rank r, content c and Malle-defect d the Spets is

  • G(e,1,r) (c==1, d==0)
  • G(e,e,r) (c==0, d==0)
  • ²G(e,e,r) (c==0, d==1) (e,r even. This includes ²Dₙ, ²B₂, ²G₂)

see 3.9 and 6.4 Malle1995.

source
Chevie.Symbols.degree_gendeg_symbolFunction

degree_gendeg_symbol(S)

the degree of the generic degree of the unipotent character parameterized by the symbol S.

julia> degree_gendeg_symbol([[1,5,6],[1,2]])
91
source
Chevie.Symbols.valuation_gendeg_symbolFunction

valuation_gendeg_symbol(S)

the valuation of the generic degree of the unipotent character parameterized by the symbol S.

julia> valuation_gendeg_symbol([[1,5,6],[1,2]])
13
source
Chevie.Symbols.EnnolaSymbolFunction

EnnolaSymbol(S)

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.

source
Chevie.Symbols.stringsymbolFunction

stringsymbol(io=stdout,S) string for symbol S [taking io in account].

julia> stringsymbol.(rio(),symbols(3,3,0))
12-element Vector{String}:
 "(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,)"
source
Chevie.Symbols.XSPFunction

XSP(ρ,s,n,even=false)

returns the union of the Lusztig-Spaltenstein 1985 $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 Lusztig2004, 13.2 the notation is ${}^ρ X^s_{n,d}$. The result is a list of lists, each one corresponding to a similarity class (which correspond to a given conjugacy class for the support). If s==0, only positive defects are considered.

  • XSP(2,1,n) gives L-S symbols for Sp₂ₙ
  • XSP(4,2,n) gives L-S symbols for Sp₂ₙ in char.2
  • XSP(2,0,n) gives L-S symbols for SO₂ₙ₊₁ [defect odd]
  • XSP(2,0,n,true) gives L-S symbols for SO₂ₙ [defect even]
  • XSP(4,0,n,true) gives L-S symbols for SO₂ₙ in char 2

each item is a NamedTuple giving some information on the local system. It has fields

  • symbol the Lusztig-Spaltenstein symbol
  • dimBu for the support u of the local system
  • Au describes the character of A(u) for the local system as a list: true->sgn, false->Id
  • sp parameter (double partition) of the generalized Springer correspondent (a character of the relative Weyl group)
source