Material for Lie algebras
Author
Bernd Günther
Title
Material for Lie algebras
Description
Structure constants of Lie algebras, root space decompositions, Dynkin diagrams, Chevalley bases
Category
Working Material
Keywords
Structure constants of Lie algebras, root space decompositions, Dynkin diagrams, Chevalley bases
URL
http://www.notebookarchive.org/2021-05-dcakaht/
DOI
https://notebookarchive.org/2021-05-dcakaht
Date Added
2021-05-29
Date Last Modified
2021-05-29
File Size
2.13 megabytes
Supplements
Rights
Redistribution rights reserved



In[]:=
Needs["LieAlg4BG`",$UserDocumentsDirectory<>"/Wolfram Mathematica/LieAlg4BG.m"]
General linear algebra
General linear algebra
In[]:=
?ElemMatrices
Out[]=
Symbol | |
ElemMatrices[n] lists the elementary matrices (standard basis) of dimension nxn. | |
In[]:=
MatrixForm/@ElemMatrices[2]
Out[]=
,
,
,
1 | 0 |
0 | 0 |
0 | 1 |
0 | 0 |
0 | 0 |
1 | 0 |
0 | 0 |
0 | 1 |
In[]:=
n=5;ElemMatrices[n]==Flatten[Outer[Times,IdentityMatrix[n],IdentityMatrix[n]],{{1,3},{2},{4}}]
Out[]=
True
In[]:=
?LieAlgGL
Out[]=
Symbol | |
LieAlgGL[n] returns the structure constants of the general linear algebra in n dimensions with respect to the standard basis. | |
In[]:=
n=5;LieAlgGL[n]==Flatten[Outer[Times,IdentityMatrix[n],IdentityMatrix[n],IdentityMatrix[n]],{{3,5},{4,1},{2,6}}]-Flatten[Outer[Times,IdentityMatrix[n],IdentityMatrix[n],IdentityMatrix[n]],{{3,5},{1,6},{4,2}}]
Out[]=
True
In[]:=
?LieRepresentationCheck
Out[]=
Symbol | |
LieRepresentationCheck[liealg,repr] returns True if the matrices repr constitute a representations of the Lie algebra with structure constants liealg, as images of the base vectors. | |
The structure constants define commutators:
In[]:=
n=5;LieRepresentationCheck[LieAlgGL[n],ElemMatrices[n]]
Out[]=
True
In[]:=
?LieAxiomCheck
Out[]=
Symbol | |
LieAxiomCheck[x] is true if and only if x is a three dimensional tensor satisfying the axioms of Lie structure constants (antisymmetry and Jacobi identity). | |
In[]:=
LieAxiomCheck[LeviCivitaTensor[3]]
Out[]=
True
In[]:=
LieAxiomCheck[LieAlgGL[5]]
Out[]=
True
In[]:=
?LieCenter
Out[]=
Symbol | |
LieCenter[x] computes the center of the Lie algebra with structure constants x as collection of base vectors. | |
In[]:=
n=5;MatrixForm[Flatten[LieCenter[LieAlgGL[n]]].ElemMatrices[n]]
Out[]//MatrixForm=
1 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 |
The structure constants can also be obtained directly from the base matrices:
In[]:=
n=5;LieAlgGL[n]==Simplify[Outer[Tr[Transpose[#1].(#2.#3-#3.#2)]&,ElemMatrices[n],ElemMatrices[n],ElemMatrices[n],1]]
Out[]=
True
Special linear algebra
Special linear algebra
In[]:=
?LieAlgSL
Out[]=
Symbol | |
LieAlgSL[n] returns the structure constants of the special linear algebra in n dimensions with respect to the standard basis. | |
In[]:=
LieAxiomCheck[LieAlgSL[6]]
Out[]=
True
In[]:=
LieCenter[LieAlgSL[6]]
Out[]=
{}
In[]:=
?LieMatricesSL
Out[]=
Symbol | |
LieMatricesSL[n] returns the standard base matrices of the special linear algebra in n dimensions. | |
In[]:=
MatrixForm/@LieMatricesSL[3]
Out[]=
,
,
,
,
,
,
,
1 | 0 | 0 |
0 | -1 | 0 |
0 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 1 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
1 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | -1 |
0 | 0 | 0 |
0 | 0 | 1 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
1 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 1 | 0 |
The structure constants define commutators:
In[]:=
n=5;LieRepresentationCheck[LieAlgSL[n],LieMatricesSL[n]]
Out[]=
True
Special orthogonal algebra
Special orthogonal algebra
In[]:=
?LieMatricesSO
Out[]=
Symbol | |
LieMatricesSO[n] returns the standard base matrices of the orthogonal algebra (the antisymmetric matrices) in n dimensions. | |
In[]:=
MatrixForm/@LieMatricesSO[4]
Out[]=
,
,
,
,
,
0 | -1 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | -1 | 0 |
0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | -1 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | -1 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | -1 |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | -1 |
0 | 0 | 1 | 0 |
In[]:=
?LieAlgSO
Out[]=
Symbol | |
LieAlgSO[n] returns the structure constants of the special orthogonal algebra with respect to the standard basis. | |
The structure constants define commutators:
In[]:=
n=5;LieRepresentationCheck[LieAlgSO[n],LieMatricesSO[n]]
Out[]=
True
In[]:=
LieAxiomCheck[LieAlgSO[5]]
Out[]=
True
In[]:=
LieCenter[LieAlgSO[n]]
Out[]=
{}
In[]:=
LieAlgSO[3]LeviCivitaTensor[3]
Out[]=
True
In[]:=
LieCenter[LieAlgSO[2]]
Out[]=
{{1}}
In[]:=
Eigenvalues[LieKillingForm[LieAlgGL[2]]]
Out[]=
{-4,4,4,0}
In[]:=
MatrixForm[LieKillingForm[LieAlgSL[2]]]
Out[]//MatrixForm=
8 | 0 | 0 |
0 | 0 | 4 |
0 | 4 | 0 |
In[]:=
Eigenvalues[LieKillingForm[LieAlgSL[2]]]
Out[]=
{8,-4,4}
In[]:=
MatrixForm[LieKillingForm[LieAlgSO[3]]]
Out[]//MatrixForm=
-2 | 0 | 0 |
0 | -2 | 0 |
0 | 0 | -2 |
The structure constants can also be obtained directly from the base matrices:
In[]:=
n=7;LieAlgSO[n]==Simplify[Outer[-1/2Tr[#1.(#2.#3-#3.#2)]&,LieMatricesSO[n],LieMatricesSO[n],LieMatricesSO[n],1]]
Out[]=
True
The structure constants of the special orthogonal algebra with respect to the standard basis are completely antisymmetric:
In[]:=
n=6;Transpose[LieAlgSO[n]]-LieAlgSO[n]
Out[]=
True
Special unitary algebra
Special unitary algebra
In[]:=
?LieMatricesSU
Out[]=
Symbol | |
LieMatricesSU[n] returns the standard base matrices of the special unitary algebra in n dimensions. | |
In[]:=
n=7;Tr[#.#]&/@LieMatricesSU[n]Table[-1/2,n^2-1]
Out[]=
True
In[]:=
n=7;Tr/@LieMatricesSU[n]Table[0,n^2-1]
Out[]=
True
In[]:=
MatrixForm/@LieMatricesSU[3]
Out[]=
,
,
,
,
,
,
,
- 2 | 0 | 0 |
0 | 2 | 0 |
0 | 0 | 0 |
0 | - 2 | 0 |
- 2 | 0 | 0 |
0 | 0 | 0 |
0 | - 1 2 | 0 |
1 2 | 0 | 0 |
0 | 0 | 0 |
- 2 3 | 0 | 0 |
0 | - 2 3 | 0 |
0 | 0 | 3 |
0 | 0 | - 2 |
0 | 0 | 0 |
- 2 | 0 | 0 |
0 | 0 | - 1 2 |
0 | 0 | 0 |
1 2 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | - 2 |
0 | - 2 | 0 |
0 | 0 | 0 |
0 | 0 | - 1 2 |
0 | 1 2 | 0 |
In[]:=
?LieAlgSU
Out[]=
Symbol | |
LieAlgSU[n] returns the structure constants of the special unitary algebra in n dimensions with respect to the standard basis. | |
In[]:=
LieAxiomCheck[LieAlgSU[7]]
Out[]=
True
The structure constants define commutators:
In[]:=
n=7;LieRepresentationCheck[LieAlgSU[n],LieMatricesSU[n]]
Out[]=
True
In[]:=
LieCenter[LieAlgSU[4]]
Out[]=
{}
The Killing form of the special unitary algebra with respect to the standard basis is times the identity matrix:
-n
In[]:=
n=7;LieKillingForm[LieAlgSU[n]]DiagonalMatrix[Table[-n,n^2-1]]
Out[]=
True
Special values from Pfeifer’s book:
In[]:=
LieAlgSU[3][[2,3,1]]1&&LieAlgSU[3][[2,5,8]]1/2&&LieAlgSU[3][[2,6,7]]-1/2&&LieAlgSU[3][[3,5,7]]1/2&&LieAlgSU[3][[3,6,8]]1/2&&LieAlgSU[3][[1,5,6]]1/2&&LieAlgSU[3][[1,7,8]]-1/2&&LieAlgSU[3][[5,6,4]]Sqrt[3]/2&&LieAlgSU[3][[7,8,4]]Sqrt[3]/2
Out[]=
True
In[]:=
LieAlgSU[4][[13,2,10]]1/2&&LieAlgSU[4][[12,2,11]]-1/2&&LieAlgSU[4][[12,3,10]]1/2&&LieAlgSU[4][[13,3,11]]1/2&&LieAlgSU[4][[11,1,10]]1/2&&LieAlgSU[4][[13,1,12]]-1/2&&LieAlgSU[4][[15,5,10]]1/2&&LieAlgSU[4][[14,5,11]]-1/2&&LieAlgSU[4][[14,6,10]]1/2&&LieAlgSU[4][[15,6,11]]1/2&&LieAlgSU[4][[15,7,12]]1/2&&LieAlgSU[4][[14,7,13]]-1/2&&LieAlgSU[4][[14,8,12]]1/2&&LieAlgSU[4][[15,8,13]]1/2&&LieAlgSU[4][[11,4,10]]1/Sqrt[12]&&LieAlgSU[4][[13,4,12]]1/Sqrt[12]&&LieAlgSU[4][[15,4,14]]-1/Sqrt[3]&&LieAlgSU[4][[9,10,11]]Sqrt[2/3]&&LieAlgSU[4][[9,12,13]]Sqrt[2/3]&&LieAlgSU[4][[9,14,15]]Sqrt[2/3]
Out[]=
True
In[]:=
LieAlgSU[2]LeviCivitaTensor[3]
Out[]=
True
The structure constants of the special unitary algebra with respect to the standard basis are completely antisymmetric:
In[]:=
n=6;Transpose[LieAlgSU[n]]-LieAlgSU[n]
Out[]=
True
The structure constants can also be obtained directly from the base matrices:
In[]:=
n=7;LieAlgSU[n]==Simplify[Outer[-2Tr[#1.(#2.#3-#3.#2)]&,LieMatricesSU[n],LieMatricesSU[n],LieMatricesSU[n],1]]
Out[]=
True
Symplectic algebra
Symplectic algebra
In[]:=
?LieMatricesSp
Out[]=
Symbol | |
LieMatricesSp[n] returns the standard base matrices of the symplectic algebra in 2n dimensions. | |
In[]:=
MatrixForm/@LieMatricesSp[2]
Out[]=
,
,
,
,
,
,
,
,
,
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | -1 | 0 |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | -1 | 0 |
0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | -1 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | -1 |
0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
Define dual matrices as auxiliaries:
In[]:=
dualLieMatricesSp[n_Integer]:=((Tr[#.Transpose[#]]^(-1)#)&/@LieMatricesSp[n])/;n≥1
Duality check:
In[]:=
n=3;Outer[Tr[#1.Transpose[#2]]&,LieMatricesSp[n],dualLieMatricesSp[n],1]IdentityMatrix[n(2n+1)]
Out[]=
True
In[]:=
?LieAlgSp
Out[]=
Symbol | |
LieAlgSp[n] returns the structure constants of the symplectic algebra in 2n dimensions with respect to the standard basis. | |
In[]:=
Table[LieAxiomCheck[LieAlgSp[n]],{n,6}]
Out[]=
{True,True,True,True,True,True}
The structure constants can also be derived by matrix operations:
In[]:=
n=3;LieAlgSp[n]==Simplify[Outer[Tr[Transpose[#1].(#2.#3-#3.#2)]&,dualLieMatricesSp[n],LieMatricesSp[n],LieMatricesSp[n],1]]
Out[]=
True
The structure constants define commutators:
In[]:=
n=5;LieRepresentationCheck[LieAlgSp[n],LieMatricesSp[n]]
Out[]=
True
In[]:=
LieCenter[LieAlgSp[5]]
Out[]=
{}
In[]:=
Eigenvalues[LieKillingForm[LieAlgSp[5]]]
Out[]=
{-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,-12,-12,-12,-12,-12,12,12,12,12,12}
Mixed orthogonal algebra
Mixed orthogonal algebra
In[]:=
?LieMatricesSOpq
Out[]=
Symbol | |
LieMatricesSOpq[p,q] returns standard base matrices of the mixed orthogonal algebra in p+q dimensions. | |
In[]:=
MatrixForm/@LieMatricesSOpq[2,2]
Out[]=
,
,
,
,
,
0 | -1 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | -1 |
0 | 0 | 1 | 0 |
0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
In[]:=
?LieAlgSOpq
Out[]=
In[]:=
And@@Flatten[Table[LieAxiomCheck[LieAlgSOpq[p,q]],{p,5},{q,5}]]
Out[]=
True
The structure constants define commutators:
In[]:=
And@@Flatten[Table[LieRepresentationCheck[LieAlgSOpq[p,q],LieMatricesSOpq[p,q]],{p,5},{q,5}]]
Out[]=
True
The structure constants can also be derived by matrix operations:
In[]:=
And@@Flatten[Table[LieAlgSOpq[p,q]==Simplify[(1/2)Outer[Tr[Transpose[#1].(#2.#3-#3.#2)]&,LieMatricesSOpq[p,q],LieMatricesSOpq[p,q],LieMatricesSOpq[p,q],1]],{p,4},{q,4}]]
Out[]=
True
In[]:=
LieCenter[LieAlgSOpq[3,3]]
Out[]=
{}
In[]:=
Eigenvalues[LieKillingForm[LieAlgSOpq[3,3]]]
Out[]=
{-8,-8,-8,-8,-8,-8,8,8,8,8,8,8,8,8,8}
Triangular algebra
Triangular algebra
In[]:=
?LieMatricesTri
Out[]=
Symbol | |
LieMatricesTri[n] returns the standard base matrices of the triangular Lie algebra in n dimensions. | |
In[]:=
MatrixForm/@LieMatricesTri[3]
Out[]=
,
,
,
,
,
1 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
0 | 0 | 1 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 1 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 1 |
In[]:=
?LieAlgTri
Out[]=
Symbol | |
LieAlgTri[n] returns the structure constants of the triangular algebra in n dimensions with respect to the standard base matrices. | |
In[]:=
LieAxiomCheck[LieAlgTri[5]]
Out[]=
True
In[]:=
n=5;LieRepresentationCheck[LieAlgTri[n],LieMatricesTri[n]]
Out[]=
True
In[]:=
LieCenter[LieAlgTri[5]]
Out[]=
{{1,0,1,0,0,1,0,0,0,1,0,0,0,0,1}}
In[]:=
n=5;MatrixForm[Flatten[LieCenter[LieAlgTri[n]]].LieMatricesTri[n]]
Out[]//MatrixForm=
1 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 |
In[]:=
Eigenvalues[LieKillingForm[LieAlgTri[5]]]
Out[]=
{5,5,5,5,0,0,0,0,0,0,0,0,0,0,0}
Strictly upper triangular algebra
Strictly upper triangular algebra
In[]:=
?LieAlgSuTri
Out[]=
Symbol | |
LieAlgSuTri[n] returns the structure constants of the strictly upper triangular algebra in n dimensions with respect to the standard base matrices. | |
In[]:=
And@@Table[LieAxiomCheck[LieAlgSuTri[n]],{n,2,10}]
Out[]=
True
In[]:=
LieCenter[LieAlgSuTri[5]]
Out[]=
{{0,0,0,0,0,0,-1,0,0,0}}
In[]:=
And@@Table[LieKillingForm[LieAlgSuTri[n]]==SparseArray[{},{n(n-1)/2,n(n-1)/2}],{n,2,7}]
Out[]=
True
Exceptional Lie algebras
Exceptional Lie algebras
In[]:=
?LieAlgExcG2
Out[]=
Symbol | |
LieAlgExcG2 returns the structure constants of the exceptional Lie algebra G2. | |
In[]:=
LieAxiomCheck[LieAlgExcG2]
Out[]=
True
In[]:=
?LieMatricesExcG2
Out[]=
Symbol | |
LieMatricesExcG2 returns the base matrices of the exceptional Lie algebra G2. | |
In[]:=
MatrixForm/@LieMatricesExcG2
Out[]=
,
,
,
,
,
,
,
,
,
,
,
,
,
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | -1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | -1 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | -1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | -1 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | -1 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | -1 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | -1 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | -1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | -1 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | -1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 2 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | -1 |
0 | 0 | 0 | 0 | 0 | 1 | 0 |
- 2 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 2 | 0 | 0 |
- 2 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | -1 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 2 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | -1 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
- 2 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 2 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
- 2 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | -1 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 2 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | -1 | 0 |
0 | 0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
- 2 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 2 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
- 2 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | -1 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
The structure constants define commutators:
In[]:=
LieRepresentationCheck[LieAlgExcG2,LieMatricesExcG2]
Out[]=
True
In[]:=
LieCenter[LieAlgExcG2]
Out[]=
{}
In[]:=
Eigenvalues[LieKillingForm[LieAlgExcG2]]
Out[]=
{-24,-24,-24,24,24,24,24,-8,-8,-8,8,8,8,8}
In[]:=
?LieAlgExcE
Out[]=
Symbol | |
LieAlgExcE[n] returns the structure constants of the exceptional Lie algebras En for n=6,7,8. | |
In[]:=
And@@(LieAxiomCheck[LieAlgExcE[#]]&/@{6,7,8})
Out[]=
True
In[]:=
?LieAlgExcF4
Out[]=
Symbol | |
LieAlgExcF4 returns the structure constants of the exceptional Lie algebra of type F4. | |
In[]:=
LieAxiomCheck[LieAlgExcF4]
Out[]=
True
In[]:=
LieCenter[LieAlgExcF4]
Out[]=
{}
In[]:=
MatrixRank[LieKillingForm[LieAlgExcF4]]Length[LieAlgExcF4]
Out[]=
True
Nilpotency
Nilpotency
In[]:=
And@@Table[LieIsNilpotent[LieAlgSuTri[n]],{n,2,9}]
Out[]=
True
In[]:=
Nor@@Table[LieIsNilpotent[LieAlgTri[n]],{n,2,9}]
Out[]=
True
In[]:=
Nor@@Table[LieIsNilpotent[LieAlgGL[n]],{n,2,7}]
Out[]=
True
In[]:=
Nor@@Table[LieIsNilpotent[LieAlgSL[n]],{n,2,7}]
Out[]=
True
In[]:=
Nor@@Table[LieIsNilpotent[LieAlgSO[n]],{n,3,8}]
Out[]=
True
In[]:=
Nor@@Table[LieIsNilpotent[LieAlgSU[n]],{n,2,6}]
Out[]=
True
In[]:=
Nor@@Table[LieIsNilpotent[LieAlgSp[n]],{n,2,6}]
Out[]=
True
In[]:=
Nor@@Flatten[Table[LieIsNilpotent[LieAlgSOpq[p,q]],{p,4},{q,If[p1,2,1],4}]]
Out[]=
True
Cartan algebras
Cartan algebras
In[]:=
?LieIsCartanAlgebra
Out[]=
Symbol | |
LieIsCartanAlgebra[liealg,subsp] evaluates if the subspace spanned by the rowvectors subsp is a Cartan subalgebra of liealg. | |
In[]:=
LieIsCartanAlgebra[LieAlgTri[4],{{1,0,0,0,0,0,0,0,0,0},{0,0,1,0,0,0,0,0,0,0},{0,0,0,0,0,1,0,0,0,0},{0,0,0,0,0,0,0,0,0,1}}]
Out[]=
True
In[]:=
!LieIsCartanAlgebra[LieAlgTri[4],IdentityMatrix[10]]
Out[]=
True
In[]:=
LieIsCartanAlgebra[LieAlgSL[2],{{1,0,0}}]
Out[]=
True
In[]:=
!LieIsCartanAlgebra[LieAlgSL[2],IdentityMatrix[3]]
Out[]=
True
In[]:=
?LieFindCartanSubalgebra
Out[]=
Symbol | |
LieFindCartanSubalgebra[liealg] returns a base (set of row vectors) for a Cartan subalgebra of the Lie algebra with structure constants liealg. | |
In[]:=
MatrixForm/@(LieFindCartanSubalgebra[LieAlgTri[4]].LieMatricesTri[4])
Out[]=
,
,
,
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
In[]:=
And@@Table[LieIsCartanAlgebra[LieAlgTri[n],LieFindCartanSubalgebra[LieAlgTri[n]]],{n,6}]
Out[]=
True
In[]:=
MatrixForm[LieFindCartanSubalgebra[LieAlgSuTri[4]]]
Out[]//MatrixForm=
1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 | 1 |
In[]:=
And@@Table[LieIsCartanAlgebra[LieAlgSuTri[n],LieFindCartanSubalgebra[LieAlgSuTri[n]]],{n,2,6}]
Out[]=
True
In[]:=
MatrixForm/@(LieFindCartanSubalgebra[LieAlgSL[4]].LieMatricesSL[4])
Out[]=
,
,
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 0 | 0 | -1 |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | -1 | 0 |
0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | -1 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
In[]:=
And@@Table[LieIsCartanAlgebra[LieAlgSL[n],LieFindCartanSubalgebra[LieAlgSL[n]]],{n,2,6}]
Out[]=
True
In[]:=
MatrixForm/@(LieFindCartanSubalgebra[LieAlgGL[4]].ElemMatrices[4])
Out[]=
,
,
,
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
In[]:=
And@@Table[LieIsCartanAlgebra[LieAlgGL[n],LieFindCartanSubalgebra[LieAlgGL[n]]],{n,6}]
Out[]=
True
In[]:=
MatrixForm/@(LieFindCartanSubalgebra[LieAlgSO[4]].LieMatricesSO[4])
Out[]=
,
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | -1 |
0 | 0 | 1 | 0 |
0 | -1 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
In[]:=
And@@Table[LieIsCartanAlgebra[LieAlgSO[n],LieFindCartanSubalgebra[LieAlgSO[n]]],{n,2,6}]
Out[]=
True
In[]:=
MatrixForm/@(LieFindCartanSubalgebra[LieAlgSU[4]].LieMatricesSU[4])
Out[]=
,
,
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | - 1 2 |
0 | 0 | 1 2 | 0 |
- 1 2 3 2 | 0 | 0 | 0 |
0 | - 1 2 3 2 | 0 | 0 |
0 | 0 | 2 3 2 6 | 0 |
0 | 0 | 0 | 1 2 3 2 |
- 2 | 0 | 0 | 0 |
0 | 2 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
In[]:=
And@@Table[LieIsCartanAlgebra[LieAlgSU[n],LieFindCartanSubalgebra[LieAlgSU[n]]],{n,2,6}]
Out[]=
True
In[]:=
LieIsCartanAlgebra[LieAlgSU[4],{{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,1,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,1,0,0,0,0,0,0}}]
Out[]=
True
In[]:=
MatrixForm/@(LieFindCartanSubalgebra[LieAlgSp[2]].LieMatricesSp[2])
Out[]=
,
0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | -1 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | -1 | 0 |
0 | 0 | 0 | 0 |
In[]:=
And@@Table[LieIsCartanAlgebra[LieAlgSp[n],LieFindCartanSubalgebra[LieAlgSp[n]]],{n,5}]
Out[]=
True
In[]:=
MatrixForm/@(LieFindCartanSubalgebra[LieAlgSOpq[2,2]].LieMatricesSOpq[2,2])
Out[]=
,
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | -1 |
0 | 0 | 1 | 0 |
0 | -1 | 0 | 0 |
1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
In[]:=
And@@Flatten[Table[LieIsCartanAlgebra[LieAlgSOpq[p,q],LieFindCartanSubalgebra[LieAlgSOpq[p,q]]],{p,3},{q,If[p1,2,1],3}]]
Out[]=
True
In[]:=
dimE={78,133,248};And@@Table[LieIsCartanAlgebra[LieAlgExcE[n],SparseArray[{{i_,i_}->1},{n,Part[dimE,n-5]}]],{n,{6,7,8}}]
Out[]=
True
De Graaf’s examples
De Graaf’s examples
In[]:=
lieAlgDeGraaf44=SparseArray[{{1,1,3}1,{1,3,1}-1,{2,1,3}1,{2,3,1}-1,{2,2,3}1,{2,3,2}-1},{3,3,3}]
Out[]=
SparseArray
|
In[]:=
LieAxiomCheck[lieAlgDeGraaf44]
Out[]=
True
In[]:=
LieFindCartanSubalgebra[lieAlgDeGraaf44]
Out[]=
{{0,0,1}}
In[]:=
LieIsCartanAlgebra[lieAlgDeGraaf44,LieFindCartanSubalgebra[lieAlgDeGraaf44]]
Out[]=
True
In[]:=
LieCenter[lieAlgDeGraaf44]
Out[]=
{}
In[]:=
MatrixForm[LieKillingForm[lieAlgDeGraaf44]]
Out[]//MatrixForm=
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 2 |
In[]:=
lieAlgDeGraaf71=SparseArray[Join[#,#/.({a_,b_,c_}d_)({a,c,b}-d)]&[{{2,1,2}2,{3,1,3}-2,{5,1,5}-1,{8,1,8}1,{1,2,3}1,{8,2,5}1,{5,3,8}1,{5,4,5}-1,{6,4,6}-2,{6,4,7}->1,{7,4,7}-2,{8,4,8}-1,{6,5,8}-1}],{8,8,8}];
In[]:=
LieAxiomCheck[lieAlgDeGraaf71]
Out[]=
True
In[]:=
MatrixForm[LieFindCartanSubalgebra[lieAlgDeGraaf71]]
Out[]//MatrixForm=
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
In[]:=
LieIsCartanAlgebra[lieAlgDeGraaf71,LieFindCartanSubalgebra[lieAlgDeGraaf71]]
Out[]=
True
In[]:=
LieCenter[lieAlgDeGraaf71]
Out[]=
{}
In[]:=
MatrixForm[LieKillingForm[lieAlgDeGraaf71]]
Out[]//MatrixForm=
10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 |
0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 10 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
In[]:=
lieAlgDeGraaf83=SparseArray[Join[#,#/.({a_,b_,c_}d_)({a,c,b}-d)]&[{{1,1,5}1,{1,2,5}1,{2,2,5}1,{1,3,4}1,{3,3,5}1}],{5,5,5}];
In[]:=
LieAxiomCheck[lieAlgDeGraaf83]
Out[]=
True
In[]:=
MatrixForm[LieFindCartanSubalgebra[lieAlgDeGraaf83]]
Out[]//MatrixForm=
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 0 |
In[]:=
LieIsCartanAlgebra[lieAlgDeGraaf83,LieFindCartanSubalgebra[lieAlgDeGraaf83]]
Out[]=
True
In[]:=
LieCenter[lieAlgDeGraaf83]
Out[]=
{}
In[]:=
MatrixForm[LieKillingForm[lieAlgDeGraaf83]]
Out[]//MatrixForm=
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 3 |
In[]:=
lieAlgDeGraaf106=SparseArray[Join[#,#/.({a_,b_,c_}d_)({a,c,b}-d)]&[{{1,1,2}2,{4,1,2}-3,{2,1,3}-1,{5,1,4}1,{3,2,3}2,{4,2,4}1,{5,2,5}-1,{4,3,5}1}],{5,5,5}];
In[]:=
LieAxiomCheck[lieAlgDeGraaf106]
Out[]=
True
In[]:=
LieFindCartanSubalgebra[lieAlgDeGraaf106]
Out[]=
{{0,1,0,0,0}}
In[]:=
LieIsCartanAlgebra[lieAlgDeGraaf106,LieFindCartanSubalgebra[lieAlgDeGraaf106]]
Out[]=
True
In[]:=
LieCenter[lieAlgDeGraaf106]
Out[]=
{}
In[]:=
MatrixForm[LieKillingForm[lieAlgDeGraaf106]]
Out[]//MatrixForm=
0 | 0 | 5 | 0 | 0 |
0 | 10 | 0 | 0 | 0 |
5 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
In[]:=
lieAlgDeGraaf129=SparseArray[Join[#,#/.({a_,b_,c_}d_)({a,c,b}-d)]&[{{2,1,2}2,{3,1,3}-2,{5,1,5}2,{6,1,6}-2,{1,2,3}1/2,{4,2,3}1/2,{2,4,2}2,{3,4,3}-2,{5,4,5}-2,{6,4,6}2,{1,5,6}1/2,{4,5,6}-1/2}],{6,6,6}];
In[]:=
LieAxiomCheck[lieAlgDeGraaf129]
Out[]=
True
In[]:=
MatrixForm[LieFindCartanSubalgebra[lieAlgDeGraaf129]]
Out[]//MatrixForm=
0 | 0 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 |
In[]:=
LieIsCartanAlgebra[lieAlgDeGraaf129,LieFindCartanSubalgebra[lieAlgDeGraaf129]]
Out[]=
True
In[]:=
LieCenter[lieAlgDeGraaf129]
Out[]=
{}
In[]:=
MatrixForm[LieKillingForm[lieAlgDeGraaf129]]
Out[]//MatrixForm=
16 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 4 | 0 | 0 | 0 |
0 | 4 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 16 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 4 |
0 | 0 | 0 | 0 | 4 | 0 |
In[]:=
x=lieAlgDeGraaf129;Map[MatrixForm,LieFindCartanSubalgebra[x].Transpose[x,{2,1,3}],1]
Out[]=
,
0 | 0 | 0 | 0 | 0 | 0 |
0 | 2 | 0 | 0 | 0 | 0 |
0 | 0 | -2 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | -2 | 0 |
0 | 0 | 0 | 0 | 0 | 2 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 2 | 0 | 0 | 0 | 0 |
0 | 0 | -2 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 2 | 0 |
0 | 0 | 0 | 0 | 0 | -2 |
In[]:=
lieAlgDeGraaf130=SparseArray[Join[#,#/.({a_,b_,c_}d_)({a,c,b}-d)]&[{{4,1,3}2,{3,1,4}-2,{6,1,5}-2,{5,1,6}2,{3,2,3}2,{4,2,4}2,{5,2,5}-2,{6,2,6}-2,{2,3,5}1,{1,3,6}1,{1,4,5}1,{2,4,6}-1}],{6,6,6}];
In[]:=
LieAxiomCheck[lieAlgDeGraaf130]
Out[]=
True
In[]:=
MatrixForm[LieFindCartanSubalgebra[lieAlgDeGraaf130]]
Out[]//MatrixForm=
0 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 |
In[]:=
LieIsCartanAlgebra[lieAlgDeGraaf130,LieFindCartanSubalgebra[lieAlgDeGraaf130]]
Out[]=
True
In[]:=
LieCenter[lieAlgDeGraaf130]
Out[]=
{}
In[]:=
MatrixForm[LieKillingForm[lieAlgDeGraaf130]]
Out[]//MatrixForm=
-16 | 0 | 0 | 0 | 0 | 0 |
0 | 16 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 8 | 0 |
0 | 0 | 0 | 0 | 0 | -8 |
0 | 0 | 8 | 0 | 0 | 0 |
0 | 0 | 0 | -8 | 0 | 0 |
In[]:=
x=lieAlgDeGraaf130;Map[MatrixForm,LieFindCartanSubalgebra[x].Transpose[x,{2,1,3}],1]
Out[]=
,
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 2 | 0 | 0 | 0 |
0 | 0 | 0 | 2 | 0 | 0 |
0 | 0 | 0 | 0 | -2 | 0 |
0 | 0 | 0 | 0 | 0 | -2 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | -2 | 0 | 0 |
0 | 0 | 2 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 2 |
0 | 0 | 0 | 0 | -2 | 0 |
In[]:=
x=lieAlgDeGraaf130;Map[MatrixForm[Part[JordanDecomposition[#],2]]&,LieFindCartanSubalgebra[x].Transpose[x,{2,1,3}],1]
Out[]=
,
-2 | 0 | 0 | 0 | 0 | 0 |
0 | -2 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 2 | 0 |
0 | 0 | 0 | 0 | 0 | 2 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | -2 | 0 | 0 | 0 |
0 | 0 | 0 | -2 | 0 | 0 |
0 | 0 | 0 | 0 | 2 | 0 |
0 | 0 | 0 | 0 | 0 | 2 |
In[]:=
lieAlgDeGraaf133=SparseArray[Join[#,#/.({a_,b_,c_}d_)({a,c,b}-d)]&[{{1,1,3}1,{5,1,4}1,{6,1,5}-1/2,{2,2,3}2,{3,2,4}1,{6,2,4}-1/2,{1,2,5}1,{4,3,4}2,{5,3,5}1}],{6,6,6}];
In[]:=
LieAxiomCheck[lieAlgDeGraaf133]
Out[]=
True
In[]:=
MatrixForm[LieFindCartanSubalgebra[lieAlgDeGraaf133]]
Out[]//MatrixForm=
0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 |
In[]:=
LieIsCartanAlgebra[lieAlgDeGraaf133,LieFindCartanSubalgebra[lieAlgDeGraaf133]]
Out[]=
True
In[]:=
LieCenter[lieAlgDeGraaf133]
Out[]=
{{0,0,0,0,0,1}}
In[]:=
MatrixForm[LieKillingForm[lieAlgDeGraaf133]]
Out[]//MatrixForm=
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | -5 | 0 | 0 |
0 | 0 | 10 | 0 | 0 | 0 |
0 | -5 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
In[]:=
x=lieAlgDeGraaf133;Map[MatrixForm,LieFindCartanSubalgebra[x].Transpose[x,{2,1,3}],1]
Out[]=
,
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
-1 | 0 | 0 | 0 | 0 | 0 |
0 | -2 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 2 | 0 | 0 |
0 | 0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
Example containing two dimensional root space
Example containing two dimensional root space
In[]:=
lieAlg2dimW=SparseArray[(Join[#1,#1/.({a_,b_,c_}d_){a,c,b}-d]&)[{{2,1,2}1,{3,1,2}1,{3,1,3}1}],{3,3,3}];
In[]:=
LieAxiomCheck[lieAlg2dimW]
Out[]=
True
In[]:=
LieCenter[lieAlg2dimW]
Out[]=
{}
In[]:=
MatrixForm[LieKillingForm[lieAlg2dimW]]
Out[]//MatrixForm=
2 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
In[]:=
Normal[LieFindCartanSubalgebra[lieAlg2dimW]]
Out[]=
{{1,0,0}}
In[]:=
Map[MatrixForm,LieFindCartanSubalgebra[lieAlg2dimW].Transpose[lieAlg2dimW,{2,1,3}],1]
Out[]=
0 | 0 | 0 |
0 | 1 | 0 |
0 | 1 | 1 |
Lie algebras with non commutative Cartan algebra
Lie algebras with non commutative Cartan algebra
In[]:=
lieAlgNilpCartan[n_Integer]:=Module[{i,j,k},SparseArray[Flatten[Join[Apply[{Table[{#1,#2,#3}->#4,{k,n},{j,k-1},{i,j-1}],Table[{#1,#3,#2}->-#4,{k,n},{j,k-1},{i,j-1}]}&,{{(k-2)(k-1)/2+i,(j-2)(j-1)/2+i,(k-2)(k-1)/2+j,1}},{1}],Apply[{Table[{#1,#2,#3}->#4,{k,n-1}],Table[{#1,#3,#2}->-#4,{k,n-1}]}&,{{n(n-1)/2+1,n(n-1)/2+1,k(k+1)/2,1}},{1}]]],{n(n-1)/2+1,n(n-1)/2+1,n(n-1)/2+1}]]/;n>=2
In[]:=
And@@Table[LieAxiomCheck[lieAlgNilpCartan[n]],{n,2,7}]
Out[]=
True
In[]:=
LieCenter[lieAlgNilpCartan[4]]
Out[]=
{{0,0,0,-1,0,0,0}}
In[]:=
Eigenvalues[LieKillingForm[lieAlgNilpCartan[4]]]
Out[]=
{3,0,0,0,0,0,0}
In[]:=
And@@Table[Length[LieFindCartanSubalgebra[lieAlgNilpCartan[n]]]n(n-1)/2,{n,2,7}]
Out[]=
True
Notice that the Cartan algebra is the strictly upper triangular algebra.
Primary block decomposition
Primary block decomposition
In[]:=
?JordanBlockDecompose
Out[]=
Symbol | |
JordanBlockDecompose[x] returns a list of triples {i,j,p} (one for each primary block of a square matrix x), where i is the inclusion map of the component space, p is the projection map of total space onto the component space and j is the Jordan normal matrix j=p.x.i. | |
In[]:=
jbdTest[y_]:=Module[{z=Transpose[JordanBlockDecompose[y]],rdim,u,j,k,isNilpotent},isNilpotent[x_]:=Module[{y1=x,n=Length[x],m=1},If[Tr[x]≠0,False,While[m≤n&&y1≠SparseArray[{},{n,n}],y1=y1.y1;m=2m];y1SparseArray[{},{n,n}]]];rdim=Length[Part[z,2]];u=Outer[(#2.y.#1)&,Part[z,1],Part[z,3],1];(Diagonal[u]==Part[z,2])&&And@@Flatten[Table[If[j≠k,And@@Flatten[Map[(#0)&,Part[u,j,k],{2}]],Nothing],{k,rdim},{j,rdim}]]&&(And@@(isNilpotent/@(Apply[(#1IdentityMatrix[#2])&,({Extract[{1,1}][#],Length[#]}&/@Part[z,2]),1]-Part[z,2])))&&(Part[#,2]&/@Tally[Extract[{1,1}]/@Part[z,2]]ConstantArray[1,rdim])];
In[]:=
x=LieAlgGL[3];And@@Map[jbdTest,LieFindCartanSubalgebra[x].Transpose[x,{2,1,3}],1]
Out[]=
True
In[]:=
x=lieAlgDeGraaf130;And@@Map[jbdTest,LieFindCartanSubalgebra[x].Transpose[x,{2,1,3}],1]
Out[]=
True
In[]:=
x={{-3,-1,4,-3,-1},{1,1,-1,1,0},{-1,0,2,0,0},{4,1,-4,5,1},{-2,0,2,-2,1}};jbdTest[x]
Out[]=
True
In[]:=
Map[MatrixForm,JordanBlockDecompose[x],2]
Out[]=
,
| ||||||||||||||||||||
| ||||||||||||||||||||
|
| |||||
(
| |||||
(
|
In[]:=
x={{2,0,0,0,0},{0,1,0,0,0},{0,0,0,0,1},{0,0,1,0,-3},{0,0,0,1,3}};jbdTest[x]
Out[]=
True
In[]:=
x={{1,0,0,1,0,0},{1,1,1,1,0,0},{-1,-1,1,-1,0,0},{-1,0,0,1,0,0},{0,0,0,-2,0,1},{0,0,0,2,-4,-4}};jbdTest[x]
Out[]=
True
In[]:=
Map[MatrixForm,JordanBlockDecompose[x],2]
Out[]=
,
,
| ||||||||||||
| ||||||||||||
|
| ||||||||||||
| ||||||||||||
|
| ||||||||||||
| ||||||||||||
|
Root decomposition of Lie algebras
Root decomposition of Lie algebras
In[]:=
?LieRootDecomposition
Out[]=
Symbol | |
For a Lie algebra x, LieRootDecomposition[x] returns the root space decomposition of x als list of triples {i,v,p}, where v is a root vector (0 included), i is the inclusion operator of the corresponding root space and p is the projection operator onto the corresponding root space. | |
In[]:=
rootSpaceDecompositionTest[x_]:=Module[{u=LieRootDecomposition[x],i,j,isNullMatrix,isIdentityMatrix,isNullVector,cart0,adjoints,blockStructTest,isNilpotent,rootVectorTest},isNullMatrix[x0_]:=And@@Flatten[Map[(#0)&,x0,{2}]];isIdentityMatrix[x1_]:=And@@Flatten[MapIndexed[If[Part[#2,1]Part[#2,2],#11,#10]&,x1,{2}]];isNullVector[x2_]:=And@@Map[(#0)&,x2,{1}];cart0=Select[u,isNullVector[Part[#,2]]&];adjoints=Transpose[Part[cart0,1,1]].Transpose[x,{2,1,3}];blockStructTest[z0_]:=And@@Flatten[Table[If[ij,Nothing,isNullMatrix[#]]&[Part[u,i,3].z0.Part[u,j,1]],{i,Length[u]},{j,Length[u]}]];isNilpotent[x3_]:=Module[{y=x3,n=Length[x3],m=1},If[Tr[x3]≠0,False,While[m≤n&&y≠SparseArray[{},{n,n}],y=y.y;m=2m];ySparseArray[{},{n,n}]]];rootVectorTest[{i1_,v1_,p1_}]:=Module[{fixedAdjoints=MapIndexed[(p1.#1.i1-Part[v1,Part[#2,1]]IdentityMatrix[Length[p1]])&,adjoints]},fixedAdjoints=Join[fixedAdjoints,Flatten[Table[Part[#,i]+Part[#,j],{i,Length[#]},{j,i-1}],1]&[fixedAdjoints]];And@@(isNilpotent/@fixedAdjoints)];(*1.Projectionsarereallyinversetoinclusions:*)(And@@Flatten[Table[If[ij,isIdentityMatrix[#],isNullMatrix[#]]&[Part[u,i,3].Part[u,j,1]],{i,Length[u]},{j,Length[u]}]])(*2.Exactlyone0root:*)&&(Length[cart0]1)(*3.ZerorootspaceisCartanalgebra:*)&&LieIsCartanAlgebra[x,Transpose[Part[cart0,1,1]]](*4.Blockstructureofadjointmatrices:*)&&(And@@(blockStructTest/@adjoints))(*5.Rootvectors:*)&&(And@@rootVectorTest/@u)];
In[]:=
And@@Table[rootSpaceDecompositionTest[LieAlgGL[k]],{k,2,6}]
Out[]=
True
In[]:=
And@@Table[rootSpaceDecompositionTest[LieAlgSL[k]],{k,2,6}]
Out[]=
True
In[]:=
And@@Table[rootSpaceDecompositionTest[LieAlgSO[k]],{k,2,6}]
Out[]=
True
In[]:=
And@@Table[rootSpaceDecompositionTest[LieAlgSU[k]],{k,2,6}]
Out[]=
True
In[]:=
And@@Table[rootSpaceDecompositionTest[LieAlgSp[k]],{k,2,5}]
Out[]=
True
In[]:=
And@@Flatten[Table[rootSpaceDecompositionTest[LieAlgSOpq[k,m]],{k,4},{m,4}]]
Out[]=
True
In[]:=
And@@Table[rootSpaceDecompositionTest[LieAlgTri[k]],{k,2,6}]
Out[]=
True
In[]:=
And@@Table[rootSpaceDecompositionTest[LieAlgSuTri[k]],{k,2,6}]
Out[]=
True
In[]:=
rootSpaceDecompositionTest[lieAlgDeGraaf44]
Out[]=
True
In[]:=
rootSpaceDecompositionTest[lieAlgDeGraaf71]
Out[]=
True
In[]:=
rootSpaceDecompositionTest[lieAlgDeGraaf83]
Out[]=
True
In[]:=
rootSpaceDecompositionTest[lieAlgDeGraaf106]
Out[]=
True
In[]:=
rootSpaceDecompositionTest[lieAlgDeGraaf129]
Out[]=
True
In[]:=
rootSpaceDecompositionTest[lieAlgDeGraaf130]
Out[]=
True
In[]:=
rootSpaceDecompositionTest[lieAlgDeGraaf133]
Out[]=
True
In[]:=
rootSpaceDecompositionTest[lieAlg2dimW]
Out[]=
True
In[]:=
And@@Table[rootSpaceDecompositionTest[lieAlgNilpCartan[k]],{k,2,6}]
Out[]=
True
In[]:=
rootSpaceDecompositionTest[LieAlgExcG2]
Out[]=
True
Root systems of semisimple Lie algebras
Root systems of semisimple Lie algebras
In[]:=
?LieChevalleyBase
Out[]=
In[]:=
?LieCartanMtrx2RootSystem
Out[]=
Symbol | |
LieCartanMtrx2RootSystem[ctrMtrx] returns the list of positive roots generated by the given Cartan matrix. | |
In[]:=
?LieReprRootDecomposition
Out[]=
Symbol | |
For a Lie algebra x with Cartan subalgebra csa, and for a matrix representation repr of x, LieReprRootDecomposition[liealg,csa,repr] returns the root space decomposition of x als list of triples {i,v,p}, where v is a weight vector, i is the inclusion operator of the corresponding root space and p is the projection operator onto the corresponding root space. | |
In[]:=
semisimpleRootTest[x_]:=Module[{u=LieChevalleyBase[x],killing=LieKillingForm[x],biForm,rank,numPRoots,i,j,subStrctCnst,switchRootSign},Print[Part[u,3]];biForm=(1/2)Inner[Times,Part[u,1],Part[u,2],List];rank=Length[Part[u,4]];numPRoots=Length[Part[u,5]];LieAxiomCheck[Part[u,6]]&&LieIsCartanAlgebra[x,Part[u,4]]&&(*ChecknormsquareswithCartanmatrix*)(And@@(((Abs[Part[#,1]]1&&Abs[Part[#,2]]1&&Part[#,3]1)||(Abs[Part[#,2]]>1&&Part[#,3]==Abs[Part[#,2]])||(Abs[Part[#,1]]>1&&Part[#,3]1/Abs[Part[#,1]]))&/@Select[Flatten[{Part[u,2],Transpose[Part[u,2]],Outer[(#1/#2)&,Part[u,1],Part[u,1]]},{{2,3},{1}}],(Part[#,1]≠0&&(Part[#,1]≠2||Part[#,2]≠2))&]))&&(*Checkpositiverootegenvectors*)(Simplify[Transpose[Transpose[Transpose[x,{1,3,2}].Transpose[Part[u,4]],{1,3,2}].Transpose[Extract[2]/@Part[u,5]],{3,1,2}]]Simplify[Transpose[Inner[Times,Part[u,2].Transpose[Extract[1]/@Part[u,5]],Extract[2]/@Part[u,5],List],{1,3,2}]])&&(*Checknegtativerootegenvectors*)(Simplify[Transpose[Transpose[Transpose[x,{1,3,2}].Transpose[Part[u,4]],{1,3,2}].Transpose[Extract[3]/@Part[u,5]],{3,1,2}]]-Simplify[Transpose[Inner[Times,Part[u,2].Transpose[Extract[1]/@Part[u,5]],Extract[3]/@Part[u,5],List],{1,3,2}]])&&(*Canonicalitytest*)((Extract[1]/@Part[u,5]).Transpose[Inner[Times,Part[u,1],Part[u,4],List]](((biForm.Part[#,1].Part[#,1])(x.Part[#,3]).Part[#,2])&/@Part[u,5]))&&(*diversechecksontransformedstructureconstants*)LieIsCartanAlgebra[Part[u,6],SparseArray[{i_,i_}1,{rank,Length[x]}]]&&(Map[Take[#,rank]&,Part[u,6],{1}]==SparseArray[Join[Flatten[Table[{rank+2j-1,i,rank+2j-1}Part[u,5,j,1].Part[u,2,i],{i,rank},{j,numPRoots}]],Flatten[Table[{rank+2j,i,rank+2j}-Part[u,5,j,1].Part[u,2,i],{i,rank},{j,numPRoots}]]],{Length[x],rank,Length[x]}])&&(Diagonal[Table[Take[Extract[{rank+2j-1,rank+2j}]/@Part[u,6],rank],{j,numPRoots}].(Part[u,2].Transpose[Extract[1]/@Part[u,5]])]ConstantArray[2,numPRoots])&&(*CheckthesystemofpositiverootsagainstCartanmatrix*)Quiet[Check[FindPermutation[LieCartanMtrx2RootSystem[Part[u,2]],Extract[1]/@Part[u,5]];True,False,FindPermutation::norel],FindPermutation::norel]&&(*CheckChevalleybase*)(And@@IntegerQ/@Flatten[Part[u,6]])&&(subStrctCnst=Drop[Part[u,6],Length[Part[u,2]],Length[Part[u,2]],Length[Part[u,2]]];switchRootSign=Cycles[{2#-1,2#}&/@Range[Length[Part[u,5]]]];Permute[Map[Permute[#,switchRootSign]&,subStrctCnst,{1,2}],switchRootSign]-subStrctCnst)];
In[]:=
And@@Table[Print["Type A("<>IntegerString[k-1]<>")"];semisimpleRootTest[LieAlgSL[k]],{k,2,7}]
Type A(1)
Type A(2)
Type A(3)
Type A(4)
Type A(5)
Type A(6)
Out[]=
True
In[]:=
And@@Table[If[k>4,If[Mod[k,2]0,Print["Type D("<>IntegerString[k/2]<>")"],Print["Type B("<>IntegerString[(k-1)/2]<>")"]],If[k3,Print["Type A(1)"],Print["Type A(1)xA(1)"]]];semisimpleRootTest[LieAlgSO[k]],{k,3,8}]
Type A(1)
Type A(1)xA(1)
Type B(2)
Type D(3)
Type B(3)
Type D(4)
Out[]=
True
In[]:=
And@@Flatten[Table[If[p1&&q1,Nothing,If[Mod[p+q,2]0&&p+q>4,Print["Type D("<>IntegerString[(p+q)/2]<>")"],If[Mod[p+q,2]1&&p+q>4,Print["Type B("<>IntegerString[(p+q-1)/2]<>")"],If[p+q3,Print["Type A(1)"],Print["Type A(1)xA(1)"]]]];semisimpleRootTest[LieAlgSOpq[p,q]]],{p,5},{q,5}]]
Type A(1)
Type A(1)xA(1)
Type B(2)
Type D(3)
Type A(1)
Type A(1)xA(1)
Type B(2)
Type D(3)
Type B(3)
Type A(1)xA(1)
Type B(2)
Type D(3)
Type B(3)
Type D(4)
Type B(2)
Type D(3)
Type B(3)
Type D(4)
Type B(4)
Type D(3)
Type B(3)
Type D(4)
Type B(4)
Type D(5)
Out[]=
True
In[]:=
And@@Table[If[k>1,Print["Type C("<>IntegerString[k]<>")"],Print["Type A(1)"]];semisimpleRootTest[LieAlgSp[k]],{k,5}]
Type A(1)
Type C(2)
Type C(3)
Type C(4)
Type C(5)
Out[]=
True
In[]:=
And@@Table[Print["Type A("<>IntegerString[k-1]<>")"];semisimpleRootTest[LieAlgSU[k]],{k,2,5}]
Type A(1)
Type A(2)
Type A(3)
Type A(4)
Out[]=
True
In[]:=
semisimpleRootTest[LieAlgExcG2]
Out[]=
True
In[]:=
semisimpleRootTest[LieAlgExcE[6]]
Out[]=
True
In[]:=
(*Timing[semisimpleRootTest[LieAlgExcE[7]]]dauertca.1,5min*)
In[]:=
(*Timing[semisimpleRootTest[LieAlgExcE[8]]]dauertca.20min*)
In[]:=
semisimpleRootTest[LieAlgExcF4]
Out[]=
True
In[]:=
Timing[Part[LieChevalleyBase[LieAlgExcE[7],SparseArray[{{i_,i_}->1},{7,133}]],3]]
Out[]=
16.0802,
In[]:=
Timing[Part[LieChevalleyBase[LieAlgExcE[8],SparseArray[{{i_,i_}->1},{8,248}]],3]]
Out[]=
43.3578,


Cite this as: Bernd Günther, "Material for Lie algebras" from the Notebook Archive (2021), https://notebookarchive.org/2021-05-dcakaht

Download

