Skip to content

Commit 57c1b68

Browse files
Move Weyl groups and root systems to src/ (#4399)
Co-authored-by: Felix Röhrich <[email protected]>
1 parent e40ea6d commit 57c1b68

35 files changed

+3433
-3251
lines changed

docs/doc.main

+9-1
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@
248248
"TropicalGeometry/tropicalization.md",
249249
],
250250

251-
"Noncommutative Algebra" => [
251+
"Noncommutative Algebra" => [
252252
"NoncommutativeAlgebra/intro.md",
253253
"PBW-Algebras" => [
254254
"NoncommutativeAlgebra/PBWAlgebras/intro.md",
@@ -259,6 +259,14 @@
259259
"NoncommutativeAlgebra/free_associative_algebra.md",
260260
],
261261

262+
"Lie Theory" => [
263+
"LieTheory/intro.md",
264+
"LieTheory/cartan_matrix.md",
265+
"LieTheory/root_systems.md",
266+
"LieTheory/weight_lattices.md",
267+
"LieTheory/weyl_groups.md",
268+
],
269+
262270
"Combinatorics" => [
263271
"Combinatorics/graphs.md",
264272
"Combinatorics/matroids.md",

experimental/LieAlgebras/docs/src/cartan_matrix.md docs/src/LieTheory/cartan_matrix.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ CurrentModule = Oscar
33
DocTestSetup = Oscar.doctestsetup()
44
```
55

6-
# Cartan Matrices
6+
# Cartan matrices
77

88
Cartan matrices can be constructed from a Cartan type, and are represented as a square `ZZMatrix`.
99

docs/src/LieTheory/intro.md

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
```@meta
2+
CurrentModule = Oscar
3+
DocTestSetup = Oscar.doctestsetup()
4+
```
5+
6+
# Introduction
7+
8+
The Lie theory part of OSCAR provides functionality for handling
9+
- [Cartan matrices](@ref)
10+
- [Root systems](@ref)
11+
- [Weyl groups](@ref)
12+
- [Weight lattices](@ref)
13+
- more content can be found under `Experimental/LieAlgebras`
14+
15+
It aims to provide the computational tools to work with the concepts defined in [Hum72](@cite) and [Bou02](@cite).
16+
17+
## Contact
18+
19+
Please direct questions about this part of OSCAR to the following people:
20+
* [Lars Göttgens](https://lgoe.li/)
21+
* [Max Horn](https://math.rptu.de/en/wgs/agag/people/head/prof-dr-max-horn).
22+
* [Felix Röhrich](https://www.art.rwth-aachen.de/cms/~xlgua)
23+
24+
You can ask questions in the [OSCAR Slack](https://www.oscar-system.org/community/#slack).
25+
26+
Alternatively, you can [raise an issue on github](https://www.oscar-system.org/community/#how-to-report-issues).

experimental/LieAlgebras/docs/src/weyl_groups.md docs/src/LieTheory/weyl_groups.md

+5-13
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ weyl_group(::Vector{Tuple{Symbol,Int}})
3434
Basic group arithmetic like `*`, and `inv` are defined for `WeylGroupElem` objects.
3535

3636
Using `(W::WeylGroup)(word::Vector{<:Integer})`, one can construct group elements from a word in the generators.
37+
Finite Weyl groups support iteration over all group elements (in an arbitrary order).
3738

3839
```@docs
3940
is_finite(::WeylGroup)
@@ -62,18 +63,6 @@ longest_element(::WeylGroup)
6263
```
6364

6465

65-
## Conversion to other group types
66-
67-
For many computations, it may be suitable to have a `WeylGroup` as a different kind of group object, to e.g. use functionality that is only available for that other type.
68-
69-
The conversion functions come in pairs: one only creates an isomorphic group object, the other also computes the isomorphism.
70-
71-
```@docs
72-
fp_group(::WeylGroup)
73-
isomorphism(::Type{FPGroup}, ::WeylGroup)
74-
```
75-
76-
7766
## Reduced expressions
7867

7968
```@docs
@@ -89,4 +78,7 @@ reduced_expressions(::WeylGroupElem)
8978

9079

9180
### Orbits
92-
TODO
81+
82+
```@docs
83+
weyl_orbit(::WeightLatticeElem)
84+
```

etc/test_formatting.jl

+2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ result = 0
4444
"src/InvariantTheory",
4545
"src/PolyhedralGeometry",
4646
"test/PolyhedralGeometry",
47+
"src/LieTheory",
48+
"test/LieTheory",
4749
"src/aliases.jl",
4850
"experimental/BasisLieHighestWeight",
4951
"experimental/ExperimentalTemplate",

experimental/BasisLieHighestWeight/src/BasisLieHighestWeight.jl

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ module BasisLieHighestWeight
33
using ..Oscar
44
using ..Oscar: IntegerUnion
55
using ..Oscar: _is_weighted
6+
using ..Oscar: _root_system_type_string
67

7-
using Oscar.LieAlgebras:
8-
_root_system_type_string,
9-
lie_algebra_simple_module_struct_consts_gap
8+
using Oscar.LieAlgebras: lie_algebra_simple_module_struct_consts_gap
109

1110
using AbstractAlgebra.PrettyPrinting
1211

experimental/Experimental.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const expdir = joinpath(@__DIR__, "../experimental")
88
const orderedpkgs = [
99
"LieAlgebras",
1010
"BasisLieHighestWeight", # needs code from LieAlgebras
11-
"AlgebraicShifting", # Needs code form Lie Algebras (Weyl Groups specifically)
11+
"AlgebraicShifting", # Needs code from Lie Algebras (`isomorphism(PermGroup, ::WeylGroup)` specifically)
1212
"SetPartitions",
1313
"PartitionedPermutations", # needs code from SetPartitions
1414
"Schemes",

experimental/GModule/src/GModule.jl

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
isdefined(Oscar, :word) || function word end
2-
31
include("Cohomology.jl")
42
include("GaloisCohomology.jl")
53
include("GrpExt.jl")

experimental/LieAlgebras/docs/doc.main

+1-4
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
"lie_algebra_homs.md",
77
"modules.md",
88
"module_homs.md",
9-
"cartan_matrix.md",
10-
"root_systems.md",
11-
"weight_lattices.md",
12-
"weyl_groups.md",
9+
"weyl_groups_experimental.md",
1310
],
1411
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
```@meta
2+
CurrentModule = Oscar
3+
DocTestSetup = Oscar.doctestsetup()
4+
```
5+
6+
# Weyl groups (experimental features)
7+
8+
This page is an addition to the documentation of [Weyl groups](@ref) with the additional experimental features.
9+
10+
11+
## Conversion to other group types
12+
13+
For many computations, it may be suitable to have a `WeylGroup` as a different kind of group object, to e.g. use functionality that is only available for that other type.
14+
15+
The conversion functions come in pairs: one only creates an isomorphic group object, the other also computes the isomorphism.
16+
17+
```@docs
18+
fp_group(::WeylGroup)
19+
isomorphism(::Type{FPGroup}, ::WeylGroup)
20+
```

experimental/LieAlgebras/src/LieAlgebras.jl

+10-30
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
isdefined(Oscar, :word) || function word end
2-
31
module LieAlgebras
42

53
using ..Oscar
64

7-
import Oscar: GAPWrap, IntegerUnion, MapHeader
5+
using Oscar:
6+
_root_system_type_string,
7+
_vec,
8+
GAPWrap,
9+
IntegerUnion,
10+
MapHeader,
11+
set_root_system_type!
812

913
import Random
1014

@@ -19,20 +23,19 @@ import ..Oscar:
1923
_is_exterior_power,
2024
_is_tensor_product,
2125
_iso_oscar_gap,
22-
_vec,
2326
action,
24-
add!,
25-
addmul!,
2627
basis_matrix,
2728
basis,
2829
canonical_injection,
2930
canonical_injections,
3031
canonical_projection,
3132
canonical_projections,
33+
cartan_matrix,
3234
center,
3335
centralizer,
3436
character,
3537
characteristic,
38+
check_parent,
3639
coeff,
3740
coefficient_ring,
3841
coefficients,
@@ -41,15 +44,13 @@ import ..Oscar:
4144
derived_series,
4245
dim,
4346
direct_sum,
44-
dot,
4547
dual,
4648
elem_type,
4749
expressify,
4850
exterior_power,
4951
fp_group,
5052
gen,
5153
gens,
52-
height,
5354
hom,
5455
hom_direct_sum,
5556
hom_tensor,
@@ -59,8 +60,6 @@ import ..Oscar:
5960
induced_map_on_exterior_power,
6061
inv,
6162
is_abelian,
62-
is_finite,
63-
is_gen,
6463
is_isomorphism,
6564
is_nilpotent,
6665
is_perfect,
@@ -71,25 +70,17 @@ import ..Oscar:
7170
kernel,
7271
lower_central_series,
7372
matrix,
74-
mul!,
75-
neg!,
7673
normalizer,
7774
number_of_generators,
7875
ngens,
79-
order,
8076
parent_type,
8177
permutation_group,
8278
rank,
83-
root,
84-
roots,
79+
root_system,
8580
sub,
86-
sub!,
8781
symbols,
8882
symmetric_power,
8983
tensor_product,
90-
weyl_vector,
91-
word,
92-
zero!,
9384
zero_map,
9485
,
9586
@@ -110,23 +101,12 @@ export _is_symmetric_power
110101
export _is_tensor_power
111102
export _is_tensor_product
112103

113-
# Aliases
114-
function number_of_positive_roots end
115-
function number_of_roots end
116-
function number_of_simple_roots end
117-
118-
@alias n_positive_roots number_of_positive_roots
119-
@alias n_roots number_of_roots
120-
@alias n_simple_roots number_of_simple_roots
121-
122104
include("Types.jl")
123105
include("Combinatorics.jl")
124106
include("Util.jl")
125107

126-
include("CartanMatrix.jl")
127108
include("CoxeterGroup.jl")
128109
include("RootSystem.jl")
129-
include("WeightLattice.jl")
130110
include("DynkinDiagram.jl")
131111
include("WeylGroup.jl")
132112

0 commit comments

Comments
 (0)