# # file: semisimple.gap # purpose: GAP functions constructing semisimple modular Lie algebras # created: pasha jan 4 2005 # modified: pasha feb 15-17 2005 # modification: continued to work on ToyModularSemisimple1() # # a "toy" model of modular semisimple Lie algebra: # given a (Lie) algebra L and reduced polynomial ring K[x]/(x^n), # constructs L\otimes K[x]/(x^p) + ToyModularSemisimple := function (L) local K, Soc, scSoc, T, p, i, j; K := LeftActingDomain(L); p := Characteristic(K); if p = 0 then Error ("the ground field supposed to be of positive characteristic"); fi; Soc := TensorProductOfTwoAlgebras (L, O1); # we utilize structure constants in basis constructed in TensorProductOfTwoAlgebras() scSoc := StructureConstantsTable (Basis(Soc)); # now build a semidirect product of Soc and acting on K[x]/(x^n) T := EmptySCTable (Dimension(Soc) + 1, Zero(K), "antisymmetric"); #T := EmptySCTable (Dimension(Soc) + 2, Zero(K), "antisymmetric"); # basis of L\otimes O_1 + is obtained from basis of L\otimes K[x]/(x^p)... for i in [1..Dimension(Soc)] do for j in [1..Dimension(Soc)] do # this corresponds to the multiplication table in L\otimes K[x]/(x^p) T[i][j] := scSoc[i][j]; od; od; # ...plus adjoining the last element d/dx for i in [1..Dimension(L)] do for j in [1..p-1] do # this corresponds to [e_i\otimes x^j, d/dx] = j e_i \otimes x^{j-1} SetEntrySCTable (T, i+j*Dimension(L), Dimension(Soc) + 1, [j, i+(j-1)*Dimension(L)]); ##[e_i\otimes x^j, xd/dx] = je_i\otimes x^j #SetEntrySCTable (T, i+j*Dimension(L), Dimension(Soc) + 2, # [j, i+j*Dimension(L)]); od; od; ## multiplication between d/dx and xd/dx: [d/dx, xd/dx] = -d/dx #SetEntrySCTable (T, Dimension(Soc) + 1, Dimension(Soc) + 2, [-1, Dimension(Soc) + 1]); return (LieAlgebraByStructureConstants (K, T)); end; # given a Lie algebra L, and list of derivations of O_1, listders, # construct a Lie algebra L\otimes O_1 + # (listders supposed to be a basis of algebra of derivations of O_1) ToyModularSemisimple1 := function (L, listders) local K, Soc, scSoc, p, der; K := LeftActingDomain(L); p := Characteristic(K); if p = 0 then Error ("the ground field supposed to be of positive characteristic"); fi; Soc := TensorProductOfTwoAlgebras (L, O1); # der should be linear span of listder der := DerivationLieAlgebra (listders); # f should be action of der on Soc: der->End(K, Soc) # defined as x\otimes a -> x\otimes d(a) #f := LeftModuleHomomorphismByImagesNC (der, End (L, Soc), Basis(der), ?); #return (SemidirectProductOfAlgebras (Soc, der, f)); end; # end of semisimple.gap