-
Notifications
You must be signed in to change notification settings - Fork 140
LieAlgebras: Adapt Demazure operator #4384
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 16 commits
9ca3b38
38e324b
d02d24f
1ea071c
6bcf8f0
a99793d
1c14f8a
17cdb1e
2f36ec0
aa57ba4
c92f30f
2c34fcb
5877373
a3871cd
422ed18
83e55a7
7b52fef
d923264
bc24677
113d2d9
b1b04f5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -335,13 +335,13 @@ end | |||||
############################################################################### | ||||||
# demazures character formula | ||||||
function _demazure_operator(r::RootSpaceElem, w::WeightLatticeElem) | ||||||
fl, index_of_r = is_simple_root_with_index(r) | ||||||
@req fl "not a simple root" | ||||||
fl, index_of_r = is_positive_root_with_index(r) | ||||||
@req fl "r is not a positive root" | ||||||
|
||||||
d = 2 * dot(w, r)//dot(r, r) | ||||||
list_of_occuring_weights = WeightLatticeElem[] | ||||||
|
||||||
refl = reflect(w, index_of_r) | ||||||
refl = reflect(w, r) | ||||||
|
||||||
wlelem_r = WeightLatticeElem(r) | ||||||
if d > -1 | ||||||
|
@@ -364,10 +364,30 @@ function _demazure_operator(r::RootSpaceElem, w::WeightLatticeElem) | |||||
end | ||||||
end | ||||||
|
||||||
function demazure_operator(r::RootSpaceElem, w::WeightLatticeElem) | ||||||
return demazure_operator(r, Dict(w => 1)) | ||||||
end | ||||||
@doc raw""" | ||||||
demazure_operator(r::RootSpaceElem, w::WeightLatticeElem) -> Dict{WeightLatticeElem,<:IntegerUnion} | ||||||
demazure_operator(r::RootSpaceElem, groupringelem::Dict{WeightLatticeElem,<:IntegerUnion}) -> Dict{WeightLatticeElem,<:IntegerUnion} | ||||||
|
||||||
Computes the action of the Demazure operator associated to the positive root `r` on the given element of the groupring $\mathbb{Z}[P]$. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. (it would be far preferable if the input was an actual group ring element, but this may not currently be an option... though my understanding is that recently some code for this (group rings over larger groups via dices) has been added to Hecke by @thofma ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I did some tinkering with group algebras over the weight lattice (as an additive group) to represent characters a few weeks ago. This is indeed the preferred goal, but I wasn't satisfied with the usability of these objects yet (this is the main reason why these things are still in experimental). |
||||||
|
||||||
If a single Weight lattice element `w` is supplied, this is interpreted as `Dict(w => 1)`. | ||||||
|
||||||
# Examples | ||||||
```jldoctest | ||||||
julia> R = root_system(:A, 3); | ||||||
|
||||||
julia> pos_r = positive_root(R, 4) | ||||||
a_1 + a_2 | ||||||
|
||||||
julia> w = fundamental_weight(R, 1) | ||||||
w_1 | ||||||
|
||||||
julia> demazure_operator(pos_r, w) | ||||||
Dict{WeightLatticeElem, Int64} with 2 entries: | ||||||
-w_2 + w_3 => 1 | ||||||
w_1 => 1 | ||||||
``` | ||||||
""" | ||||||
function demazure_operator( | ||||||
r::RootSpaceElem, groupringelem::Dict{WeightLatticeElem,<:IntegerUnion} | ||||||
) | ||||||
|
@@ -386,6 +406,10 @@ function demazure_operator( | |||||
return dict | ||||||
end | ||||||
|
||||||
function demazure_operator(r::RootSpaceElem, w::WeightLatticeElem) | ||||||
return demazure_operator(r, Dict(w => 1)) | ||||||
end | ||||||
|
||||||
@doc raw""" | ||||||
demazure_character([T = Int], R::RootSystem, w::WeightLatticeElem, x::WeylGroupElem) -> Dict{WeightLatticeElem, T} | ||||||
demazure_character([T = Int], R::RootSystem, w::Vector{<:IntegerUnion}, x::WeylGroupElem) -> Dict{WeightLatticeElem, T} | ||||||
|
Uh oh!
There was an error while loading. Please reload this page.