Functions for a monomial basis of highest weight modules
basis_lie_highest_weight_operators — Function
basis_lie_highest_weight_operators(type::Symbol, rank::Int)Lists the operators available for a given simple Lie algebra of type type_rank, together with their index. Operators $f_\alpha$ of negative roots are shown as the coefficients of the corresponding positive root. w.r.t. the simple roots $\alpha_i$.
Examples
julia> basis_lie_highest_weight_operators(:B, 2)
4-element Vector{Tuple{Int64, Vector{QQFieldElem}}}:
(1, [1, 0])
(2, [0, 1])
(3, [1, 1])
(4, [1, 2])This function is part of the experimental code in Oscar. Please read here for more details.
basis_lie_highest_weight — Function
basis_lie_highest_weight(type::Symbol, rank::Int, highest_weight::Vector{Int}; monomial_ordering::Symbol=:degrevlex)
basis_lie_highest_weight(type::Symbol, rank::Int, highest_weight::Vector{Int}, birational_sequence::Vector{Int}; monomial_ordering::Symbol=:degrevlex)
basis_lie_highest_weight(type::Symbol, rank::Int, highest_weight::Vector{Int}, birational_sequence::Vector{Vector{Int}}; monomial_ordering::Symbol=:degrevlex)Compute a monomial basis for the highest weight module with highest weight highest_weight (in terms of the fundamental weights $\omega_i$), for a simple Lie algebra of type type_rank.
If no birational sequence is specified, all operators in the order of basis_lie_highest_weight_operators are used. A birational sequence of type Vector{Int} is a sequence of indices of operators in basis_lie_highest_weight_operators. A birational sequence of type Vector{Vector{Int}} is a sequence of weights in terms of the simple roots $\alpha_i$.
monomial_ordering describes the monomial ordering used for the basis. If this is a weighted ordering, the height of the corresponding root is used as weight.
Examples
julia> base = basis_lie_highest_weight(:A, 2, [1, 1])
Monomial basis of a highest weight module
of highest weight w_1 + w_2
of dimension 8
with monomial ordering degrevlex([x1, x2, x3])
over abstract Lie algebra of type A2 over QQ
where the used birational sequence consists of the following roots:
[a_1, a_2, a_1 + a_2]
julia> base = basis_lie_highest_weight(:A, 3, [2, 2, 3]; monomial_ordering = :lex)
Monomial basis of a highest weight module
of highest weight 2*w_1 + 2*w_2 + 3*w_3
of dimension 1260
with monomial ordering lex([x1, x2, x3, x4, x5, x6])
over abstract Lie algebra of type A3 over QQ
where the used birational sequence consists of the following roots:
[a_1, a_2, a_3, a_1 + a_2, a_2 + a_3, a_1 + a_2 + a_3]
julia> base = basis_lie_highest_weight(:A, 2, [1, 0], [1,2,1])
Monomial basis of a highest weight module
of highest weight w_1
of dimension 3
with monomial ordering degrevlex([x1, x2, x3])
over abstract Lie algebra of type A2 over QQ
where the used birational sequence consists of the following roots:
[a_1, a_2, a_1]
julia> base = basis_lie_highest_weight(:A, 2, [1, 0], [[1,0], [0,1], [1,0]])
Monomial basis of a highest weight module
of highest weight w_1
of dimension 3
with monomial ordering degrevlex([x1, x2, x3])
over abstract Lie algebra of type A2 over QQ
where the used birational sequence consists of the following roots:
[a_1, a_2, a_1]
julia> base = basis_lie_highest_weight(:C, 3, [1, 1, 1]; monomial_ordering = :lex)
Monomial basis of a highest weight module
of highest weight w_1 + w_2 + w_3
of dimension 512
with monomial ordering lex([x1, x2, x3, x4, x5, x6, x7, x8, x9])
over abstract Lie algebra of type C3 over QQ
where the used birational sequence consists of the following roots:
[a_1, a_2, a_3, a_1 + a_2, a_2 + a_3, 2*a_2 + a_3, a_1 + a_2 + a_3, a_1 + 2*a_2 + a_3, 2*a_1 + 2*a_2 + a_3]This function is part of the experimental code in Oscar. Please read here for more details.
basis_lie_highest_weight_ffl — Function
basis_lie_highest_weight_ffl(type::Symbol, rank::Int, highest_weight::Vector{Int})Compute a monomial basis for the highest weight module with highest weight highest_weight (in terms of the fundamental weights $\omega_i$), for a simple Lie algebra $L$ of type type_rank.
Then the birational sequence used consists of all operators in descening height of the corresponding root.
The monomial ordering is fixed to degrevlex.
Examples
julia> basis_lie_highest_weight_ffl(:A, 3, [1,1,1])
Monomial basis of a highest weight module
of highest weight w_1 + w_2 + w_3
of dimension 64
with monomial ordering degrevlex([x1, x2, x3, x4, x5, x6])
over abstract Lie algebra of type A3 over QQ
where the used birational sequence consists of the following roots:
[a_1 + a_2 + a_3, a_2 + a_3, a_1 + a_2, a_3, a_2, a_1]This function is part of the experimental code in Oscar. Please read here for more details.
basis_lie_highest_weight_lusztig — Function
basis_lie_highest_weight_lusztig(type::Symbol, rank::Int, highest_weight::Vector{Int}, reduced_expression::Vector{Int})Compute a monomial basis for the highest weight module with highest weight highest_weight (in terms of the fundamental weights $\omega_i$), for a simple Lie algebra $L$ of type type_rank.
Let $\omega_0 = s_{i_1} \cdots s_{i_N}$ be a reduced expression of the longest element in the Weyl group of $L$ given as indices $[i_1, \dots, i_N]$ in reduced_expression. Then the birational sequence used consists of $\beta_1, \dots, \beta_N$ where $\beta_1 := \alpha_{i_1}$ and \betak := \alpha{ik} s{i{k-1}} \cdots s{i_1}$ for $k = 2, \dots, N$.
The monomial ordering is fixed to wdegrevlex (weighted degree reverse lexicographic order).
Examples
julia> base = basis_lie_highest_weight_lusztig(:D, 4, [1,1,1,1], [4,3,2,4,3,2,1,2,4,3,2,1])
Monomial basis of a highest weight module
of highest weight w_1 + w_2 + w_3 + w_4
of dimension 4096
with monomial ordering wdegrevlex([x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12], [1, 1, 3, 2, 2, 1, 5, 4, 3, 3, 2, 1])
over abstract Lie algebra of type D4 over QQ
where the used birational sequence consists of the following roots:
[a_4, a_3, a_2 + a_3 + a_4, a_2 + a_3, a_2 + a_4, a_2, a_1 + 2*a_2 + a_3 + a_4, a_1 + a_2 + a_3 + a_4, a_1 + a_2 + a_4, a_1 + a_2 + a_3, a_1 + a_2, a_1]This function is part of the experimental code in Oscar. Please read here for more details.
basis_lie_highest_weight_nz — Function
basis_lie_highest_weight_nz(type::Symbol, rank::Int, highest_weight::Vector{Int}, reduced_expression::Vector{Int})Compute a monomial basis for the highest weight module with highest weight highest_weight (in terms of the fundamental weights $\omega_i$), for a simple Lie algebra $L$ of type type_rank.
Let $\omega_0 = s_{i_1} \cdots s_{i_N}$ be a reduced expression of the longest element in the Weyl group of $L$ given as indices $[i_1, \dots, i_N]$ in reduced_expression. Then the birational sequence used consists of $\alpha_{i_1}, \dots, \alpha_{i_N}$.
The monomial ordering is fixed to degrevlex (degree reverse lexicographic order).
Examples
julia> basis_lie_highest_weight_nz(:C, 3, [1,1,1], [3,2,3,2,1,2,3,2,1])
Monomial basis of a highest weight module
of highest weight w_1 + w_2 + w_3
of dimension 512
with monomial ordering degrevlex([x1, x2, x3, x4, x5, x6, x7, x8, x9])
over abstract Lie algebra of type C3 over QQ
where the used birational sequence consists of the following roots:
[a_3, a_2, a_3, a_2, a_1, a_2, a_3, a_2, a_1]
julia> basis_lie_highest_weight_nz(:A, 4, [1,1,1,1], [4,3,2,1,2,3,4,3,2,3])
Monomial basis of a highest weight module
of highest weight w_1 + w_2 + w_3 + w_4
of dimension 1024
with monomial ordering degrevlex([x1, x2, x3, x4, x5, x6, x7, x8, x9, x10])
over abstract Lie algebra of type A4 over QQ
where the used birational sequence consists of the following roots:
[a_4, a_3, a_2, a_1, a_2, a_3, a_4, a_3, a_2, a_3] This function is part of the experimental code in Oscar. Please read here for more details.
basis_lie_highest_weight_string — Function
basis_lie_highest_weight_string(type::Symbol, rank::Int, highest_weight::Vector{Int}, reduced_expression::Vector{Int})Compute a monomial basis for the highest weight module with highest weight highest_weight (in terms of the fundamental weights $\omega_i$), for a simple Lie algebra $L$ of type type_rank.
Let $\omega_0 = s_{i_1} \cdots s_{i_N}$ be a reduced expression of the longest element in the Weyl group of $L$ given as indices $[i_1, \dots, i_N]$ in reduced_expression. Then the birational sequence used consists of $\alpha_{i_1}, \dots, \alpha_{i_N}$.
The monomial ordering is fixed to neglex (negative lexicographic order).
Examples
julia> basis_lie_highest_weight_string(:B, 3, [1,1,1], [3,2,3,2,1,2,3,2,1])
Monomial basis of a highest weight module
of highest weight w_1 + w_2 + w_3
of dimension 512
with monomial ordering neglex([x1, x2, x3, x4, x5, x6, x7, x8, x9])
over abstract Lie algebra of type B3 over QQ
where the used birational sequence consists of the following roots:
[a_3, a_2, a_3, a_2, a_1, a_2, a_3, a_2, a_1]
julia> basis_lie_highest_weight_string(:A, 4, [1,1,1,1], [4,3,2,1,2,3,4,3,2,3])
Monomial basis of a highest weight module
of highest weight w_1 + w_2 + w_3 + w_4
of dimension 1024
with monomial ordering neglex([x1, x2, x3, x4, x5, x6, x7, x8, x9, x10])
over abstract Lie algebra of type A4 over QQ
where the used birational sequence consists of the following roots:
[a_4, a_3, a_2, a_1, a_2, a_3, a_4, a_3, a_2, a_3]This function is part of the experimental code in Oscar. Please read here for more details.
Functions for Kodaira embeddings
basis_coordinate_ring_kodaira — Function
basis_coordinate_ring_kodaira(type::Symbol, rank::Int, highest_weight::Vector{Int}, degree::Int; monomial_ordering::Symbol=:degrevlex)
basis_coordinate_ring_kodaira(type::Symbol, rank::Int, highest_weight::Vector{Int}, degree::Int, birational_sequence::Vector{Int}; monomial_ordering::Symbol=:degrevlex)
basis_coordinate_ring_kodaira(type::Symbol, rank::Int, highest_weight::Vector{Int}, degree::Int, birational_sequence::Vector{Vector{Int}}; monomial_ordering::Symbol=:degrevlex)Compute monomial bases for the degree-truncated coordinate ring (for all degrees up to degree) of the Kodaira embedding of the generalized flag variety into the projective space of the highest weight module with highest weight highest_weight for a simple Lie algebra $L$ of type type and rank rank. Furthermore, for each degree, return the monomials that are not contained in the Minkowski sum of the bases of the lower degrees.
Currently, this function expects $-w_0(\lambda)$ instead of $\lambda$ as the highest_weight input. This might change in a minor release.
If no birational sequence is specified, all operators in the order of basis_lie_highest_weight_operators are used. A birational sequence of type Vector{Int} is a sequence of indices of operators in basis_lie_highest_weight_operators. A birational sequence of type Vector{Vector{Int}} is a sequence of weights in terms of the simple roots $\alpha_i$.
monomial_ordering describes the monomial ordering used for the basis. If this is a weighted ordering, the height of the corresponding root is used as weight.
Examples
julia> mon_bases = basis_coordinate_ring_kodaira(:G, 2, [1,0], 6; monomial_ordering = :invlex)
6-element Vector{Tuple{MonomialBasis, Vector{ZZMPolyRingElem}}}:
(Monomial basis of a highest weight module with highest weight w_1 over abstract Lie algebra of type G2 over QQ, [1, x1, x3, x1*x3, x1^2*x3, x3*x4, x1*x3*x4])
(Monomial basis of a highest weight module with highest weight 2*w_1 over abstract Lie algebra of type G2 over QQ, [x4, x1*x4, x4^2, x3*x4^2, x1*x3*x4^2])
(Monomial basis of a highest weight module with highest weight 3*w_1 over abstract Lie algebra of type G2 over QQ, [x1^2*x4^2, x4^3, x1*x4^3, x4^4, x1*x4^4, x3*x4^4, x5, x2*x5, x1*x2*x5, x1^2*x2*x5, x3^2*x5, x1*x3^2*x5, x3^3*x5, x1*x3^3*x5])
(Monomial basis of a highest weight module with highest weight 4*w_1 over abstract Lie algebra of type G2 over QQ, [x4^5, x1*x4^5, x4^6, x3^2*x4*x5, x1*x3^2*x4*x5, x3^2*x4^2*x5, x3^3*x4^2*x5])
(Monomial basis of a highest weight module with highest weight 5*w_1 over abstract Lie algebra of type G2 over QQ, [x1^2*x4^6, x4^7, x1*x4^7, x2*x4^3*x5, x1*x2*x4^3*x5, x2*x3*x4^3*x5, x1*x2*x3*x4^3*x5, x1^2*x2*x3*x4^3*x5, x2*x3^2*x4^3*x5, x1*x2*x3^2*x4^3*x5, x1^2*x2*x3^2*x4^3*x5, x2*x4^4*x5])
(Monomial basis of a highest weight module with highest weight 6*w_1 over abstract Lie algebra of type G2 over QQ, [x4^9, x1*x3*x4^4*x5, x2*x4^5*x5, x3*x4^5*x5, x3^2*x4^5*x5, x2*x3^2*x4^5*x5, x1*x2*x3^2*x4^5*x5, x3^4*x4*x5^2])
julia> [length(mon_basis[2]) for mon_basis in mon_bases]
6-element Vector{Int64}:
7
5
14
7
12
8
julia> mon_bases[end][1]
Monomial basis of a highest weight module
of highest weight 6*w_1
of dimension 714
with monomial ordering invlex([x1, x2, x3, x4, x5, x6])
over abstract Lie algebra of type G2 over QQ
where the used birational sequence consists of the following roots:
[a_1, a_2, a_1 + a_2, 2*a_1 + a_2, 3*a_1 + a_2, 3*a_1 + 2*a_2]This function is part of the experimental code in Oscar. Please read here for more details.
basis_coordinate_ring_kodaira_ffl — Function
basis_coordinate_ring_kodaira_ffl(type::Symbol, rank::Int, highest_weight::Vector{Int}, degree::Int)Compute monomial bases for the degree-truncated coordinate ring (for all degrees up to degree) of the Kodaira embedding of the generalized flag variety into the projective space of the highest weight module with highest weight highest_weight for a simple Lie algebra $L$ of type type and rank rank. Furthermore, for each degree, return the monomials that are not contained in the Minkowski sum of the bases of the lower degrees.
Currently, this function expects $-w_0(\lambda)$ instead of $\lambda$ as the highest_weight input. This might change in a minor release.
The the birational sequence used consists of all operators in descening height of the corresponding root, i.e. a "good" ordering.
The monomial ordering is fixed to degrevlex.
Examples
julia> mon_bases = basis_coordinate_ring_kodaira_ffl(:G, 2, [1,0], 6)
6-element Vector{Tuple{MonomialBasis, Vector{ZZMPolyRingElem}}}:
(Monomial basis of a highest weight module with highest weight w_1 over abstract Lie algebra of type G2 over QQ, [1, x6, x4, x3, x2, x1, x1*x6])
(Monomial basis of a highest weight module with highest weight 2*w_1 over abstract Lie algebra of type G2 over QQ, [])
(Monomial basis of a highest weight module with highest weight 3*w_1 over abstract Lie algebra of type G2 over QQ, [])
(Monomial basis of a highest weight module with highest weight 4*w_1 over abstract Lie algebra of type G2 over QQ, [])
(Monomial basis of a highest weight module with highest weight 5*w_1 over abstract Lie algebra of type G2 over QQ, [])
(Monomial basis of a highest weight module with highest weight 6*w_1 over abstract Lie algebra of type G2 over QQ, [])
julia> [length(mon_basis[2]) for mon_basis in mon_bases]
6-element Vector{Int64}:
7
0
0
0
0
0
julia> mon_bases[end][1]
Monomial basis of a highest weight module
of highest weight 6*w_1
of dimension 714
with monomial ordering degrevlex([x1, x2, x3, x4, x5, x6])
over abstract Lie algebra of type G2 over QQ
where the used birational sequence consists of the following roots:
[3*a_1 + 2*a_2, 3*a_1 + a_2, 2*a_1 + a_2, a_1 + a_2, a_2, a_1]This function is part of the experimental code in Oscar. Please read here for more details.