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