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

Online Help

All Products    Maple    MapleSim

DifferentialGeometry Tutorials


An Introduction to Homogeneous Spaces




Procedures Illustrated

Part A.  Algebraic Steps

Part B.  Constructing the homogeneous space

Part C.  An invariant metric on the homogenous space.



Let G be a Lie group action acting on a manifold M.  If the action is transitive (that is, if for any x, y in M there is g in G such that g*x = y), then M is called a homogeneous space (or, more precisely, a homogenous G space).  The isotropy subgroup for the action of G on M at a point x in M is H = {x in g such that g*x = x}. The infinitesimal generators for the action of G on M define a Lie algebra of vector fields on M which is isomorphic (assuming G acts effectively on M) to the Lie algebra g of the Lie group of G.  The infinitesimal isotropy subalgebra at x consists of those infinitesimal generators which vanish at x. This is a subalgebra h of  g which is isomorphic to the Lie algebra of H.


Two homogeneous G spaces M and N are said to be equivalent is there is a diffeomorphism phi : M -->N such that for any x in M and g in G, phi(g*x) = g*phi(x).


Let M be a homogenous G space with isotropy subgroup H at x0 and let G/H be the space of right cosets of H in G. Then the mapping phi which sends the coset gH in G/H to the point g*x0 in M is a bijective correspondence.  In fact, with respect to the natural manifold structure on G/H, the map phi defines a diffeomorphism from G/H to M so that the homogenous G spaces M and G/H are equivalent.


In this tutorial we start with a 4-dimensional solvable Lie algebra g and a 1 dimensional subalgebra h and construct a homogeneous space M whose Lie algebra of

infinitesimal generators is g and with infinitesimal isotropy subalgebra h.  Specifically we shall do the following:


1.  Use the DifferrentialGeometry Library to define a 4 dimensional Lie algebra g.

2.  Pick a 1 dimensional subalgebra h and find a reductive complement m to h in g.

3.  Find an h  invariant inner product < , > on m.

4.  Construct a (global) Lie group G whose Lie algebra is g.

5.  Construct the left and right invariant vector fields on G. Construct the Maurer Cartan forms on G.

6.  Construct the homogeneous space G -> G/H.

7.  Construct the action of G on M = G/H.

8.  Use the inner product on m to construct a G invariant metric on M = G/H.

9.  Define an orthonormal frame on M and calculate the curvature of the metric.


Procedures Illustrated

This is a comprehensive tutorial which illustrates a large number of commands from the DifferentialGeometry package and its subpackages.

DifferentialGeometry, LieAlgebras, Tensor, Library,GroupActions, Browse, ComplementaryBasis, Cotton tensor, DGsetup, DGinfo, GenerateSymmetricTensors, InfinitesimalTransformation, InvariantVectorsAndForms, ,LieDerivative, LieGroup, PushPullTensor, Query, References, Retrieve.

Part A.  Algebraic Steps


We first load in all the packages we shall need for this tutorial.







Our goal is to construct a 3 dimensional homogeneous space for a 4-dimensional Lie group. We begin by looking at the 4 dimensional Lie algebras available for our use.  All 4-dimensional Lie algebras have been classified and the results of these classifications are contained in the DifferentialGeometry Library.  The References command gives us a list of the articles and books whose results are in the DifferentialGeometry Library.


Doubrov, 1
         Classification of Subalgebras in the Exceptional Lie Algebra of Type G_2
         Proc. of the Natl. Academy of Sciences of Belarus, Ser. Phys.-Math. Sci., 2008, No.3

Gong, 1
         Classification of Nilpotent Lie Algebras of Dimension 7( Over Algebraically Closed Fields and R)
         PhD. Thesis,  University of Waterloo (1998)

Gonzalez-Lopez, 1
         Lie algebras of vector fields in the real plane (with Kamran and Olver)
         Proc. London Math Soc. Vol 64 (1992), 339--368

Kamke, 1
          Chelsa Publ. Co. (1947)

Mubarakzyanov, 1
         Lie algebras of dimmensions 3, 4
         Izv. Vyssh. Uchebn. Zaved. Math 34(1963) 99

Mubarakzyanov, 2
         Lie algebras of dimension 5
         Izv. Vyssh. Uchebn. Zaved. Math 34(1963) 99

Mubarakzyanov, 3
         Lie algebras of dimension 6
         Izv. Vyssh. Uchebn. Zaved. Math 35(1963) 104

Olver, 1:
         Equivalence, Invariants and Symmetry, 472--473

Petrov, 1:
         Einstein Spaces

Stephani, 1:
         Exact Solutions to Einstein's Field Equations, 2nd Edition (with Kramer, Maccallum, Hoenselaers, Herlt)

Turkowski, 1:
         Low dimensional real Lie algebras
         JMP(29), 1990, 2139--2144

Turkowski, 2
         Solvable Lie Algebras of dimension six
         JMP(31), 1990, 1344--1350

Winternitz, 1:
         Invariants of real low dimensional Lie algebras, (with Patera, Sharp and Zassenhaus)
         JMP vol 17, No 6, June 1976, 966--994




The paper by Winternitz Invariants of real low dimensional algebras contains a convenient list of all Lie algebras of dimension  <= 5 which we will shall use here. The indices by which this these Lie algebras are labeling in the paper can be obtained using the Browse command.

Browse("Winternitz", 1);




Let us look specifically at the 4 dimensional Lie algebras.

Browse("Winternitz", 1,[[4, 1], [4, 2], [4, 3], [4, 4], [4, 5], [4, 6], [4, 7], [4, 8], [4, 9], [4, 10], [4, 11], [4, 12]]);







































We choice to work with the Lie algebra [4, 11]. We retrieve the Lie algebra structure equations (with the command Retrieve) for this algebra and pass these structure equations to the DGsetup program to initialize the Lie algebra. This Lie algebra has a parameter a.

L ,P := Retrieve("Winternitz", 1, [4,11], Alg, parameters = "yes");



DGsetup(L, verbose);

The following vector fields have been defined and protected:


The following differential 1-forms have been defined and protected:


Lie algebra: Alg



Once the algebra is initialized we can do all sorts of calculations and tests. For the isotropy subalgebra h for the homogeneous space which we shall build we pick the subalgebra e4.

Alg > 

h := [e4];




Now we define the general complement C to h and try to adjust C to obtain a reductive complement. (A complement m to h in g is called reductive if g = m + h (vector space direct sum) and ad h maps m to m, ie,  [h,m] is in m.)  For this we first use the ComplementaryBasis command to construct the most general complement to h in g.

Alg > 

C := ComplementaryBasis([e4],[e1,e2,e3,e4], t);




Now we use the Query command to determine those values of the parameters {t1, t2, t3} for which C is a reductive complement.

Alg > 

Query([e4], C, "ReductivePair");




We conclude that m = [e1, e2, e3] is a reductive complement to the subalgebra h = [e4]


Now we look for an h invariant inner product on m. We find that none exist unless the parameter a in the algebra vanishes in which case there is a 2 parameter family of non-degenerate inner products on h, as given by the symmetric covariant tensor g_m.

Alg > 

g_m :=  evalDG(a1* theta1 &t theta1 + a2*theta2 &t theta2 + a2 *theta3 &t theta3);



Detailed Calculations of the h invariant inner products on m.


In this sub-section we give the detailed computations of the h invariant, symmetric rank 2 tensors on m = [e1, e2, e3]. First we use the GenerateSymmetricTensors command to generate a basis for the symmetric rank 2 tensors on m. (Recall that theta1, theta2, theta3, theta4 are the dual basis to e1, e2, e3, e4)

Alg > 

S := GenerateSymmetricTensors([theta1, theta2, theta3], 2);




Form the general linear combination of the tensors in the list S. This gives the most general symmetric rank 2 tensors on m.

Alg > 

T := DGzip([a1,a2,a3,a4,a5,a6], S, "plus");




To find the h invariant tensors, we Lie differentiate the metric T with respect to the vector e4, set the coefficients of the result to zero, and  so obtain a linear system of equations Eq for the coefficients {a1, a2,.., a6}.

Alg > 

LG := LieDerivative(e4, T);


Alg > 

Eq := Tools:-DGinfo(LG, "CoefficientSet");




The LinearAlgebra command GenerateMatrix gives us the coefficient matrix for the system of equations Eq.

Alg > 

A, b := LinearAlgebra:-GenerateMatrix(Eq, [a1, a2, a3, a4, a5,a6]);

Alg > 





The only real value of a for which the system of equations Eq will have a non-trivial solution is a=0.  We substitute this value back in Eq, solve for the coefficients {a1, a2, a3 , ... a6} and substitute this solution back in the tensor T.

Alg > 

Soln:= solve( subs(P[1] = 0,Eq),{a1, a2, a3, a4, a5,a6});


Alg > 

InvariantT := Tools:-DGsimplify(subs(Soln, T));





Accordingly, we fix the parameter a in our Lie algebra to a =0 and re-initialize the algebra.

Alg > 

L1 := subs(P[1] = 0, L);


Alg > 


Lie algebra: Alg


With a=0 the Lie algebra remains solvable and not nilpotent or decomposable.

Alg > 

Query("Solvable"), Query("Nilpotent"), Query("Indecomposable");




Check that the metric g_m is indeed h = [e4] invariant.

Alg > 

LieDerivative(e4, g_m);




This concludes our analysis at the purely Lie algebra level.  We have found a 4-dimensional Lie algebra g (initialized with the name Alg) and a 1 dimensional subalgebra h = [e4] such that m = [e1, e2, e3] is a reductive complement. The subspace m admits the h invariant metric a1theta1 theta1 + a2(theta2 theta2 + theta3*theta3).

Part B.  Constructing the homogeneous space


Next we construct the Lie group G for our Lie algebra Alg. First we define local coordinates for the group G. The command LieGroup in the GroupAction package implements Lie's 2nd and 3rd theorems (so far for solvable groups) and directly constructs a global Lie group whose Lie algebra is the given algebra Alg.


The LieGroup program results a Maple structure called a module.  The module LG is  has various exports which provide the information about the Lie group.


Alg > 

DGsetup([x1, x2, x3, x4], G);

frame name: G

G > 

LG := LieGroup(Alg, G);

LG:=moduleexportFrame&comma;Identity&comma;LeftMultiplication&comma;RightMultiplication&comma;Inverse&semi;end module



Here is the explicit formula for left multiplication in G of the group element with coordinates [a1, a2, a3, a4] by the group element with coordinates [x1, x2, x3, x4].

G > 

dotLeft := LG:-LeftMultiplication([a1, a2, a3, a4]);




Let's look at the left and right invariant vector fields and forms for this Lie group. These are calculated with the InvariantVectorsAndForms command.

G > 

XL, OmegaL, XR, OmegaR := InvariantVectorsAndForms(LG):

G > 



G > 






The command LieAlgebraData computes the structure equations for the right invariant vector fields XR.  These structure equations coincide with the structure equations for the Lie algebra which we started with.

G > 



G > 





The structure equations for the left invariant vector fields XR differ by just a sign. Because the coefficients of the vector fields XR contain transcendental functions we use an alternative calling sequence for the LieAlgebraData program.

G > 

LieAlgebraData(XL,initialpointlist = [[x1=0,x2=1,x3=0, x4 =0]]);




The left and right invariant vector fields for any Lie group commute.

G > 

Matrix(4,4, (i,j)->LieBracket(XL[i], XR[j]));



The quotient of G by the 1 dimensional subgroup H generated by the vector field XL[4] is a 3 dimensional manifold.  We call this manifold M and use coordinates [x, y, z] on M. The key step now is to calculate the coordinate formula for the projection map pi from G to M = G/H. Abstractly, this project map send the group element g to the coset gH, ie,  pi(g) = gH. Consequently, for any h in H we have that pi(g h) = g h H = gH = pi(g) and therefore the projection pi is invariant with respect to the right action of H on G. The infinitesimal generation of this right action is the left invariant vector field Z = XL[4]. Thus, if we set

pi(x1,x2,x3,x4) = [F1(x1,x2,x3,x4), F2(x2,x3,x4), F3(x1,x2,x3,x4)]  

it follows that component functions F1, F2, F3 are all invariants of the vector field Z.  This is the theoretical basis for the computation of the projection map pi .


G > 

Z := XL[4];

G > 



G > 

InvariantPDE := LieDerivative(Z, F(x1, x2, x3, x4));


G > 



G > 

DGsetup([x, y, z] ,M);

frame name: M

M > 

pi := Transformation(G, M, [x = x2, y = x3, z = (x3^2+x2^2)*x4 + 2*x1]);




Our next task to calculate the action of the Lie group G on the manifold M. For this we shall need a "cross-section" to the projection map pi, that is, a map Sigma : M -> G such that pi o Sigma = identity on M. Such a map is easily defined.


G > 

Sigma := Transformation(M,G, [x2 = x, x3 = y, x1 =1/2*z, x4=0]);





M > 





The action of G on M is now computed as the composition of the projection map pi, the left multiplication map dotLeft of G to G, and the cross-section Sigma.

M > 

mu := map(simplify,ComposeTransformations( pi, dotLeft, Sigma));




Note that the action of G restricts to the action of the Euclidean group on the xy plane. The infinitesimal generators for the action of G on M are calculated using the InfinitesimalTransformation command.

M > 

Gamma := InfinitesimalTransformation(mu, [a1,a2,a3,a4]);




Finally, we can check our answer.  The structure equations for the Lie algebra of vectors fields Gamma coincides with the Lie algebra we started with

M > 



M > 





The identity in G projects to the point pt in M and the isotropy at pt (IsotropySubalgebra) is the fourth vector in Gamma.

M > 

pt := ApplyTransformation(pi, [x1 = 0, x2 = 0,x3 = 0,x4 = 0]);


M > 

IsotropySubalgebra(Gamma, pt);


M > 



Part C.  An invariant metric on the homogenous space.

We return to the invariant symmetric rank 2 tensor on the Lie algebra which we calculated in Part A.  As a tensor Omega on the Lie group, we express it in terms of the left invariant Maurer-Cartan forms as (apart from a constant scalar factor):




G > 

Omega := evalDG(k*OmegaL[1] &t OmegaL[1] + (OmegaL[2] &t OmegaL[2] + OmegaL[3] &t OmegaL[3]));




We check that this tensor is invariant with respect to the vector Z defined in Part B.

G > 

LieDerivative(Z, Omega);




Using the projection map pi: G ->M and the cross-section Sigma :M -> G we can drop (PushPullTensor) this invariant tensor on the Lie group G to an invariant non-degenerate metric on M.

G > 

g := PushPullTensor(pi, Sigma, Omega);




We check that the vectors Gamma, calculated in Part B, are Killing vectors for g.

M > 

map(LieDerivative, Gamma, g);




In fact, we can use the KillingVectors program in the Killing package to calculate the Lie algebra of Killing vectors for the metric g. The result is a 4 dimensional algebra thereby proving that Gamma is the full infinitesimal isometry algebra of the metric g.

M > 





The metric is simple enough that we could easily compute the curvature in coordinates but, for the sake of illustration we do so with an orthonormal coframe.

M > 


Fr := FrameData([dx, dy, x*dy+1/2*dz], N);


M > 


frame name: N



Use the identity transformation from N to M  to express the metric in the new frame.

N > 

id := Transformation(N, M, [x = x, y = y, z = z]);


N > 

g1 := PushPullTensor(id, g);


N > 

C := Christoffel(g1);


N > 

R := CurvatureTensor(C);




We remark that there are well-known formulas for computing the curvature directly from the algebraic data given at the beginning of this exercise. These formulas have been coded up using the DifferentialGeometry package and will be included in the next version of the package.


Calculate the first covariant derivative of the curvature to see that g is not a constant curvature metric.

N > 

R1 := CovariantDerivative(R, C);




Calculate the Cotton tensor to see that the metric is not conformally flat.

N > 

CottonTensor(g1, C);


N >