File: alglie.xml

package info (click to toggle)
gap 4.15.1-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 110,212 kB
  • sloc: ansic: 97,261; xml: 48,343; cpp: 13,946; sh: 4,900; perl: 1,650; javascript: 255; makefile: 252; ruby: 9
file content (364 lines) | stat: -rw-r--r-- 13,394 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<!-- %% -->
<!-- %A  alglie.xml                  GAP documentation             Willem de Graaf -->
<!-- %% -->
<!-- %% -->
<!-- %Y  (C) 1998 School Math and Comp. Sci., University of St Andrews, Scotland -->
<!-- %Y  Copyright (C) 2002 The GAP Group -->
<!-- %% -->
<Chapter Label="Lie Algebras">
<Heading>Lie Algebras</Heading>

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

<!-- %%  The algorithms for Lie algebras are due to Willem de Graaf. -->


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Lie Objects">
<Heading>Lie Objects</Heading>

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

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Constructing Lie algebras">
<Heading>Constructing Lie algebras</Heading>

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 <Ref Chap="Algebras"/>.

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

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Distinguished Subalgebras">
<Heading>Distinguished Subalgebras</Heading>

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">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Series of Ideals">
<Heading>Series of Ideals</Heading>

<#Include Label="LieDerivedSeries">
<#Include Label="LieLowerCentralSeries">
<#Include Label="LieUpperCentralSeries">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Properties of a Lie Algebra">
<Heading>Properties of a Lie Algebra</Heading>

<#Include Label="IsLieAbelian">
<#Include Label="IsLieNilpotent">
<#Include Label="IsLieSolvable">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Semisimple Lie Algebras and Root Systems">
<Heading>Semisimple Lie Algebras and Root Systems</Heading>

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">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Semisimple Lie Algebras and Weyl Groups of Root Systems">
<Heading>Semisimple Lie Algebras and Weyl Groups of Root Systems</Heading>

This section deals with the Weyl group of a root system.
A Weyl group is represented by its action on the weight lattice.
A <E>weight</E> is by definition a linear function
<M>\lambda: H \rightarrow F</M> (where <M>F</M> is the ground field), such
that the values <M>\lambda(h_i)</M> are all integers (where the <M>h_i</M>
are the Cartan elements of the <Ref Attr="CanonicalGenerators"/>).
On the other hand each weight is determined by these values.
Therefore we represent a weight by a vector of integers;
the <M>i</M>-th entry of this vector is the value <M>\lambda(h_i)</M>.
Now the elements of the Weyl group are represented by matrices, and
if <C>g</C> is an element of a Weyl group and <C>w</C> a weight, then
<C>w*g</C> gives the result of applying <C>g</C> to <C>w</C>.
Another way of applying the <M>i</M>-th simple reflection to a weight is
by using the function <Ref Oper="ApplySimpleReflection"/>.
<P/>
A Weyl group is generated by the simple reflections.
So <Ref Attr="GeneratorsOfGroup"/> for a Weyl group <C>W</C>  gives a list
of matrices and the <M>i</M>-th entry of this list is the simple reflection
corresponding to the <M>i</M>-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">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Restricted Lie algebras">
<Heading>Restricted Lie algebras</Heading>

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

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="The Adjoint Representation">
<Heading>The Adjoint Representation</Heading>

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 <Ref Attr="AdjointBasis"/> and
<Ref Attr="IndicesOfAdjointBasis"/>).
<P/>
<#Include Label="AdjointMatrix">
<#Include Label="AdjointAssociativeAlgebra">
<#Include Label="KillingMatrix">
<#Include Label="KappaPerp">
<#Include Label="IsNilpotentElement">
<#Include Label="NonNilpotentElement">
<#Include Label="FindSl2">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Universal Enveloping Algebras">
<Heading>Universal Enveloping Algebras</Heading>

<#Include Label="UniversalEnvelopingAlgebra">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Finitely Presented Lie Algebras">
<Heading>Finitely Presented Lie Algebras</Heading>

Finitely presented Lie algebras can be constructed from free Lie algebras by
using the <C>/</C> constructor, i.e., <C>FL/[r1, ..., rk]</C> is the quotient
of the free Lie algebra <C>FL</C> by the ideal generated by the elements
<C>r1, ..., rk</C> of <C>FL</C>. If the finitely presented Lie algebra
<C>K</C> happens to be finite dimensional then an isomorphic structure
constants Lie algebra can be constructed by <C>NiceAlgebraMonomorphism(K)</C>
(see&nbsp;<Ref Attr="NiceAlgebraMonomorphism"/>), which returns a surjective
homomorphism. The structure constants Lie algebra can then be accessed by
calling <Ref Attr="Range" Label="of a general mapping"/> for this map.
Also limited computations with elements of the finitely presented Lie
algebra are possible.
<P/>
<Example><![CDATA[
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
]]></Example>
<P/>
<#Include Label="FpLieAlgebraByCartanMatrix">
<#Include Label="NilpotentQuotientOfFpLieAlgebra">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Modules over Lie Algebras and Their Cohomology">
<Heading>Modules over Lie Algebras and Their Cohomology</Heading>

Representations of Lie algebras are dealt with in the same way as
representations of ordinary algebras
(see <Ref Sect="Representations of Algebras"/>).
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">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Modules over Semisimple Lie Algebras">
<Heading>Modules over Semisimple Lie Algebras</Heading>

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.
<P/>
<#Include Label="DominantWeights">
<#Include Label="DominantCharacter">
<#Include Label="DecomposeTensorProduct">
<#Include Label="DimensionOfHighestWeightModule">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Admissible Lattices in UEA">
<Heading>Admissible Lattices in UEA</Heading>

<#Include Label="[2]{lierep}">
<#Include Label="IsUEALatticeElement">
<#Include Label="LatticeGeneratorsInUEA">

<ManSection>
<Meth Name="ObjByExtRep" Arg="F, descr"
 Label="for creating a UEALattice element"/>

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

<#Include Label="IsWeightRepElement">
<#Include Label="HighestWeightModule">

</Section>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Tensor Products and Exterior and Symmetric Powers of Algebra Modules">
<Heading>Tensor Products and Exterior and Symmetric Powers of Algebra Modules</Heading>

<#Include Label="TensorProductOfAlgebraModules">
<#Include Label="ExteriorPowerOfAlgebraModule">
<#Include Label="SymmetricPowerOfAlgebraModule">

</Section>
</Chapter>


<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<!-- %% -->
<!-- %E -->