CartanInvolution - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim

LieAlgebras[CartanInvolution] - find a Cartan involution for a non-compact, semi-simple, real Lie algebra

Calling Sequences


     CartanInvolution( CSA,RSD,PosRts)


     T       - a list of vectors in a Lie algebra, defining a subalgebra on which the Killing form is negative-definite.

      P       - a list of vectors in a Lie algebra, defining a subspace on which the Killing form is positive-definite.

      CSA     - a list of vectors, defining a Cartan subalgebra of a Lie algebra

     RSD     - a table, specifying the root space decomposition of the Lie algebra with respect to the Cartan subalgebra CSA

     PosRts  - a list of Vectors, specifying a choice of positive roots for the root space decomposition







Let g be a semi-simple, real Lie algebra. Then g is called compact if the Killing form  ,of g is negative-definite, otherwise g is called non-compact.


A Cartan involution of g is a Lie algebra automorphism Θ : gg with Θ2= Id and such that the symmetric bilinear form BΘx,y = x,Θy is positive-definite.


The command CartanInvolution returns a transformation defining a Cartan involution.


A Cartan decomposition is a vector space decomposition g = tp , where t is a subalgebra, p a subspace, [t, p] ⊆ p , [p, p] ⊆ t and the Killing form is negative-definite on t and positive-definite on p.


Given a Cartan decomposition, the linear transformation which is the identity Id on t and Id on p is a Cartan involution. This is the involution computed by the first calling sequence for the command CartanInvolution.


We remark that, conversely, given a Cartan involution Θ, the +1, -1 eigenspaces E1 = 𝔭 and E1= 𝔱 yield a Cartan decomposition. Also, any two Cartan involutions Θ1 and Θ2 on g are related by an inner automorphism φ : 𝔤  𝔤, that is, Θ2= φ Θ1φ1 .


 A Cartan involution can also be calculated from a Cartan subalgebra, the associated root space decomposition and a choice of positive roots. The algorithm can be summarized as follows. First use the procedure Complexify to define the complexification 𝔤C of the Lie algebra 𝔤. This is a real semi-simple Lie algebra of twice the dimension of 𝔤 . Let σ : 𝔤C 𝔤C denote the standard conjugation map. Next use the command SplitAndCompactForms to find a complex basis of 𝔤 which defines a compact form 𝔲 of 𝔤. Identify 𝔲 with a subalgebra of 𝔤C and let τ be the corresponding conjugate map. One proves that τ is a Cartan involution of 𝔤C . If τ restricts to a mapping τ: 𝔤 𝔤, then τ would be the required Cartan involution for 𝔤. However, this generally is not the case so the idea to conjugate τ to another Cartan involution which does restrict to 𝔤. Note that the requirement that τ restricts to a mapping τ: 𝔤 𝔤  is equivalent to the requirement that τ commutes with σ. One proves that ψ = σ τ σ τ is a linear transformation with positive eigenvalues. The required Cartan involution is then Θ=ψ1/4τ ψ1/4. See A.Cap and J. Slovak, Parabolic Geometries I - Background and General Theory, page 203 for further details.


with(DifferentialGeometry): with(LieAlgebras):


Example 1.

We find a Cartan involution for so3,2, the Lie algebra of 5×5 matrices which are skew-symmetric with respect to the quadratic form 0I20I200001 .

LD := SimpleLieAlgebraData("so(3, 2)", so32, labelformat = "gl", labels = ['E', 'omega']):


Lie algebra: so32



The explicit matrices defining so3, 2 are

so32 > 

M := StandardRepresentation(so32);


From these matrices we calculate a Cartan decomposition

so32 > 

T, P := CartanDecomposition(M, so32);




and from this a Cartan involution Θ1

so32 > 

Theta1 := CartanInvolution(T, P);




We check that  Θ1satisfies all the properties of a Cartan involution.

1. Θ12 = Id.

so32 > 

ComposeTransformations(Theta1, Theta1);




2. Θ1  is a Lie algebra homomorphism.

so32 > 

Query(Theta1, "Homomorphism");




3. The bilinear form Bx,y= x, Θ1y is positive-definite.

so32 > 

V := Tools:-DGinfo(so32, "FrameBaseVectors");


so32 > 

B := Matrix(10, 10, (i,j) -> Killing(-V[i], ApplyHomomorphism(Theta1, V[j])));


All of these properties are checked with the command Query/"CartanInvolution"

so32 > 

Query(Theta1, "CartanInvolution");




Example 2.

We calculate the Cartan involution for so3,2 using the second calling sequence. For this we need a Cartan subalgebra, the corresponding root space decomposition and a choice of positive roots.


CSA := CartanSubalgebra();


so32 > 

RSD := RootSpaceDecomposition(CSA);


so32 > 

PosRts := PositiveRoots(RSD);


Here is the Cartan involution obtained from this Cartan subalgebra.

so32 > 

Theta2 := CartanInvolution(CSA, RSD, PosRts);


so32 > 

Query(Theta2, "CartanInvolution");




It differs slightly from the one calculated using the first calling sequence in Example 1.

so32 > 








Example 3.

We check, by example, that if φ is an inner automorphism, then  φ Θ1φ1 is also a Cartan involution.


We use the exponential of adE35 to define φ .

so32 > 

A := AdjointExp(evalDG(2*E35));

so32 > 

phi := Transformation(so32, so32, A);




Here is the new Cartan involution.

so32 > 

newTheta := ComposeTransformations(phi, Theta1, InverseTransformation(phi));




Check that it works.

so32 > 

Query(newTheta, "CartanInvolution");



See Also