Functions for a monomial basis of highest weight modules
basis_lie_highest_weight_operators — Functionbasis_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 — Functionbasis_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 [1, 1]
of dimension 8
with monomial ordering degrevlex([x1, x2, x3])
over Lie algebra of type A2
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[1, 0]
[0, 1]
[1, 1]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0]
[0, 1]
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, 2, 3]
of dimension 1260
with monomial ordering lex([x1, x2, x3, x4, x5, x6])
over Lie algebra of type A3
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]
[1, 1, 0]
[0, 1, 1]
[1, 1, 1]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]
julia> base = basis_lie_highest_weight(:A, 2, [1, 0], [1,2,1])
Monomial basis of a highest weight module
of highest weight [1, 0]
of dimension 3
with monomial ordering degrevlex([x1, x2, x3])
over Lie algebra of type A2
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[1, 0]
[0, 1]
[1, 0]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0]
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 [1, 0]
of dimension 3
with monomial ordering degrevlex([x1, x2, x3])
over Lie algebra of type A2
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[1, 0]
[0, 1]
[1, 0]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0]
julia> base = basis_lie_highest_weight(:C, 3, [1, 1, 1]; monomial_ordering = :lex)
Monomial basis of a highest weight module
of highest weight [1, 1, 1]
of dimension 512
with monomial ordering lex([x1, x2, x3, x4, x5, x6, x7, x8, x9])
over Lie algebra of type C3
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]
[1, 1, 0]
[0, 1, 1]
[0, 2, 1]
[1, 1, 1]
[1, 2, 1]
[2, 2, 1]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]
[0, 1, 1]
[1, 1, 1]This function is part of the experimental code in Oscar. Please read here for more details.
basis_lie_highest_weight_ffl — Functionbasis_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 [1, 1, 1]
of dimension 64
with monomial ordering degrevlex([x1, x2, x3, x4, x5, x6])
over Lie algebra of type A3
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[1, 1, 1]
[0, 1, 1]
[1, 1, 0]
[0, 0, 1]
[0, 1, 0]
[1, 0, 0]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]This function is part of the experimental code in Oscar. Please read here for more details.
basis_lie_highest_weight_lusztig — Functionbasis_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 [1, 1, 1, 1]
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 Lie algebra of type D4
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[0, 0, 0, 1]
[0, 0, 1, 0]
[0, 1, 1, 1]
[0, 1, 1, 0]
[0, 1, 0, 1]
[0, 1, 0, 0]
[1, 2, 1, 1]
[1, 1, 1, 1]
[1, 1, 0, 1]
[1, 1, 1, 0]
[1, 1, 0, 0]
[1, 0, 0, 0]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0, 0, 0]
[0, 1, 0, 0]
[0, 0, 1, 0]
[0, 0, 0, 1]
[0, 0, 1, 1]This function is part of the experimental code in Oscar. Please read here for more details.
basis_lie_highest_weight_nz — Functionbasis_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 [1, 1, 1]
of dimension 512
with monomial ordering degrevlex([x1, x2, x3, x4, x5, x6, x7, x8, x9])
over Lie algebra of type C3
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[0, 0, 1]
[0, 1, 0]
[0, 0, 1]
[0, 1, 0]
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]
[0, 1, 0]
[1, 0, 0]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0, 0]
[0, 1, 0]
[0, 0, 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 [1, 1, 1, 1]
of dimension 1024
with monomial ordering degrevlex([x1, x2, x3, x4, x5, x6, x7, x8, x9, x10])
over Lie algebra of type A4
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[0, 0, 0, 1]
[0, 0, 1, 0]
[0, 1, 0, 0]
[1, 0, 0, 0]
[0, 1, 0, 0]
[0, 0, 1, 0]
[0, 0, 0, 1]
[0, 0, 1, 0]
[0, 1, 0, 0]
[0, 0, 1, 0]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0, 0, 0]
[0, 1, 0, 0]
[0, 0, 1, 0]
[0, 0, 0, 1]
[0, 1, 0, 1] This function is part of the experimental code in Oscar. Please read here for more details.
basis_lie_highest_weight_string — Functionbasis_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 [1, 1, 1]
of dimension 512
with monomial ordering neglex([x1, x2, x3, x4, x5, x6, x7, x8, x9])
over Lie algebra of type B3
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[0, 0, 1]
[0, 1, 0]
[0, 0, 1]
[0, 1, 0]
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]
[0, 1, 0]
[1, 0, 0]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0, 0]
[0, 1, 0]
[0, 0, 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 [1, 1, 1, 1]
of dimension 1024
with monomial ordering neglex([x1, x2, x3, x4, x5, x6, x7, x8, x9, x10])
over Lie algebra of type A4
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[0, 0, 0, 1]
[0, 0, 1, 0]
[0, 1, 0, 0]
[1, 0, 0, 0]
[0, 1, 0, 0]
[0, 0, 1, 0]
[0, 0, 0, 1]
[0, 0, 1, 0]
[0, 1, 0, 0]
[0, 0, 1, 0]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0, 0, 0]
[0, 1, 0, 0]
[0, 0, 1, 0]
[0, 0, 0, 1]
[0, 1, 0, 1]This function is part of the experimental code in Oscar. Please read here for more details.
Functions for Kodaira embeddings
basis_coordinate_ring_kodaira — Functionbasis_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 [1, 0] over Lie algebra of type G2, [1, x1, x3, x1*x3, x1^2*x3, x3*x4, x1*x3*x4])
(Monomial basis of a highest weight module with highest weight [2, 0] over Lie algebra of type G2, [x4, x1*x4, x4^2, x3*x4^2, x1*x3*x4^2])
(Monomial basis of a highest weight module with highest weight [3, 0] over Lie algebra of type G2, [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, 0] over Lie algebra of type G2, [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, 0] over Lie algebra of type G2, [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, 0] over Lie algebra of type G2, [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, 0]
of dimension 714
with monomial ordering invlex([x1, x2, x3, x4, x5, x6])
over Lie algebra of type G2
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[1, 0]
[0, 1]
[1, 1]
[2, 1]
[3, 1]
[3, 2]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0]
[2, 0]
[3, 0]
[4, 0]
[5, 0]
[6, 0]This function is part of the experimental code in Oscar. Please read here for more details.
basis_coordinate_ring_kodaira_ffl — Functionbasis_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 [1, 0] over Lie algebra of type G2, [1, x6, x4, x3, x2, x1, x1*x6])
(Monomial basis of a highest weight module with highest weight [2, 0] over Lie algebra of type G2, [])
(Monomial basis of a highest weight module with highest weight [3, 0] over Lie algebra of type G2, [])
(Monomial basis of a highest weight module with highest weight [4, 0] over Lie algebra of type G2, [])
(Monomial basis of a highest weight module with highest weight [5, 0] over Lie algebra of type G2, [])
(Monomial basis of a highest weight module with highest weight [6, 0] over Lie algebra of type G2, [])
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, 0]
of dimension 714
with monomial ordering degrevlex([x1, x2, x3, x4, x5, x6])
over Lie algebra of type G2
where the used birational sequence consists of the following roots (given as coefficients w.r.t. alpha_i):
[3, 2]
[3, 1]
[2, 1]
[1, 1]
[0, 1]
[1, 0]
and the basis was generated by Minkowski sums of the bases of the following highest weight modules:
[1, 0]This function is part of the experimental code in Oscar. Please read here for more details.