New Features in Maple 17: Differential Geometry
 

Next Feature

For Maple 17, the DifferentialGeometry package contains over 40 new and enhanced commands. The many additions and updates in differential geometry include:

  • New commands for calculating properties of  vectors, tensors, differential forms, quaternions, and octonions; solving equations whose unknowns are tensors or differential forms; noncommutative multiplication for general algebras; and more
  • Over 100 new metrics in the database of solutions to the Einstein equations
  • Extensions to the Lie algebra package to work with more general algebras
  • New and improved commands for calculating more types of tensors and other values of interest
  • A new package for the study of exterior differential systems

Details and Examples

Updates to the DifferentialGeometry package:

  • DGsetup has a new keyword argument for declaring certain coordinates to be complex.
  • The new command DGconjugate calculates the complex conjugate of a vector, tensor or differential form, quaternion or octonion.
  • The new commands DGRe and DGIm calculate the real and imaginary parts of a vector, tensor, differential form, quaternion or octonion.
  • The new commands DGsolve, DGNullSpace and DGImageSpace provide useful utilities for solving equations whose unknowns are tensors or differential forms.
  • The new command `&algmult` computes non-commutative multiplication in general algebras.
  • A new geometric type, "multivector", has been created. This significantly improves computational efficiency when working with contravariant skew-symmetric tensors. The commands convert, Hook, RaiseLowerIndices, and LieDerivative have been extended to accept multi-vector arguments.

ExteriorDifferentialSystems 

  • This is a new package for the study of differential systems.
  • The first release of this package contains 5 commands. These commands calculate the Cauchy characteristics, derived flags, first integrals, integral manifolds, and infinitesimal symmetries of Pfaffian differential systems.

Library

  • Over 100 new metrics have been added to the database of solutions to the Einstein equations.
  • A command line version of the MetricSearch maplet is now available.

LieAlgebras

  • The Lie algebra package is being extended to work with more general algebras. The new AlgebraData and AlgebraLibraryData commands creates the multiplication structures for quaternions, octonions, Jordan algebras and Clifford algebras.The commands AlgebraNorm and AlgebraInverse calculate the norms and inverses of quaternions and octonions.
  • The command LieAlgebraData has been re-written to give massive improvements in efficiency for calculating the structure equations for matrix algebras. The command also has a new calling sequence for working with graded Lie algebras.
  • The functionality of the SimpleLieAlgebraData command has been extended to include the exceptional Lie algebras g2 and f2.
  • A command for finding the split and compact forms of a complex semi-simple Lie algebra is now available.
  • The functionality of the CartanDecomposition and CartanInvolution commands has been extended to abstract semi-simple Lie algebras.
  • The new command ChevalleyBasis calculates the Chevalley basis of a semi-simple Lie algebra.
  • The Derivations command has been rewritten to give significant improvements in efficiency. The command can now also compute the derivations of a general algebra.
  • New functionality has been added for creating representations of Lie algebras. The commands Adjoint and StandardRepresentation now accept a new keyword argument "representationspace", which can be used to create representations.  The new command RestrictedRepresentation calculates the restriction of a representation to a subalgebra. The names of the two commands ChangeBasis and TensorProduct have been changed to ChangeRepresentationBasis and TensorProductOfRepresentations.
  • The Codifferential command has been added to calculate the codifferential of a multi-vector in a Lie algebra.
  • The KostantCodifferential and KostantLaplacian commands have been created to give significant improvements in the calculation of cohomology.
  • Deformations of Lie algebras can be performed using the new commands Deformation and MasseyProduct.
  • The SymbolAlgebra command computes the graded nilpotent Lie algebra associated to any distribution of vector fields.
  • The TanakaProlongation command calculates the Tanaka prolongation of any graded nilpotent Lie algebra. This command gives a powerful new tool for finding differential systems with maximal symmetry algebras.
  • The new command ChangeGradedComponent allows one to modify components of a given graded Lie algebra.
  • The new command Rank1Elements calculates the rank 1 matrices in the span of given list of matrices.

Tensors

  • New commands are available for computing the Bach tensor and Schouten tensor. The Cotton tensor can now be calculated in any dimension.
  • The index structure for connections has been changed to conform with the most common usage.
  • The projective curvature tensor for any metric or connection can be calculated.
  • The new command FormInnerProduct provides for fast evaluation of the inner products of differential forms.
  • A powerful new command has been developed for calculating the infinitesimal holonomy of an affine connection.
  • The new command InvariantTensorsAtAPoint provides a new fast way to calculate covariantly constant tensors and invariant geometric object fields.

Examples

Example 1:

Early in the theoretical development of simple Lie algebras, it was conjectured by Killing that there exists a certain small number of exceptional Lie algebras not belonging to the families of simple Lie algebras, which were well-known at the time. It was an important problem to explicitly construct these exceptional algebras.  In 1908, E. Cartan proved that the smallest of these exceptional Lie algebras, the 14-dimensional Lie algebra denoted by g[2], is the algebra of derivations of the 8-dimensional algebra of octonions `𝕆`.  With Maple 17, it is easy to verify Cartan's computations. 

 

First, use the new AlgebraLibraryData command to retrieve the structure equations for the octonions: 

> with(LieAlgebras); -1with(Tensor); -1
 

> StrEq := AlgebraLibraryData(
 

_DG([[
_DG([[
_DG([[
_DG([[
_DG([[
_DG([[
 

 

Initialize this algebra: 

> DGsetup(StrEq); -1
 

 

A derivation of the octonions is a linear transformation L; -1; proc (`𝕆`) options operator, arrow; `𝕆` end proc such that L(`*`(x, `*`(y))) = `+`(`*`(L(x), `*`(y)), `*`(x, `*`(L(y)))) for all x, `in`(y, `𝕆`).  The command Derivations will compute a list of matrices which define a basis for the Lie algebra of derivations of the any given algebra. (In prior releases of Maple, the derivation command only applied to Lie algebras and not more general algebras like the octonions). 

> Der := Derivations(Oct)
 

Der := [Matrix(%id = 18446744078088538462), Matrix(%id = 18446744078088538582), Matrix(%id = 18446744078088538702), Matrix(%id = 18446744078088538822), Matrix(%id = 18446744078088538942), Matrix(%id =...
Der := [Matrix(%id = 18446744078088538462), Matrix(%id = 18446744078088538582), Matrix(%id = 18446744078088538702), Matrix(%id = 18446744078088538822), Matrix(%id = 18446744078088538942), Matrix(%id =...
Der := [Matrix(%id = 18446744078088538462), Matrix(%id = 18446744078088538582), Matrix(%id = 18446744078088538702), Matrix(%id = 18446744078088538822), Matrix(%id = 18446744078088538942), Matrix(%id =...
 

 

You can see that the dimension of the space of derivations is 14. 

> nops(Der)
 

14
 

 

It remains then to verify that this 14 dimensional Lie algebra is in fact the exceptional Lie algebra g[2], as claimed by Cartan. To do this, one needs to apply the general structure theory for the classification of Lie algebras. This can be easily done with commands from the LieAlgebras package.  

First, calculate the structure equations for the Lie algebra defined by the above 14 matrices using LieAlgebraData: 

> StrEq2 := LieAlgebraData(Der, alg)
 











 

 

Initialize this Lie algebra: 

> DGsetup(StrEq2)
 

`Lie algebra: alg`
 

 

Use Query to check that you have a semi-simple Lie algebra: 

> Query(
 

true
 

 

To check that our algebra is g[2] use the commands CartanSubalgebra, RootSpaceDecomposition, SimpleRoots, CartanMatrix and CartanMatrixToStandardForm to find the Cartan matrix. This matrix uniquely identifies the Lie algebra as g[2]

> CSA := CartanSubalgebra()
 

 

> RSD := RootSpaceDecomposition(CSA)
 




 

> SR := SimpleRoots(RSD, [`<,>`(I, 0), `<,>`(0, I)])
 

SR := [Vector[column](%id = 18446744078088537622), Vector[column](%id = 18446744078088537742)]
 

> CM := CartanMatrix(SR, RSD)
 

CM := Matrix(%id = 18446744078088537862)
 

> CartanMatrixToStandardForm(CM)
 

 

 

In this way you have proven that the algebra of derivations of the octonions is the exceptional Lie algebra g[2].

 

Example 2:

The second illustration of the new functionality in the DifferentialGeometry package for Maple 17 also involves the exceptional Lie algebra g[2], but now in the context of infinitesimal holonomy.  

Let M be an n-dimensional Riemannian manifold with metric g.  

Let `in`(p, M) be a fixed point.  

Then the holonomy group Holpof the Riemannian manifold M, gis the group of linear transformations  defined by the parallel transport of vectors around closed loops starting at p.  The Lie algebra of the holonomy group is called the infinitesimal holonomy . According to the Ambrose-Singer Theorem, the infinitesimal holonomy can be computed in terms of the curvature tensor of the metric g and the covariant derivatives of the curvature tensor.  For many years it was an open problem in differential geometry as to whether or not there was a metric whose infinitesimal holonomy was the exceptional Lie algebra This question was answered in the affirmative by R. Bryant in 1987. 

 

In this example, use the new command InfinitesimalHolonomy to verify an example of a metric with infinitesimal holonomy g[2]; (due to S. Salamon).  

 

First, define coordinates for a 7-dimensional manifold M

> DGsetup([x1, x2, x3, x4, x5, x6, u], M)
 

`frame name: M`
 

 

The computations for this example are much more easily performed in an anholonomic frame. Set: 

> o1 := dx1; 1o2 := dx2; 1o3 := dx3; 1o4 := dx4; 1o5 := evalDG(`+`(`*`(dx2, `*`(x4)), `*`(dx3, `*`(x1)), dx5)); 1o6 := evalDG(`+`(`*`(dx3, `*`(x2)), `*`(dx4, `*`(x1)), dx6)); 1o7 := du

 

Calculate the structure equations for this co-frame and initialize: 

> FD := FrameData([o1, o2, o3, o4, o5, o6, o7], P)
 

 

> DGsetup(FD)
 

`frame name: P`
 

 

The metric you will study is: 

> g := evalDG(`+`(`*`(`^`(u, `/`(2, 3)), `*`(`+`(`&t`(Theta1, Theta1), `&t`(Theta2, Theta2), `&t`(Theta3, Theta3), `&t`(Theta4, Theta4)))), `/`(`*`(`+`(`&t`(Theta5, Theta5), `&t`(Theta6, Theta6))), `*`(...
 

 

 

This metric is Ricci flat. 

> RicciTensor(g)
 

 

 

The infinitesimal holonomy is 14-dimensional.  

> Hol := InfinitesimalHolonomy(g, [u = 1, x1 = 0, x2 = 0, x3 = 0, x4 = 0, x5 = 0, x6 = 0]); -1
 

> nops(Hol)
 

14
 

 

The holonomy algebra is easier to display if you first use the command CanonicalBasis to transform the output to standard form and then make the change of variables u = t^3. 

> Hol1 := `assuming`([simplify(subs(u = `*`(`^`(t, 3)), Tools:-CanonicalBasis(Hol)))], [`<`(0, t)])
 

Hol1 := [Matrix(%id = 18446744078162594142), Matrix(%id = 18446744078162594262), Matrix(%id = 18446744078162594382), Matrix(%id = 18446744078162594502), Matrix(%id = 18446744078162594622), Matrix(%id ...
Hol1 := [Matrix(%id = 18446744078162594142), Matrix(%id = 18446744078162594262), Matrix(%id = 18446744078162594382), Matrix(%id = 18446744078162594502), Matrix(%id = 18446744078162594622), Matrix(%id ...
Hol1 := [Matrix(%id = 18446744078162594142), Matrix(%id = 18446744078162594262), Matrix(%id = 18446744078162594382), Matrix(%id = 18446744078162594502), Matrix(%id = 18446744078162594622), Matrix(%id ...
Hol1 := [Matrix(%id = 18446744078162594142), Matrix(%id = 18446744078162594262), Matrix(%id = 18446744078162594382), Matrix(%id = 18446744078162594502), Matrix(%id = 18446744078162594622), Matrix(%id ...
 

 

> LD := simplify(LieAlgebraData(Hol1))
 












 

 

You can now proceed as in Example 1 to show that this Lie algebra is also the exceptional Lie algebra g[2]

 

Finally, you can use CovariantlyConstantTensors and the new command InvariantTensorsAtAPoint to show that the metric above admits a covariantly constant (parallel) 3-form. Any covariantly constant 3-form must be pointwise invariant with respect to the infinitesimal holonomy algebra. First find these invariant 3-forms. 

> Omega := Tools:-GenerateForms([Theta1, Theta2, Theta3, Theta4, Theta5, Theta6, Theta7], 3)
 





 

P > HolInv3Forms := InvariantTensorsAtAPoint(Hol1, Omega)
 


 

 

In terms of the original coordinate u this becomes: 

> alpha0 := subs(t = `*`(`^`(u, `/`(1, 3))), HolInv3Forms[1])
 


 

 

Every covariantly constant 3-form must be a multiply of this form so use this as the ansatz which you pass to the command CovariantlyConstantTensors. 

> C := Christoffel(g); -1
 

> alpha := CovariantlyConstantTensors(g, ansatz = evalDG(`*`(f(u), `*`(alpha0))), unknowns = [f(u)])
 


 

> CovariantDerivative(alpha[1], C)