1<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
2<!-- %% -->
3<!-- %A  alglie.msk                  GAP documentation             Willem de Graaf -->
4<!-- %% -->
5<!-- %A  @(#)<M>Id: alglie.msk,v 1.42 2005/11/28 11:43:42 gap Exp </M> -->
6<!-- %% -->
7<!-- %Y  (C) 1998 School Math and Comp. Sci., University of St Andrews, Scotland -->
8<!-- %Y  Copyright (C) 2002 The GAP Group -->
9<!-- %% -->
10<Chapter Label="Lie Algebras">
11<Heading>Lie Algebras</Heading>
12
13<#Include Label="[1]{alglie}">
14
15<!-- %%  The algorithms for Lie algebras are due to Willem de Graaf. -->
16
17
18<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
19<Section Label="Lie Objects">
20<Heading>Lie Objects</Heading>
21
22<#Include Label="[1]{liefam}">
23<#Include Label="LieObject">
24<#Include Label="IsLieObject">
25<#Include Label="LieFamily">
26<#Include Label="UnderlyingFamily">
27<#Include Label="UnderlyingRingElement">
28
29</Section>
30
31
32<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
33<Section Label="Constructing Lie algebras">
34<Heading>Constructing Lie algebras</Heading>
35
36In this section we describe functions that create Lie algebras. Creating
37and working with subalgebras goes exactly in the same way as for general
38algebras; so for that we refer to Chapter <Ref Chap="Algebras"/>.
39
40<#Include Label="LieAlgebraByStructureConstants">
41<#Include Label="RestrictedLieAlgebraByStructureConstants">
42<#Include Label="LieAlgebra">
43<#Include Label="FreeLieAlgebra">
44<#Include Label="FullMatrixLieAlgebra">
45<#Include Label="RightDerivations">
46<#Include Label="SimpleLieAlgebra">
47
48</Section>
49
50
51<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
52<Section Label="Distinguished Subalgebras">
53<Heading>Distinguished Subalgebras</Heading>
54
55Here we describe functions that calculate well-known subalgebras
56and ideals of a Lie algebra (such as the centre, the centralizer of a
57subalgebra, etc.).
58
59<#Include Label="LieCentre">
60<#Include Label="LieCentralizer">
61<#Include Label="LieNormalizer">
62<#Include Label="LieDerivedSubalgebra">
63<#Include Label="LieNilRadical">
64<#Include Label="LieSolvableRadical">
65<#Include Label="CartanSubalgebra">
66
67</Section>
68
69
70<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
71<Section Label="Series of Ideals">
72<Heading>Series of Ideals</Heading>
73
74<#Include Label="LieDerivedSeries">
75<#Include Label="LieLowerCentralSeries">
76<#Include Label="LieUpperCentralSeries">
77
78</Section>
79
80
81<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
82<Section Label="Properties of a Lie Algebra">
83<Heading>Properties of a Lie Algebra</Heading>
84
85<#Include Label="IsLieAbelian">
86<#Include Label="IsLieNilpotent">
87<#Include Label="IsLieSolvable">
88
89</Section>
90
91
92<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
93<Section Label="Semisimple Lie Algebras and Root Systems">
94<Heading>Semisimple Lie Algebras and Root Systems</Heading>
95
96This section contains some functions for dealing with
97semisimple Lie algebras and their root systems.
98
99<#Include Label="SemiSimpleType">
100<#Include Label="ChevalleyBasis">
101<#Include Label="IsRootSystem">
102<#Include Label="IsRootSystemFromLieAlgebra">
103<#Include Label="RootSystem">
104<#Include Label="UnderlyingLieAlgebra">
105<#Include Label="PositiveRoots">
106<#Include Label="NegativeRoots">
107<#Include Label="PositiveRootVectors">
108<#Include Label="NegativeRootVectors">
109<#Include Label="SimpleSystem">
110<#Include Label="CartanMatrix">
111<#Include Label="BilinearFormMat">
112<#Include Label="CanonicalGenerators">
113
114</Section>
115
116
117<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
118<Section Label="Semisimple Lie Algebras and Weyl Groups of Root Systems">
119<Heading>Semisimple Lie Algebras and Weyl Groups of Root Systems</Heading>
120
121This section deals with the Weyl group of a root system.
122A Weyl group is represented by its action on the weight lattice.
123A <E>weight</E> is by definition a linear function
124<M>\lambda: H \rightarrow F</M> (where <M>F</M> is the ground field), such
125that the values <M>\lambda(h_i)</M> are all integers (where the <M>h_i</M>
126are the Cartan elements of the <Ref Attr="CanonicalGenerators"/>).
127On the other hand each weight is determined by these values.
128Therefore we represent a weight by a vector of integers;
129the <M>i</M>-th entry of this vector is the value <M>\lambda(h_i)</M>.
130Now the elements of the Weyl group are represented by matrices, and
131if <C>g</C> is an element of a Weyl group and <C>w</C> a weight, then
132<C>w*g</C> gives the result of applying <C>g</C> to <C>w</C>.
133Another way of applying the <M>i</M>-th simple reflection to a weight is
134by using the function <Ref Oper="ApplySimpleReflection"/>.
135<P/>
136A Weyl group is generated by the simple reflections.
137So <Ref Attr="GeneratorsOfGroup"/> for a Weyl group <C>W</C>  gives a list
138of matrices and the <M>i</M>-th entry of this list is the simple reflection
139corresponding to the <M>i</M>-th simple root of the corresponding root system.
140
141<#Include Label="IsWeylGroup">
142<#Include Label="SparseCartanMatrix">
143<#Include Label="WeylGroup">
144<#Include Label="ApplySimpleReflection">
145<#Include Label="LongestWeylWordPerm">
146<#Include Label="ConjugateDominantWeight">
147<#Include Label="WeylOrbitIterator">
148
149</Section>
150
151
152<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
153<Section Label="Restricted Lie algebras">
154<Heading>Restricted Lie algebras</Heading>
155
156A Lie algebra <M>L</M> over a field of characteristic <M>p>0</M> is called
157restricted if there is a map <M>x \mapsto x^p</M> from <M>L</M> into <M>L</M>
158(called a <M>p</M>-map) such that
159ad <M>x^p = (</M>ad<M> x)^p</M>,
160<M>(\alpha x)^p = \alpha^p x^p</M> and
161<M>(x+y)^p = x^p + y^p + \sum_{{i=1}}^{{p-1}} s_i(x,y)</M>,
162where <M>s_i: L \times L \rightarrow L</M>
163are certain Lie polynomials in two variables.
164Using these relations we can calculate <M>y^p</M> for all <M>y \in L</M>,
165once we know <M>x^p</M> for <M>x</M> in a basis of <M>L</M>.
166Therefore a <M>p</M>-map is represented in &GAP;&nbsp; by a list
167containing the images of the basis vectors of a basis <M>B</M> of <M>L</M>.
168For this reason this list is an attribute of the basis <M>B</M>.
169<P/>
170<#Include Label="IsRestrictedLieAlgebra">
171<#Include Label="PthPowerImages">
172<#Include Label="PthPowerImage">
173<#Include Label="JenningsLieAlgebra">
174<#Include Label="PCentralLieAlgebra">
175<#Include Label="NaturalHomomorphismOfLieAlgebraFromNilpotentGroup">
176
177</Section>
178
179
180<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
181<Section Label="The Adjoint Representation">
182<Heading>The Adjoint Representation</Heading>
183
184In this section we show functions for calculating with the adjoint
185representation of a Lie algebra (and the corresponding trace form,
186called the Killing form) (see also <Ref Attr="AdjointBasis"/> and
187<Ref Attr="IndicesOfAdjointBasis"/>).
188<P/>
189<#Include Label="AdjointMatrix">
190<#Include Label="AdjointAssociativeAlgebra">
191<#Include Label="KillingMatrix">
192<#Include Label="KappaPerp">
193<#Include Label="IsNilpotentElement">
194<#Include Label="NonNilpotentElement">
195<#Include Label="FindSl2">
196
197</Section>
198
199
200<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
201<Section Label="Universal Enveloping Algebras">
202<Heading>Universal Enveloping Algebras</Heading>
203
204<#Include Label="UniversalEnvelopingAlgebra">
205
206</Section>
207
208
209<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
210<Section Label="Finitely Presented Lie Algebras">
211<Heading>Finitely Presented Lie Algebras</Heading>
212
213Finitely presented Lie algebras can be constructed from free Lie algebras by
214using the <C>/</C> constructor, i.e., <C>FL/[r1, ..., rk]</C> is the quotient
215of the free Lie algebra <C>FL</C> by the ideal generated by the elements
216<C>r1, ..., rk</C> of <C>FL</C>. If the finitely presented Lie algebra
217<C>K</C> happens to be finite dimensional then an isomorphic structure
218constants Lie algebra can be constructed by <C>NiceAlgebraMonomorphism(K)</C>
219(see&nbsp;<Ref Attr="NiceAlgebraMonomorphism"/>), which returns a surjective
220homomorphism. The structure constants Lie algebra can then be accessed by
221calling <Ref Attr="Range" Label="of a general mapping"/> for this map.
222Also limited computations with elements of the finitely presented Lie
223algebra are possible.
224<P/>
225<Example><![CDATA[
226gap> L:= FreeLieAlgebra( Rationals, "s", "t" );
227<Lie algebra over Rationals, with 2 generators>
228gap> gL:= GeneratorsOfAlgebra( L );; s:= gL[1];; t:= gL[2];;
229gap> K:= L/[ s*(s*t), t*(t*(s*t)), s*(t*(s*t))-t*(s*t) ];
230<Lie algebra over Rationals, with 2 generators>
231gap> h:= NiceAlgebraMonomorphism( K );
232[ [(1)*s], [(1)*t] ] -> [ v.1, v.2 ]
233gap> U:= Range( h );
234<Lie algebra of dimension 3 over Rationals>
235gap> IsLieNilpotent( U );
236true
237gap> gK:= GeneratorsOfAlgebra( K );
238[ [(1)*s], [(1)*t] ]
239gap> gK[1]*(gK[2]*gK[1]) = Zero( K );
240true
241]]></Example>
242<P/>
243<#Include Label="FpLieAlgebraByCartanMatrix">
244<#Include Label="NilpotentQuotientOfFpLieAlgebra">
245
246</Section>
247
248
249<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
250<Section Label="Modules over Lie Algebras and Their Cohomology">
251<Heading>Modules over Lie Algebras and Their Cohomology</Heading>
252
253Representations of Lie algebras are dealt with in the same way as
254representations of ordinary algebras
255(see <Ref Sect="Representations of Algebras"/>).
256In this section we mainly deal with modules over general Lie algebras
257and their cohomology. The next section is devoted to modules over
258semisimple Lie algebras.
259
260<#Include Label="[1]{lierep}">
261<#Include Label="IsCochain">
262<#Include Label="Cochain">
263<#Include Label="CochainSpace">
264<#Include Label="ValueCochain">
265<#Include Label="LieCoboundaryOperator">
266<#Include Label="Cocycles">
267<#Include Label="Coboundaries">
268
269</Section>
270
271
272<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
273<Section Label="Modules over Semisimple Lie Algebras">
274<Heading>Modules over Semisimple Lie Algebras</Heading>
275
276This section contains functions for calculating information on
277representations of semisimple Lie algebras. First we have some functions
278for calculating some combinatorial data (set of dominant weights,
279the dominant character, the decomposition of a tensor product, the dimension
280of a highest-weight module). Then
281there is a function for creating an admissible lattice in the universal
282enveloping algebra of a semisimple Lie algebra. Finally we have a function
283for constructing a highest-weight module over a semisimple Lie algebra.
284<P/>
285<#Include Label="DominantWeights">
286<#Include Label="DominantCharacter">
287<#Include Label="DecomposeTensorProduct">
288<#Include Label="DimensionOfHighestWeightModule">
289
290</Section>
291
292
293<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
294<Section Label="Admissible Lattices in UEA">
295<Heading>Admissible Lattices in UEA</Heading>
296
297<#Include Label="[2]{lierep}">
298<#Include Label="IsUEALatticeElement">
299<#Include Label="LatticeGeneratorsInUEA">
300
301<ManSection>
302<Meth Name="ObjByExtRep" Arg="F, descr"
303 Label="for creating a UEALattice element"/>
304
305<Description>
306An UEALattice element is represented by a list of the form
307<C>[ m1, c1, m2, c2, ... ]</C>, where the <C>c1</C>, <C>c2</C> etc. are
308coefficients, and the <C>m1</C>, <C>m2</C> etc. are monomials. A monomial
309is a list of the form <C>[ ind1, e1, ind2, e2, ... ]</C> where <C>ind1</C>,
310<C>ind2</C> are indices, and <C>e1</C>, <C>e2</C> etc. are exponents. Let
311<M>N</M> be the number of positive roots of the underlying Lie algebra
312<C>L</C>. The indices lie between 1 and <M>dim(L)</M>. If an index lies
313between 1 and <C>N</C>, then it represents a negative root vector
314(corresponding to the root <C>NegativeRoots( R )[ind]</C>, where <C>R</C>
315is the root system of <C>L</C>; see&nbsp;<Ref Attr="NegativeRoots"/>). This
316leads to a factor <C>yind1^(e1)</C> in the printed form of the monomial
317(which equals <C>z^e1/e1!</C>, where <C>z</C> is a basis element of <C>L</C>).
318If an index lies between <M>N+1</M> and <M>2N</M>, then it represents a
319positive root vector. Finally, if ind lies between <M>2N+1</M> and
320<M>2N+rank</M>, then it represents an element of the Cartan subalgebra.
321This is printed as <M>( h_1/ e_1 )</M>, meaning <M>{h_1 \choose e_1}</M>,
322where <M>h_1, \ldots, h_{rank}</M> are the canonical Cartan generators.
323<P/>
324The zero element is represented by the empty list, the identity
325element by the list <C>[ [], 1 ]</C>.
326<P/>
327<Example><![CDATA[
328gap> L:= SimpleLieAlgebra( "G", 2, Rationals );;
329gap> g:=LatticeGeneratorsInUEA( L );
330[ y1, y2, y3, y4, y5, y6, x1, x2, x3, x4, x5, x6, ( h13/1 ),
331  ( h14/1 ) ]
332gap> IsUEALatticeElement( g[1] );
333true
334gap> g[1]^3;
3356*y1^(3)
336gap> q:= g[7]*g[1]^2;
337-2*y1+2*y1*( h13/1 )+2*y1^(2)*x1
338gap> ExtRepOfObj( q );
339[ [ 1, 1 ], -2, [ 1, 1, 13, 1 ], 2, [ 1, 2, 7, 1 ], 2 ]
340]]></Example>
341</Description>
342</ManSection>
343
344<#Include Label="IsWeightRepElement">
345<#Include Label="HighestWeightModule">
346
347</Section>
348
349
350<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
351<Section Label="Tensor Products and Exterior and Symmetric Powers">
352<Heading>Tensor Products and Exterior and Symmetric Powers</Heading>
353
354<#Include Label="TensorProductOfAlgebraModules">
355<#Include Label="ExteriorPowerOfAlgebraModule">
356<#Include Label="SymmetricPowerOfAlgebraModule">
357
358</Section>
359</Chapter>
360
361
362<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
363<!-- %% -->
364<!-- %E -->
365
366