# User-facing functions

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

**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])
```

`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)
```

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]
```

`basis_lie_highest_weight_ffl`

— Function`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]
```

`basis_lie_highest_weight_lusztig`

— Function`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 \beta*k := s*{i*1} \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]
```

`basis_lie_highest_weight_nz`

— Function`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]
```

`basis_lie_highest_weight_string`

— Function`basis_lie_highest_weight_string(type::Symbol, rank::Int, highest_weight::Vector{Int}, reduced_expression::Vector{Int})`

`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]
```