-
Notifications
You must be signed in to change notification settings - Fork 133
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
LieAlgebras: Change WeylGroup action to a right action #4374
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #4374 +/- ##
==========================================
+ Coverage 84.34% 84.41% +0.07%
==========================================
Files 651 656 +5
Lines 86749 87720 +971
==========================================
+ Hits 73168 74050 +882
- Misses 13581 13670 +89
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the two places in the code, where this PR just adds a very stupid (but computationally expensive) workaround (see the two comments below), @felix-roehrich and I just talked and have the following path forward:
- Merge this PR (it works, and it is better to have the large breaking change in as early as possible)
- Change the internally used normal form for Weyl group element words (from short revlex to short lex), including basic operations like
*
. - Adapt the more complex functionality to the new normal form, get rid of the two workarounds added here.
@@ -362,7 +360,7 @@ function conjugate_dominant_weight_with_elem!(w::WeightLatticeElem) | |||
|
|||
# reversing word means it is in short revlex normal form | |||
# and it is the element taking original w to new w | |||
return w, weyl_group(root_system(w))(reverse!(word); normalize=false) | |||
return w, weyl_group(root_system(w))(word; normalize=true) # TODO: is normalize=true necessary? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here
# return state, state | ||
# TODO: change internals of iterator to return (wt, x) with wt*x == iter.weight instead of the hack below | ||
wt, x = state | ||
return (wt, inv(x)), state |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and here
6f1df3b
to
4f29652
Compare
This was a lot easier to do than I anticipated: it is already finished in #4375. This one here is good to go from my POV. #4375 will get rebased as soon as this one here is merged. |
Fine by me but perhaps let's wait till triage with merging this just in case there is more feedback? |
Re-running CI to verify that this does not break #4260 that was merged in the meantime. |
Triage had no objections. Will merge later this afternoon |
#4375) * Change WeylGroupElem normal form to short lex * Needed test changes * Clean up `conjugate_dominant_weight_with_elem` * Add `is_in_normal_form` test for Weyl group isomorphisms * Adapt AlgebraicShifting tests
After some discussion with @fingolfin we came to the conclusion, that Weyl groups should not have the special role they have right now, but should follow the Oscar rule that all group actions are from the right, out of consistency.
Other mathematical areas have swallowed the pill as well.
pinging all people that could be affected by this change: @felix-roehrich @janikapeters @gfourier @joschmitt @antonydellavecchia @flenzen