Lie Theory
Cartan matrices
JuLie.CartanMatrix
— Typestruct CartanMatrix{T} <: MatElem{T}
A (generalized) Cartan matrix $C$ is a square matrix over the integers, satisfying the following rules:
\[\begin{aligned} & C_{i,i} = 2 & \\ & C_{i,j} ≤ 0 \quad \text{ for } \quad i≠j \\ & C_{i,j} = 0 \quad \Leftrightarrow \quad C_{j,i} = 0`` \end{aligned}\]
We implement them as MatElem
from AbstractAlgebra.jl over fmpz
.
You can create a CartanMatrix with
CartanMatrix( "A4~" ) #calls essentially CartanMatrix('A', 4, true)
CartanMatrix( "C6" ) #calls essentially CartanMatrix('C', 6)
which generates the CartanMatrix: $\tilde{A_4}$ resp. $C_6$
If you would like to generate block diagonal matrices you can do so with
CartanMatrix(["A3~","G2","B12"]) #calls essentially CartanMatrix(['A','G','B'],[3,2,12],[true,false,false])
JuLie.is_cartan_matrix
— Functionis_cartan_matrix(C::CartanMatrix)
returns true iff C is a (generalized) Cartan matrix.
Complex reflection groups
JuLie.ImprimitiveComplexReflectionGroup
— TypeImprimitiveComplexReflectionGroup
In the Shephard–Todd classification of irreducible complex reflection groups, the imprimitive ones are of the form G(m,p,n) for positive integers m,p,n satisfying the following conditions:
- p divides m
- n > 1 (otherwise not primitive)
- (m,p,n) ≠ (1,1,n) (otherwise not irreducible)
- (m,p,n) ≠ (2,2,2) (otherwise not irreducible)
So far, these groups are not implemented as groups but just as a structure carrying the integers m,p,n. This will be upgraded to an actual group once OSCAR has decided how to do that formally and I know what's the best way to do this. Nonetheless, we can deduce useful information from just the integers.
Example
julia> W=ImprimitiveComplexReflectionGroup(2,1,4) #The Weyl group B4
julia> order(W)
384
JuLie.order
— Functionorder(W::ImprimitiveComplexReflectionGroup)
The order of the group W. For W=G(m,p,n) this is equal to (mⁿn!)/p.
References
G. Lehrer and D. Taylor, Unitary reflection groups, Australian Mathematical Society Lecture Series, Vol 20, Cambridge University Press (2009), p274.
JuLie.rank
— Functionrank(W::ImprimitiveComplexReflectionGroup)
By defniniton, the rank of W=G(m,p,n) is the number n. This is also equal the dimension of one (any) irreducible reflection representation of W.
JuLie.ngens
— Functionngens(W::ImprimitiveComplexReflectionGroup)
The cardinality of one (any) minimal generating set of W consisting of reflections of W. For W=G(m,p,n) this number is:
- n if p=1 or p=m
- n+1 otherwise.
References
G. Lehrer and D. Taylor, Unitary reflection groups, Australian Mathematical Society Lecture Series, Vol 20, Cambridge University Press (2009), p35.
JuLie.is_wellgenerated
— Functionis_wellgenerated(W::ImprimitiveComplexReflectionGroup)
The group W is called well-generated if it can be generated by n reflections, where n is the rank of W. By ngens(W::ImprimitiveComplexReflectionGroup)
the group W=G(m,p,n) is well-generated if and only if p=1 or p=m.
JuLie.degrees
— Functiondegrees(W::ImprimitiveComplexReflectionGroup)
The degrees of W are the degrees of one (any) system of fundamental invariants of the invariant ring ℂ[V]ᵂ, where V is one (any) irreducible reflection representation of W and ℂ[V] is the symmetric algebra of the dual of V. We sort the degrees increasingly. For W=G(m,p,n) they are m, 2m, …, (n-1)m, and nm/p. We sort them increasingly.
References
G. Lehrer and D. Taylor, Unitary reflection groups, Australian Mathematical Society Lecture Series, Vol 20, Cambridge University Press (2009), p274.
JuLie.exponents
— Functionexponents(W::ImprimitiveComplexReflectionGroup)
The exponents of W are the integers mᵢ ≔ dᵢ-1, where the dᵢ are the degrees of W.
JuLie.codegrees
— Functioncodegrees(W::ImprimitiveComplexReflectionGroup)
The codegrees of W, sorted decreasingly. For W=G(m,p,n) they are:
- 0, m, 2m, …, (n-1)m if p ≠ m;
- 0, m, 2m, …, (n-2)m, (n-1)m - n if p=m.
References
G. Lehrer and D. Taylor, Unitary reflection groups, Australian Mathematical Society Lecture Series, Vol 20, Cambridge University Press (2009), p274.
JuLie.coexponents
— Functioncoexponents(W::ImprimitiveComplexReflectionGroup)
The coexponents $m_i^*$ of W are related to the codegrees $d_i^*$ via $m_i^* := d_i^* + 1$.
JuLie.num_reflections
— Functionnum_reflections(W::ImprimitiveComplexReflectionGroup)
The number of (complex) reflections in W. This is equal to the sum over the exponents of W.
References
G. Lehrer and D. Taylor, Unitary reflection groups, Australian Mathematical Society Lecture Series, Vol 20, Cambridge University Press (2009), Theorem 4.14.
JuLie.num_classes_reflections
— Functionnum_classes_reflections(W::ImprimitiveComplexReflectionGroup)
The number of conjugacy classes of (complex) reflections in W. For W=G(m,p,n) this is equal to:
- m/p if n>2, or n=2 and p is odd;
- m/p + 1 if n=2 and p is even.
References
U. Thiel, On restricted rational Cherednik algebras (2014), Theorem 15.27.
JuLie.num_hyperplanes
— Functionnum_hyperplanes(W::ImprimitiveComplexReflectionGroup)
The number of reflecting hyperplanes (fixed spaces of complex reflections) of W. This is equal to the sum over the coexponents.
JuLie.coxeter_number
— Functioncoxeter_number(W::ImprimitiveComplexReflectionGroup)
The Coxeter number $h$ of $W$ is defined as
\[h := \frac{N+N^*}{n} \;,\]
where $N$ is the number of reflections, $N^*$ is the number of reflecting hyperplanes, and $n$ is the rank of $W$.