Functions for a monomial basis of highest weight modules

basis_lie_highest_weight_operatorsFunction
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$.

Example

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])
source
basis_lie_highest_weightFunction
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)

Computes 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]
    [1, 1, 1]
    [0, 2, 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]
source
basis_lie_highest_weight_fflFunction
basis_lie_highest_weight_ffl(type::Symbol, rank::Int, highest_weight::Vector{Int})

Computes 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]
source
basis_lie_highest_weight_lusztigFunction
basis_lie_highest_weight_lusztig(type::Symbol, rank::Int, highest_weight::Vector{Int}, reduced_expression::Vector{Int})

Computes 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 := s{i1} \cdots s{i{k-1}} \alpha{i_k}$ 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]
source
basis_lie_highest_weight_nzFunction
basis_lie_highest_weight_nz(type::Symbol, rank::Int, highest_weight::Vector{Int}, reduced_expression::Vector{Int})

Computes 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] 
source
basis_lie_highest_weight_stringFunction
basis_lie_highest_weight_string(type::Symbol, rank::Int, highest_weight::Vector{Int}, reduced_expression::Vector{Int})

Computes 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]
source

Functions for Kodaira embeddings

basis_coordinate_ring_kodairaFunction
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.

Warn

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.

Example

julia> 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(basis[2]) for basis in bases]
6-element Vector{Int64}:
  7
  5
 14
  7
 12
  8

julia> 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]
source
basis_coordinate_ring_kodaira_fflFunction
basis_coordinate_ring_kodaira_ffl(type::Symbol, rank::Int, highest_weight::Vector{Int}, degree::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.

Warn

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.

Example

julia> 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(basis[2]) for basis in bases]
6-element Vector{Int64}:
 7
 0
 0
 0
 0
 0

julia> 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]
source