Skip to content
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

map_word and parabolic_subgroup for Weyl groups #4519

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

TWiedemann
Copy link
Contributor

Adds parabolic_subgroup as discussed in #4483. This relies on the new map_word. I also added parabolic_subgroup_with_projection (maybe the name is not good) which, in addition, returns the projection homomorphism from the large Weyl group to the parabolic subgroup.

I set this to draft because:

  1. Someone will have to tell me where precisely to put the exports. I assume they go to experimental/LieAlgebras/src/exports.jl. For the moment I put them there at the end of file (where I will sort them alphabetically once this is clarified).
  2. Examples/jldoctests for parabolic_subgroup(_with_projection) are still missing.

@TWiedemann
Copy link
Contributor Author

In my function map_word(::WeylGroupElem, ...), I had to call map_word(::Vector{Int}, ...) with Oscar.map_word while map_word(::Vector{Int}, ...) worked fine on the REPL. Not sure what is going on there. Probably related to the doctest failure:

WARNING: using LieAlgebras.map_word in module Oscar conflicts with an existing identifier.
[...]
ERROR: MethodError: no method matching map_word(::WeylGroupElem, ::Vector{Int64})

@thofma
Copy link
Collaborator

thofma commented Jan 29, 2025

@lgoettgens lgoettgens added enhancement New feature or request topic: LieTheory labels Jan 30, 2025
@lgoettgens lgoettgens added the experimental Only changes experimental parts of the code label Jan 30, 2025
@TWiedemann TWiedemann marked this pull request as ready for review January 30, 2025 12:43
@TWiedemann TWiedemann marked this pull request as draft January 30, 2025 12:44
@TWiedemann
Copy link
Contributor Author

@thofma @fingolfin @lgoettgens Thanks for the help and suggestions! I fixed everything.

One non-nightly test fails: Am I not allowed to spread a string over several lines with "", as in WeylGroup.jl:398?

        @req is_zero_entry(cm, i, j) begin
          "Input vector does not describe a factor of the Weyl group, \
          so there is no projection homomorphism"
        end

This was apparently introduced in Julia 1.7, which might be the problem.

@lgoettgens
Copy link
Member

Could you please also use map_word in the isomorphism functions in the same file (cf. #4478 (comment))? This would then provide as another indirect test of the newly added function

Copy link

codecov bot commented Jan 30, 2025

Codecov Report

Attention: Patch coverage is 93.54839% with 2 lines in your changes missing coverage. Please review.

Project coverage is 84.41%. Comparing base (d5e963e) to head (1eb9077).
Report is 13 commits behind head on master.

Files with missing lines Patch % Lines
experimental/LieAlgebras/src/WeylGroup.jl 93.54% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4519      +/-   ##
==========================================
+ Coverage   84.16%   84.41%   +0.24%     
==========================================
  Files         672      672              
  Lines       88768    89156     +388     
==========================================
+ Hits        74715    75261     +546     
+ Misses      14053    13895     -158     
Files with missing lines Coverage Δ
experimental/LieAlgebras/src/LieAlgebras.jl 100.00% <ø> (ø)
experimental/LieAlgebras/test/WeylGroup-test.jl 100.00% <ø> (ø)
src/Groups/GAPGroups.jl 94.11% <ø> (+0.32%) ⬆️
experimental/LieAlgebras/src/WeylGroup.jl 94.25% <93.54%> (-0.49%) ⬇️

... and 56 files with indirect coverage changes

@TWiedemann TWiedemann marked this pull request as ready for review January 30, 2025 20:45
@TWiedemann
Copy link
Contributor Author

Could you please also use map_word in the isomorphism functions in the same file (cf. #4478 (comment))? This would then provide as another indirect test of the newly added function

Done. Also added links to the new map_word in the docs of the old map_word functions.

I have removed the draft status.

@lgoettgens lgoettgens requested a review from fingolfin January 30, 2025 21:00
Copy link
Member

@lgoettgens lgoettgens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks! @fingolfin could you please have a look again as well?

Copy link
Member

@fingolfin fingolfin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me in principle, but I have a few small suggestions.

experimental/LieAlgebras/src/WeylGroup.jl Outdated Show resolved Hide resolved
experimental/LieAlgebras/src/WeylGroup.jl Outdated Show resolved Hide resolved
experimental/LieAlgebras/src/WeylGroup.jl Show resolved Hide resolved
Here `P, emb = `[`parabolic_subgroup`](@ref)`(W, vec)`
and `proj` is the projection map from `W` onto `P`,
which is a left-inverse of `emb`.
If `P` is not a factor of `W`, an error occurs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe document the optional kwarg check_factor / check? Or is it deliberately undocumented?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was a deliberate choice to not document because it seemed to me that the user should not normally disable the check. I had the set_properties argument of isomorphism in mind (previous disucssion); however, I do see now that the situations are rather different: set_properties = false really only makes sense for test purposes, which is not the case for check here. So yes, I agree that this should be documented. Will do that.

experimental/LieAlgebras/src/WeylGroup.jl Outdated Show resolved Hide resolved
experimental/LieAlgebras/test/WeylGroup-test.jl Outdated Show resolved Hide resolved
experimental/LieAlgebras/src/WeylGroup.jl Outdated Show resolved Hide resolved
experimental/LieAlgebras/src/WeylGroup.jl Outdated Show resolved Hide resolved
@TWiedemann
Copy link
Contributor Author

@fingolfin Thanks! I will implement the remaining suggestions tomorrow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request experimental Only changes experimental parts of the code topic: LieTheory
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants