For affine Lie algebras there exists a well-known explicit construction of these in terms of an underlying finite-dimensional Lie algebra and a central extension (see [Kac90, Chapters 7,8]). We briefly reiterate the construction here. Suppose A is an affine Cartan matrix, so that g(A) is an affine Lie algebra; then A is of affine Cartan type simXn for X=A,B,C,D,E,F, or G, and some n. If we let g0 be the finite variant (i.e., a Lie algebra of Cartan type Xn) then
g (A) isomorphic to g0 tensor C[t, t - 1] direct-sum C c direct-sum C d
for some formal basis elements c and d, where C[t, t - 1] is the ring of Laurent polynomials over C. In Magma we represent affine Lie algebras and their elements using the form on the right hand side.
Multiplication is given by
[tk tensor x direct-sum λ c direct-sum μ d, tk1 tensor y direct-sum λ1 c direct-sum μ1 d] =
(tk + k1 tensor [x, y] + μ k1 tk1 tensor y - μ1 k tk tensor x ) direct-sum k δk, - k1 (x|y) c,
where (x|y) denotes a fixed non-degenerate invariant symmetric bilinear C-valued form on g0.
If we fix Ei, Fi to be canonical generators of g0, then the canonical generators of g(A), as described in the introduction (Introduction) are given by e0 = t tensor E0, f0 = t - 1 tensor F0, and ei = 1 tensor Ei, fi = 1 tensor Fi, for i = 1, ..., l, where l is the rank of the Cartan matrix.
Affine Lie algebras and their elements are of type AlgKac and AlgKacElt respectively.
Construct the affine Kac-Moody Lie algebra of type N over the field F. N should be a string describing an affine Cartan type (e.g. A~3). See Section Finite and Affine Coxeter Groups for more information on the conventions, syntax, and functions for creating and working with affine Cartan matrices.
Construct the affine Kac-Moody Lie algebra with affine Cartan matrix C over the field F.
> L := AffineLieAlgebra("G~2", Rationals()); > L; Affine Kac-Moody Lie algebra over Rational Field > C := Matrix(Integers(),3,3,[2,-1,-1,-1,2,-1,-1,-1,2]); > CartanName(C); A~2 > L := AffineLieAlgebra(C, Rationals()); > L; Affine Kac-Moody Lie algebra over Rational Field
The Cartan matrix of L.
The Cartan type of L.
Infinity.
The coefficient ring of L.
The Lie algebra g0 underlying L (see the Introduction, Section Introduction).
The Laurent series ring C[t, t - 1] underlying L (see the Introduction, Section Introduction).
The standard generators of L. These are returned as three sequences, the first containing the ei, the second containing the fi, and the last containing the hi. Note that the root usually labeled "0" occurs as the last element of each of these sequences.
> L := AffineLieAlgebra("A~2", Rationals()); > L; Affine Kac-Moody Lie algebra over Rational Field > Lf := FiniteLieAlgebra(L); > Lf; Lie Algebra of dimension 8 with base ring Rational Field > SemisimpleType(Lf); A2 > e,f,h := StandardGenerators(L); > e; [ (0 0 0 0 0 1 0 0), (0 0 0 0 0 0 1 0), (t)*(1 0 0 0 0 0 0 0) ] > F<e1,e2,e0,f1,f2,f0> := FreeLieAlgebra(Rationals(), 6); > phi := hom<F -> L | e cat f>; > phi(e1); (0 0 0 0 0 1 0 0) > phi(e1*e0) eq phi(e1)*phi(e0); true
The i-th basis element of the finite dimensional Lie algebra underlying L, as an element of L.
Return true and the basis element c or d of L, according to the second argument of HasAttribute.
For a 3-tuple t such that t1 is a sequence of elements of C[t, t - 1] x g0, and t2 and t3 are elements of the coefficient ring of L, construct∑(p, y) ∈t1 p tensor y direct-sum t2 c direct-sum t3 d ∈L.
See EltTup below for the converse function.
The element x of the affine Lie algebra L as a three-tuple t such thatx = ∑(p, y) ∈t1 p tensor y direct-sum t2 c direct-sum t3 d.
The first entry, t1, is a sequence of pairs (p, y) ∈C[t, t - 1] x g0, t2 is the coefficient of c and t3 is the coefficient of d.
Whether x is zero.
Whether x and y are equal.
Respectively the sum, difference, and multiplication of x and y.
The negation of x.
> L<t> := AffineLieAlgebra("B~3", Rationals()); > Lf := FiniteLieAlgebra(L); > e,f,h := StandardGenerators(L); > E,F,H := StandardBasis(Lf); > e[1] eq L!E[1]; true > x := e[4]; > x; (t)*(1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) > EltTup(x); <[ <t, (1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)> ], 0, 0> > elt<L | EltTup(x) > eq x; true > y := elt<L | <[<t^2-t^-2, F[1]>,<-2,Lf.3>], -1/3, 1> >; > y; (-2)*(0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (-t^-2 + t^2)*(0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0) -1/3*c + d > z := t^3*L.2 - 1/5*h[1] + 1/7*L`c-L`d; > z; (t^3)*(0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (2/5)*(0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0) (-1/5)*(0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0) + 1/7*c -1*d > x*(y*z) + y*(z*x) + z*(x*y); 0