Lie Algebras
<#Include Label="[1]{alglie}">

Lie Objects
<#Include Label="[1]{liefam}"> <#Include Label="LieObject"> <#Include Label="IsLieObject"> <#Include Label="LieFamily"> <#Include Label="UnderlyingFamily"> <#Include Label="UnderlyingRingElement">

Constructing Lie algebras

In this section we describe functions that create Lie algebras. Creating and working with subalgebras goes exactly in the same way as for general algebras; so for that we refer to Chapter .

<#Include Label="LieAlgebraByStructureConstants"> <#Include Label="RestrictedLieAlgebraByStructureConstants"> <#Include Label="LieAlgebra"> <#Include Label="FreeLieAlgebra"> <#Include Label="FullMatrixLieAlgebra"> <#Include Label="RightDerivations"> <#Include Label="SimpleLieAlgebra">

Distinguished Subalgebras

Here we describe functions that calculate well-known subalgebras and ideals of a Lie algebra (such as the centre, the centralizer of a subalgebra, etc.).

<#Include Label="LieCentre"> <#Include Label="LieCentralizer"> <#Include Label="LieNormalizer"> <#Include Label="LieDerivedSubalgebra"> <#Include Label="LieNilRadical"> <#Include Label="LieSolvableRadical"> <#Include Label="CartanSubalgebra">

Series of Ideals
<#Include Label="LieDerivedSeries"> <#Include Label="LieLowerCentralSeries"> <#Include Label="LieUpperCentralSeries">

Properties of a Lie Algebra
<#Include Label="IsLieAbelian"> <#Include Label="IsLieNilpotent"> <#Include Label="IsLieSolvable">

Semisimple Lie Algebras and Root Systems

This section contains some functions for dealing with semisimple Lie algebras and their root systems.

<#Include Label="SemiSimpleType"> <#Include Label="ChevalleyBasis"> <#Include Label="IsRootSystem"> <#Include Label="IsRootSystemFromLieAlgebra"> <#Include Label="RootSystem"> <#Include Label="UnderlyingLieAlgebra"> <#Include Label="PositiveRoots"> <#Include Label="NegativeRoots"> <#Include Label="PositiveRootVectors"> <#Include Label="NegativeRootVectors"> <#Include Label="SimpleSystem"> <#Include Label="CartanMatrix"> <#Include Label="BilinearFormMat"> <#Include Label="CanonicalGenerators">

Semisimple Lie Algebras and Weyl Groups of Root Systems

This section deals with the Weyl group of a root system. A Weyl group is represented by its action on the weight lattice. A weight is by definition a linear function \lambda: H \rightarrow F (where F is the ground field), such that the values \lambda(h_i) are all integers (where the h_i are the Cartan elements of the ). On the other hand each weight is determined by these values. Therefore we represent a weight by a vector of integers; the i-th entry of this vector is the value \lambda(h_i). Now the elements of the Weyl group are represented by matrices, and if g is an element of a Weyl group and w a weight, then w*g gives the result of applying g to w. Another way of applying the i-th simple reflection to a weight is by using the function .

A Weyl group is generated by the simple reflections. So for a Weyl group W gives a list of matrices and the i-th entry of this list is the simple reflection corresponding to the i-th simple root of the corresponding root system.

<#Include Label="IsWeylGroup"> <#Include Label="SparseCartanMatrix"> <#Include Label="WeylGroup"> <#Include Label="ApplySimpleReflection"> <#Include Label="LongestWeylWordPerm"> <#Include Label="ConjugateDominantWeight"> <#Include Label="WeylOrbitIterator">

Restricted Lie algebras

A Lie algebra L over a field of characteristic p>0 is called restricted if there is a map x \mapsto x^p from L into L (called a p-map) such that ad x^p = (ad x)^p, (\alpha x)^p = \alpha^p x^p and (x+y)^p = x^p + y^p + \sum_{{i=1}}^{{p-1}} s_i(x,y), where s_i: L \times L \rightarrow L are certain Lie polynomials in two variables. Using these relations we can calculate y^p for all y \in L, once we know x^p for x in a basis of L. Therefore a p-map is represented in &GAP; by a list containing the images of the basis vectors of a basis B of L. For this reason this list is an attribute of the basis B.

<#Include Label="IsRestrictedLieAlgebra"> <#Include Label="PthPowerImages"> <#Include Label="PthPowerImage"> <#Include Label="JenningsLieAlgebra"> <#Include Label="PCentralLieAlgebra"> <#Include Label="NaturalHomomorphismOfLieAlgebraFromNilpotentGroup">

The Adjoint Representation

In this section we show functions for calculating with the adjoint representation of a Lie algebra (and the corresponding trace form, called the Killing form) (see also and ).

<#Include Label="AdjointMatrix"> <#Include Label="AdjointAssociativeAlgebra"> <#Include Label="KillingMatrix"> <#Include Label="KappaPerp"> <#Include Label="IsNilpotentElement"> <#Include Label="NonNilpotentElement"> <#Include Label="FindSl2">

Universal Enveloping Algebras
<#Include Label="UniversalEnvelopingAlgebra">

Finitely Presented Lie Algebras

Finitely presented Lie algebras can be constructed from free Lie algebras by using the / constructor, i.e., FL/[r1, ..., rk] is the quotient of the free Lie algebra FL by the ideal generated by the elements r1, ..., rk of FL. If the finitely presented Lie algebra K happens to be finite dimensional then an isomorphic structure constants Lie algebra can be constructed by NiceAlgebraMonomorphism(K) (see ), which returns a surjective homomorphism. The structure constants Lie algebra can then be accessed by calling for this map. Also limited computations with elements of the finitely presented Lie algebra are possible.

gap> L:= FreeLieAlgebra( Rationals, "s", "t" ); <Lie algebra over Rationals, with 2 generators> gap> gL:= GeneratorsOfAlgebra( L );; s:= gL[1];; t:= gL[2];; gap> K:= L/[ s*(s*t), t*(t*(s*t)), s*(t*(s*t))-t*(s*t) ]; <Lie algebra over Rationals, with 2 generators> gap> h:= NiceAlgebraMonomorphism( K ); [ [(1)*s], [(1)*t] ] -> [ v.1, v.2 ] gap> U:= Range( h ); <Lie algebra of dimension 3 over Rationals> gap> IsLieNilpotent( U ); true gap> gK:= GeneratorsOfAlgebra( K ); [ [(1)*s], [(1)*t] ] gap> gK[1]*(gK[2]*gK[1]) = Zero( K ); true

<#Include Label="FpLieAlgebraByCartanMatrix"> <#Include Label="NilpotentQuotientOfFpLieAlgebra">

Modules over Lie Algebras and Their Cohomology

Representations of Lie algebras are dealt with in the same way as representations of ordinary algebras (see ). In this section we mainly deal with modules over general Lie algebras and their cohomology. The next section is devoted to modules over semisimple Lie algebras.

<#Include Label="[1]{lierep}"> <#Include Label="IsCochain"> <#Include Label="Cochain"> <#Include Label="CochainSpace"> <#Include Label="ValueCochain"> <#Include Label="LieCoboundaryOperator"> <#Include Label="Cocycles"> <#Include Label="Coboundaries">

Modules over Semisimple Lie Algebras

This section contains functions for calculating information on representations of semisimple Lie algebras. First we have some functions for calculating some combinatorial data (set of dominant weights, the dominant character, the decomposition of a tensor product, the dimension of a highest-weight module). Then there is a function for creating an admissible lattice in the universal enveloping algebra of a semisimple Lie algebra. Finally we have a function for constructing a highest-weight module over a semisimple Lie algebra.

<#Include Label="DominantWeights"> <#Include Label="DominantCharacter"> <#Include Label="DecomposeTensorProduct"> <#Include Label="DimensionOfHighestWeightModule">

Admissible Lattices in UEA
<#Include Label="[2]{lierep}"> <#Include Label="IsUEALatticeElement"> <#Include Label="LatticeGeneratorsInUEA">

An UEALattice element is represented by a list of the form [ m1, c1, m2, c2, ... ], where the c1, c2 etc. are coefficients, and the m1, m2 etc. are monomials. A monomial is a list of the form [ ind1, e1, ind2, e2, ... ] where ind1, ind2 are indices, and e1, e2 etc. are exponents. Let N be the number of positive roots of the underlying Lie algebra L. The indices lie between 1 and dim(L). If an index lies between 1 and N, then it represents a negative root vector (corresponding to the root NegativeRoots( R )[ind], where R is the root system of L; see ). This leads to a factor yind1^(e1) in the printed form of the monomial (which equals z^e1/e1!, where z is a basis element of L). If an index lies between N+1 and 2N, then it represents a positive root vector. Finally, if ind lies between 2N+1 and 2N+rank, then it represents an element of the Cartan subalgebra. This is printed as ( h_1/ e_1 ), meaning {h_1 \choose e_1}, where h_1, \ldots, h_{rank} are the canonical Cartan generators.

The zero element is represented by the empty list, the identity element by the list [ [], 1 ].

gap> L:= SimpleLieAlgebra( "G", 2, Rationals );; gap> g:=LatticeGeneratorsInUEA( L ); [ y1, y2, y3, y4, y5, y6, x1, x2, x3, x4, x5, x6, ( h13/1 ), ( h14/1 ) ] gap> IsUEALatticeElement( g[1] ); true gap> g[1]^3; 6*y1^(3) gap> q:= g[7]*g[1]^2; -2*y1+2*y1*( h13/1 )+2*y1^(2)*x1 gap> ExtRepOfObj( q ); [ [ 1, 1 ], -2, [ 1, 1, 13, 1 ], 2, [ 1, 2, 7, 1 ], 2 ]
<#Include Label="IsWeightRepElement"> <#Include Label="HighestWeightModule">

Tensor Products and Exterior and Symmetric Powers
<#Include Label="TensorProductOfAlgebraModules"> <#Include Label="ExteriorPowerOfAlgebraModule"> <#Include Label="SymmetricPowerOfAlgebraModule">