# Ideals and Lie subalgebras

Ideals and Lie subalgebras are represented by the types `LieAlgebraIdeal`

and `LieSubalgebra`

respectively. They are used similarly in most cases.

## Functions

### Ideals

`dim`

— Method`dim(I::LieAlgebraIdeal) -> Int`

Return the dimension of the ideal `I`

.

This function is part of the experimental code in Oscar. Please read here for more details.

`basis`

— Method`basis(I::LieAlgebraIdeal) -> Vector{LieAlgebraElem}`

Return the basis of the ideal `I`

.

This function is part of the experimental code in Oscar. Please read here for more details.

`basis`

— Method`basis(I::LieAlgebraIdeal, i::Int) -> LieAlgebraElem`

Return the `i`

-th basis element of the ideal `I`

.

This function is part of the experimental code in Oscar. Please read here for more details.

`in`

— Method`in(x::LieAlgebraElem{C}, I::LieAlgebraIdeal{C}) -> Bool`

Return `true`

if `x`

is in the ideal `I`

, `false`

otherwise.

This function is part of the experimental code in Oscar. Please read here for more details.

`bracket`

— Method`bracket(I1::LieAlgebraIdeal, I2::LieAlgebraIdeal) -> LieAlgebraIdeal`

Return $[I_1,I_2]$.

This function is part of the experimental code in Oscar. Please read here for more details.

`normalizer`

— Method`normalizer(L::LieAlgebra, I::LieAlgebraIdeal) -> LieSubalgebra`

Return the normalizer of `I`

in `L`

, i.e. $\{x \in L \mid [x, I] \subseteq I\} = L$. As `I`

is an ideal in `L`

, this is just `L`

.

This function is part of the experimental code in Oscar. Please read here for more details.

`centralizer`

— Method`centralizer(L::LieAlgebra, I::LieAlgebraIdeal) -> LieSubalgebra`

Return the centralizer of `I`

in `L`

, i.e. $\{x \in L \mid [x, I] = 0\}$.

This function is part of the experimental code in Oscar. Please read here for more details.

### Lie subalgebras

`dim`

— Method`dim(S::LieSubalgebra) -> Int`

Return the dimension of the Lie subalgebra `S`

.

This function is part of the experimental code in Oscar. Please read here for more details.

`basis`

— Method`basis(S::LieSubalgebra{C}) -> Vector{LieAlgebraElem{C}}`

Return a basis of the Lie subalgebra `S`

.

This function is part of the experimental code in Oscar. Please read here for more details.

`basis`

— Method`basis(S::LieSubalgebra{C}, i::Int) -> LieAlgebraElem{C}`

Return the `i`

-th basis element of the Lie subalgebra `S`

.

This function is part of the experimental code in Oscar. Please read here for more details.

`in`

— Method`in(x::LieAlgebraElem{C}, S::LieSubalgebra{C}) -> Bool`

Return `true`

if `x`

is in the Lie subalgebra `S`

, `false`

otherwise.

This function is part of the experimental code in Oscar. Please read here for more details.

`bracket`

— Method`bracket(S1::LieSubalgebra, S2::LieSubalgebra) -> LieAlgebraIdeal`

Return $[S_1, S_2]$.

This function is part of the experimental code in Oscar. Please read here for more details.

`normalizer`

— Method`normalizer(L::LieAlgebra, S::LieSubalgebra) -> LieSubalgebra`

Return the normalizer of `S`

in `L`

, i.e. $\{x \in L \mid [x, S] \subseteq S\}$.

This function is part of the experimental code in Oscar. Please read here for more details.

`centralizer`

— Method`centralizer(L::LieAlgebra, S::LieSubalgebra) -> LieSubalgebra`

Return the centralizer of `S`

in `L`

, i.e. $\{x \in L \mid [x, S] = 0\}$.

This function is part of the experimental code in Oscar. Please read here for more details.

`is_self_normalizing`

— Method`is_self_normalizing(S::LieSubalgebra) -> Bool`

Return `true`

if `S`

is self-normalizing, i.e. if its normalizer is `S`

.

This function is part of the experimental code in Oscar. Please read here for more details.

## Constructors

### Ideals

`ideal`

— Method`ideal(L::LieAlgebra, gens::Vector{LieAlgebraElem}; is_basis::Bool=false) -> LieAlgebraIdeal`

Return the smallest ideal of `L`

containing `gens`

. If `is_basis`

is `true`

, then `gens`

is assumed to be a basis of the ideal.

This function is part of the experimental code in Oscar. Please read here for more details.

`ideal`

— Method`ideal(L::LieAlgebra, gen::LieAlgebraElem) -> LieAlgebraIdeal`

Return the smallest ideal of `L`

containing `gen`

.

This function is part of the experimental code in Oscar. Please read here for more details.

`ideal`

— Method`ideal(L::LieAlgebra) -> LieAlgebraIdeal`

Return `L`

as an ideal of itself.

This function is part of the experimental code in Oscar. Please read here for more details.

### Lie subalgebras

`sub`

— Method`sub(L::LieAlgebra, gens::Vector{LieAlgebraElem}; is_basis::Bool=false) -> LieSubalgebra`

Return the smallest Lie subalgebra of `L`

containing `gens`

. If `is_basis`

is `true`

, then `gens`

is assumed to be a basis of the subalgebra.

This function is part of the experimental code in Oscar. Please read here for more details.

`sub`

— Method`sub(L::LieAlgebra, gen::LieAlgebraElem) -> LieSubalgebra`

Return the smallest Lie subalgebra of `L`

containing `gen`

.

This function is part of the experimental code in Oscar. Please read here for more details.

`sub`

— Method`sub(L::LieAlgebra) -> LieSubalgebra`

Return `L`

as a Lie subalgebra of itself.

This function is part of the experimental code in Oscar. Please read here for more details.

## Conversions

`lie_algebra`

— Method`lie_algebra(S::LieSubalgebra) -> LieAlgebra`

Return `S`

as a Lie algebra `LS`

, together with an embedding `LS -> L`

, where `L`

is the Lie algebra where `S`

lives in.

This function is part of the experimental code in Oscar. Please read here for more details.

`lie_algebra`

— Method`lie_algebra(I::LieAlgebraIdeal) -> LieAlgebra`

Return `I`

as a Lie algebra `LI`

, together with an embedding `LI -> L`

, where `L`

is the Lie algebra where `I`

lives in.

This function is part of the experimental code in Oscar. Please read here for more details.

`sub`

— Method`sub(L::LieAlgebra, I::LieAlgebraIdeal) -> LieSubalgebra`

Return `I`

as a subalgebra of `L`

.

This function is part of the experimental code in Oscar. Please read here for more details.