# Properties of Lie Algebras and Ideals

## `KillingForm(L): AlgLie -> ModMatFldElt`

## `KillingForm(L): AlgMatLie -> ModMatFldElt`

## `KillingMatrix(L): AlgLie -> ModMatFldElt`

## `KillingMatrix(L): AlgMatLie -> ModMatFldElt`

Given a Lie algebra $L$ such that $\{x_1,\ldots ,x_n\}$ is a basis of $L$, return the Killing matrix of $L$, which is defined to be the matrix $({\rm Tr} ({\rm ad}x_i\cdot {\rm ad} x_j))$.

## `Example: Other (ex-53bd1a)`

```magma
> L:=LieAlgebra("B2",RationalField());
> KillingMatrix(L);
[ 0  0  0  0  0  0  0  0  0  6]
[ 0  0  0  0  0  0  0  0 12  0]
[ 0  0  0  0  0  0  0 12  0  0]
[ 0  0  0  0  0  0  6  0  0  0]
[ 0  0  0  0  6  6  0  0  0  0]
[ 0  0  0  0  6 12  0  0  0  0]
[ 0  0  0  6  0  0  0  0  0  0]
[ 0  0 12  0  0  0  0  0  0  0]
[ 0 12  0  0  0  0  0  0  0  0]
[ 6  0  0  0  0  0  0  0  0  0]

```

## `IsAbelian(L): AlgLie -> BoolElt`

## `IsAbelian(L): AlgMatLie -> BoolElt`

Given a Lie algebra $L$, return `true` if $L$ is abelian.

## `IsSoluble(L): AlgLie -> BoolElt`

## `IsSoluble(L): AlgMatLie -> BoolElt`

## `IsSolvable(L): AlgLie -> BoolElt`

## `IsSolvable(L): AlgMatLie -> BoolElt`

Given a Lie algebra $L$, return `true` if $L$ is soluble.

## `IsNilpotent(L): AlgLie -> BoolElt`

## `IsNilpotent(L): AlgMatLie -> BoolElt`

Given a Lie algebra $L$, return `true` if $L$ is nilpotent.

## `IsCentral(L, M): AlgLie, AlgLie -> BoolElt`

## `IsCentral(L, M): AlgMatLie, AlgMatLie -> BoolElt`

Given a subalgebra $M$ of the Lie algebra $L$, return `true` if $M$ is central in $L$.

## `IsSimple(L): AlgLie -> BoolElt`

## `IsSimple(L): AlgMatLie -> BoolElt`

Given a Lie algebra $L$, return `true` if $L$ is simple.

## `IsSemisimple(L): AlgLie -> BoolElt`

## `IsSemisimple(L): AlgMatLie -> BoolElt`

Given a Lie algebra $L$, return `true` if $L$ is semisimple.

## `IsReductive(L): AlgLie -> BoolElt`

## `IsReductive(L): AlgMatLie -> BoolElt`

Given a Lie algebra $L$, return `true` if $L$ is reductive.

## `HasLeviSubalgebra(L): AlgLie -> BoolElt`

## `HasLeviSubalgebra(L): AlgMatLie -> BoolElt`

Given a Lie algebra $L$, this function determines whether $L$ has a Levi subalgebra. If the result is `true`, then the function also returns a semisimple subalgebra (complement to the solvable radical) of $L$. If $L$ is defined over a field of characteristic 0, then it always has a Levi subalgebra. However, if $L$ is a Lie algebra of characteristic $p>0$ then $L$ need not have a Levi subalgebra but the function will always find one if it exists.

A description of the algorithm used is contained in [[de Graaf, 2000](../../references.md#cite-wdg-lie-alg)], §4.13.

## `IsClassicalType(L): AlgLie -> BoolElt`

Determines if the reductive Lie algebra $L$ is of classical-type. Note that all reductive Lie algebras over fields of characteristic 0 are considered to be classical-type.

## `Example: Predicates (ex-6ba33a)`

We test various predicates in the context of the simple Lie algebra of type $D_3$ over the rational field.

```magma
> L:=LieAlgebra("D3",RationalField());
> L;
Lie Algebra of dimension 15 with base ring Rational Field
> K:=sub< L | [L.1,L.2,L.3] >;
> M:=Centralizer(L, K);
> M;
Lie Algebra of dimension 4 with base ring Rational Field
> R:=SolvableRadical(M);
> R;
Lie Algebra of dimension 4 with base ring Rational Field
> HasLeviSubalgebra(M);
true Lie Algebra of dimension 0 with base ring Rational Field
> K:=Centralizer(L, sub< L | [L.1,L.2,L.3] >);
> K;
Lie Algebra of dimension 4 with base ring Rational Field
> IsSolvable(K);
true
> IsNilpotent(K);
true
> R:= SolvableRadical(K);
> IsSolvable(R);
true
> IsNilpotent(R);
true
> N:= Nilradical(K);
> IsNilpotent(N);
true

```
