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

LieAlgebras: further improvements and new features #2528

Merged
merged 28 commits into from
Jul 25, 2023

Conversation

lgoettgens
Copy link
Member

@lgoettgens lgoettgens commented Jul 6, 2023

This includes:

  • type stability fixes
  • general cleanup
  • replacing base_ring by coefficient_ring
  • adding universal_enveloping_algebra as a special constructor for PBWAlgebra
  • pretty printing
  • new type: ideals of Lie algebras
  • new type: Lie subalgebras
  • some important ideals and subalgebras (center, derived algebra,...)

@lgoettgens lgoettgens force-pushed the lg/lie-algebras branch 2 times, most recently from 607d712 to 05f14f3 Compare July 7, 2023 12:01
@codecov
Copy link

codecov bot commented Jul 7, 2023

Codecov Report

Merging #2528 (9473995) into master (5ff0130) will decrease coverage by 0.12%.
The diff coverage is 66.72%.

❗ Current head 9473995 differs from pull request most recent head b031420. Consider uploading reports for the commit b031420 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2528      +/-   ##
==========================================
- Coverage   71.69%   71.57%   -0.12%     
==========================================
  Files         418      420       +2     
  Lines       57798    58178     +380     
==========================================
+ Hits        41438    41642     +204     
- Misses      16360    16536     +176     
Impacted Files Coverage Δ
experimental/LieAlgebras/src/LieAlgebras.jl 100.00% <ø> (ø)
experimental/LieAlgebras/src/AbstractLieAlgebra.jl 59.72% <29.72%> (-30.76%) ⬇️
experimental/LieAlgebras/src/LieAlgebraIdeal.jl 53.76% <53.76%> (ø)
experimental/LieAlgebras/src/LieSubalgebra.jl 61.76% <61.76%> (ø)
experimental/LieAlgebras/src/LieAlgebraModule.jl 81.86% <65.62%> (-13.49%) ⬇️
experimental/LieAlgebras/src/LinearLieAlgebra.jl 87.23% <79.16%> (-5.99%) ⬇️
experimental/LieAlgebras/src/LieAlgebra.jl 83.33% <81.57%> (+0.98%) ⬆️
experimental/LieAlgebras/test/LieAlgebra-test.jl 91.50% <86.66%> (-4.15%) ⬇️
experimental/LieAlgebras/src/GapWrapper.jl 100.00% <100.00%> (ø)
experimental/LieAlgebras/src/Util.jl 100.00% <100.00%> (ø)
... and 3 more

... and 3 files with indirect coverage changes

@lgoettgens lgoettgens force-pushed the lg/lie-algebras branch 3 times, most recently from fee3f32 to c22b982 Compare July 14, 2023 09:11
@lgoettgens lgoettgens marked this pull request as ready for review July 14, 2023 10:41
@lgoettgens
Copy link
Member Author

The errors on nightly are not due to changes here.

@thofma
Copy link
Collaborator

thofma commented Jul 17, 2023

@lgoettgens Do you know who would be a suitable reviewer?

@lgoettgens
Copy link
Member Author

I didn't see I can request reviews now by myself. I chose @fingolfin and @ThomasBreuer as they are, by my knowledge, the two people from the OSCAR team having a background and maybe an opinion on Lie algebras.

Copy link
Member

@ThomasBreuer ThomasBreuer left a comment

Choose a reason for hiding this comment

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

This looks overall very nice.
I have left a few minor comments.

experimental/LieAlgebras/src/LieAlgebraModule.jl Outdated Show resolved Hide resolved
experimental/LieAlgebras/src/LieAlgebraModule.jl Outdated Show resolved Hide resolved
experimental/LieAlgebras/src/LieSubalgebra.jl Outdated Show resolved Hide resolved
Return `S` as a Lie algebra.
"""
function lie_algebra(S::LieSubalgebra)
return lie_algebra(basis(S)) #, embedding_hom # TODO
Copy link
Member

Choose a reason for hiding this comment

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

There are other places, too, where an independent new algebraic structure gets created from a given substructure. Either the embedding morphism should be returned by the function that constructs the new object, or a function is_subalgebra (or so) should be provided that computes the embedding on demand (similar to the situation with is_subfield or is_subgroup).

Copy link
Member Author

Choose a reason for hiding this comment

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

As reflected by the comment in the code, this is planned for a future PR. As one would first introduce a new type of morphisms, this seemed to be too involved for this PR, but will be added in the future.

Return the normalizer of `I` in `L`, i.e. $\{x \in L \mid [x, I] \subseteq I\} = L$.
"""
function normalizer(L::LieAlgebra, I::LieAlgebraIdeal)
return sub(L)
Copy link
Member

Choose a reason for hiding this comment

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

The code says that the normalizer of an ideal is the full Lie algebra, the documentation states the definition of a normalizer; this looks strange.

It should be checked that I is really an ideal in L.

Copy link
Member Author

Choose a reason for hiding this comment

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

For subalgebras, the corresponding function actually calculates something. As the normalizer of an ideal always is the full Lie algebra, there is nothing to check here. I adapted the docstring to reflect that in 1e40cb8

Copy link
Member

Choose a reason for hiding this comment

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

Thanks.
It is still possible that someone enters an I that is an ideal in some other Lie algebra, not in L.

Copy link
Member Author

Choose a reason for hiding this comment

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

Oh yeah, that's true. I will add a check for that after lunch

Copy link
Member Author

Choose a reason for hiding this comment

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

Added in e7f6534

experimental/LieAlgebras/src/LieAlgebraIdeal.jl Outdated Show resolved Hide resolved
experimental/LieAlgebras/src/LieAlgebra.jl Outdated Show resolved Hide resolved
experimental/LieAlgebras/src/LieAlgebra.jl Outdated Show resolved Hide resolved
experimental/LieAlgebras/src/LieAlgebraModule.jl Outdated Show resolved Hide resolved
@lgoettgens
Copy link
Member Author

All comments by @ThomasBreuer should be addressed now.

@ThomasBreuer
Copy link
Member

@lgoettgens Thanks.
There was one test failure which looks not related to this pull request. (I got the same failure in #2410.)

@ThomasBreuer ThomasBreuer merged commit 3fbfcd2 into oscar-system:master Jul 25, 2023
12 checks passed
@lgoettgens lgoettgens deleted the lg/lie-algebras branch July 25, 2023 09:20
@ThomasBreuer ThomasBreuer mentioned this pull request Aug 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants