Weight lattices

Weight lattices are represented by objects of type WeightLattice <: AdditiveGroup, and their elements by WeightLatticeElem <: AdditiveGroupElement.

They are introduced to have a formal parent object of all weights that correspond to a common given root system.

Note

See Cartan types for our conventions on Cartan types and ordering of simple roots.

Table of contents

Constructing weight lattices

weight_latticeMethod
weight_lattice(R::RootSystem) -> WeightLattice

Return the weight lattice of R, i.e. the lattice spanned by the fundamental weights.

This is the parent of all weights of R.

Examples

julia> weight_lattice(root_system([2 -1; -1 2]))
Weight lattice
  of root system of rank 2
    of type A2

julia> weight_lattice(root_system(matrix(ZZ, 2, 2, [2, -1, -1, 2]); detect_type=false))
Weight lattice
  of root system of rank 2
    of unknown type

julia> weight_lattice(root_system(matrix(ZZ, [2 -1 -2; -1 2 0; -1 0 2])))
Weight lattice
  of root system of rank 3
    of type C3 (with non-canonical ordering of simple roots)
source

Properties of weight lattices

rankMethod
rank(P::WeightLattice) -> Int

Return the rank of the weight lattice P.

source
is_finiteMethod
is_finite(P::WeightLattice) -> Bool

Check if the weight lattice P is finite, i.e. if it has rank 0.

source
zeroMethod
zero(P::WeightLattice) -> WeightLatticeElem

Return the neutral additive element in the weight lattice P.

source
genMethod
gen(P::WeightLattice, i::Int) -> WeightLatticeElem

Return the i-th generator of the weight lattice P, i.e. the i-th fundamental weight of the root system of P.

This is a more efficient version for gens(P)[i].

See also: fundamental_weight(::RootSystem, ::Int).

source
root_systemMethod
root_system(P::WeightLattice) -> RootSystem

Return the underlying root system of P.

source

Weight lattice elements

WeightLatticeElemMethod
WeightLatticeElem(P::WeightLattice, vec::Vector{<:IntegerUnion}) -> WeightLatticeElem

Construct a weight lattice element in P with the given coefficients w.r.t. the fundamental weights of corresponding root system.

source
WeightLatticeElemMethod
WeightLatticeElem(R::RootSystem, vec::Vector{<:IntegerUnion}) -> WeightLatticeElem

Construct a weight lattice element in the root system R with the given coefficients w.r.t. the fundamental weights of R.

source
WeightLatticeElemMethod
WeightLatticeElem(P::WeightLattice, vec::ZZMatrix) -> WeightLatticeElem

Construct a weight lattice element in P with the given coefficients w.r.t. the fundamental weights of corresponding root system.

vec must be a row vector of the same length as the rank of P.

source
WeightLatticeElemMethod
WeightLatticeElem(R::RootSystem, vec::ZZMatrix) -> WeightLatticeElem

Construct a weight lattice element in the root system R with the given coefficient vector w.r.t. the fundamental weights of R.

vec must be a row vector of the same length as the rank of R.

source
WeightLatticeElemMethod
WeightLatticeElem(r::RootSpaceElem) -> WeightLatticeElem

Construct a weight lattice element from the root space element r.

source

Basic arithmetic operations like zero, +, -, * (with integer scalars), and == are supported.

coeffMethod
coeff(w::WeightLatticeElem, i::Int) -> ZZRingElem

Return the coefficient of the i-th fundamental weight in w.

This can be also accessed via w[i].

source
coefficientsMethod
coefficients(w::WeightLatticeElem) -> ZZMatrix

Return the coefficients of the weight lattice element w w.r.t. the fundamental weights as a row vector.

Note

The return type may not be relied on; we only guarantee that it is a one-dimensional iterable with eltype ZZRingElem that can be indexed with integers.

source
iszeroMethod
iszero(w::WeightLatticeElem) -> Bool

Return whether w is zero.

source
is_dominantMethod
is_dominant(w::WeightLatticeElem) -> Bool

Check if w is a dominant weight, i.e. if all coefficients are non-negative.

source

Reflections

Conjugate dominant weight

conjugate_dominant_weight_with_elemMethod
conjugate_dominant_weight_with_elem(w::WeightLatticeElem) -> Tuple{WeightLatticeElem, WeylGroupElem}

Returns the unique dominant weight dom conjugate to w and a Weyl group element x such that w * x == dom.

source