DGsetup - Maple Help

DifferentialGeometry

 DGsetup
 set up a coordinate system, a frame, a Lie algebra, define a set of abstract forms

 Calling Sequence DGsetup(varlist1, framename, options) DGsetup(varlist1, varlist2, framename, options) DGsetup(varlist1, varlist2, framename, jetorder, options) DGsetup(framedata, options) DGsetup(Liealgebradata, options) DGsetup(alg, rho, V) DGsetup(abstractforms, streqn, framename)

Parameters

 varlist1 - a list of unassigned Maple names varlist2 - a list of unassigned Maple names framename - an unassigned Maple name or a string jetorder - a positive integer framedata - the structure equations for an anholonomic frame, as calculated by the procedure FrameData Liealgebradata - the structure equations for a Lie algebra, as calculated by the procedure LieAlgebraData abstractforms - a list specifying a set of abstract forms, without reference to any underlying set of coordinates streqn - a list of structure equations for the exterior derivatives and interior products of an abstract form options - a list of frame labels, a list of co-frame labels, the keyword 'quiet' or 'verbose'

Description

 • All computational sessions with the DifferentialGeometry package begin with a call to the DGsetup command.  This command fixes the coordinate names for the manifold being defined; specifies the vectors and 1-forms to be used as local frames and co-frames on the manifold; and stores all the computational rules needed to work with the given frame or co-frame.  It is also used by the JetCalculus package to initialize a jet space to any given order and by the LieAlgebras package to prepare for computations with Lie algebras.
 • The following table summarizes the different calling sequences for DGsetup.

 Ex 1. Create a two-dimensional manifold $M$ with local coordinates $\left(x,y\right)$. > DGsetup([x, y], M) Ex 2. Create a fiber bundle $E$ with fiber coordinates $\left(u,v\right)$ over a three-dimensional base space with coordinates $\left(x,y,z\right)$. > DGsetup([x, y, z], [u,v], M); Ex 3. Create the 3rd order jet space $J$  for 2 independent variables $\left(x,y\right)$  and 1 dependent variable $\left(u\right)$. > DGsetup([x, y], [u], J, 3); Ex 4a. Perform calculations on a three-dimensional manifold $N$ in terms of an anholonomic frame $F$. The command FrameData is used to calculate the structure equations for the frame and this is passed to DGsetup. > DGsetup([x, y, z], M); > F := evalDG([D_x, x*D_x + D_y, y D_x + D_z]); > FD := FrameData(F, N); > DGsetup(FD); Ex 4b. Perform calculations on a three-dimensional manifold $N$ in terms of an anholonomic frame $F$. Label the frame vectors $\left[X,Y,Z\right]$ and the co-frame 1-forms $\left[\mathrm{\alpha },\mathrm{\beta },\mathrm{\sigma }\right]$. > DGsetup(FD, [X, Y, Z], [alpha, beta, sigma]); Ex 5. Perform calculations on a three-dimensional manifold $N$ in terms of an anholonomic co-frame $\mathrm{\Omega }$. The command FrameData is used to calculate the structure equations for the frame and this is passed to DGsetup. > DGsetup([x, y, z], M); > Omega := evalDG([dx, x*dx + dy, y*dx + dz]); > FD := FrameData(Omega, N); > DGsetup(FD); Ex 6a. Initialize a Lie algebra alg1 defined by a set of 3 matrices $A=\left[{M}_{1},{M}_{2},{M}_{3}\right]$. Use LieAlgebraData to calculate the structure equations for the Lie algebra and pass this result to DGsetup. > A := [Matrix([[1, 0], [0, 0]]), Matrix([[0, 1], [0, 0]]), Matrix([[0, 0],[0, 1]])]; > LD := LieAlgebraData(A, alg1); > DGsetup(LD); Ex 6b. Initialize a Lie algebra alg1 defined by a set of 3 matrices. Label the basis elements for the Lie algebra as $\left[{f}_{1},{f}_{2},{f}_{3}\right]$ and the dual 1-forms by $\left[{\mathrm{\xi }}_{1},{\mathrm{\xi }}_{2},{\mathrm{\xi }}_{3}\right]$ > DGsetup(LD, [f], [xi]): Ex 7. Initialize a Lie algebra alg1 defined by a set of 3 vector fields $\mathrm{\Gamma }=\left[{X}_{1},{X}_{2},{X}_{3}\right]$. Use LieAlgebraData to calculate the structure equations for the Lie algebra and passed this result to DGsetup. > DGsetup([x, y], M); > Gamma : = evalDG([D_x, D_y, y*D_x - x*D_y]); > LD := LieAlgebraData(A, alg1): > DGsetup(LD); Ex 8. Initialize a Lie algebra alg1 from a set of structure equations. For other ways to initialize a Lie algebra, see LieAlgebraData. > B := [x, y, h]; > S := [[h, x] = 2*x, [h, y] = -2*y, [x, y] = h]; > LD := LieAlgebraData( S, B, alg); > DGsetup(LD); Ex 9. Initialize a classical simple Lie algebra, say $\mathrm{sl}\left(3\right)$, the Lie algebra of trace-free matrices. See SimpleLieAlgebraData. > LD := SimpleLieAlgebraData(sl(3), alg); > DGsetup(LD); Ex 10. Initialize a Lie algebra with coefficients in a representation. > LD := LieAlgebraData( [h,x] = 2x, [h,y] = -2y, [x,y] =h], [x, y, h], alg); > DGsetup(LD); > DGsetup([x1, x2, x3], V); > A := Adjoint(); > rho := Representation(alg, V, Adjoint()); > DGsetup(alg, rho, R): Ex 11. Initialize a set of abstract differential forms with a given set of structure equations. > DGsetup([f = dgform(0), alpha = dgform(1), beta = dgfom(2)], [d(beta) = alpha &w beta], M) Ex 12. Initialize an abstract co-frame and set of abstract differential forms with a given set of structure equations. > DGsetup([[alpha, beta], f = dgform(0),  sigma = dgform(2)], [d(alpha) = f sigma, hook(D_alpha, sigma) = beta], M):

Examples

 > $\mathrm{with}\left(\mathrm{DifferentialGeometry}\right):$$\mathrm{with}\left(\mathrm{LieAlgebras}\right):$

Example 1.  Use the first calling sequence to set up a coordinate system on a manifold.

In this first example, we create a two-dimensional manifold M with coordinates [x, y].

 > $\mathrm{DGsetup}\left(\left[x,y\right],M,\mathrm{verbose}\right)$
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[{}\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{M}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{M}{,}{1}\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{frame name: M}}$ (1)

The coordinates are now protected names which cannot be assigned values.

The standard coordinate vectors D_x, D_y and dual 1 forms dx, dy have been defined and protected.  We display the internal representation of these vectors just to show that they have been assigned values. (Knowledge of this internal representation of various objects used in the DifferentialGeometry package is not required of the user).

 > $\mathrm{lprint}\left(\mathrm{D_x}\right):$
 _DG([["vector", M, []], [[[1], 1]]])
 > $\mathrm{lprint}\left(\mathrm{dx}\right)$
 _DG([["form", M, 1], [[[1], 1]]])

Without the option 'verbose', the information concerning the definition and protection of variable is suppressed.  This behavior of the DGsetup command can be controlled globally with the Preferences command.

 > $\mathrm{DGsetup}\left(\left[u,v\right],N\right)$
 ${\mathrm{frame name: N}}$ (2)

Example 2.  Use the second calling sequence to set up coordinates on a vector or fiber bundle.

In many situations in differential geometry, one deals with vector bundles or fiber bundles pi: E -> M.  For these applications, use the second calling sequence to DGsetup.  The

first argument varlist1 should be coordinates for the basis manifold M and the second argument should be the list of coordinates for the fiber of the bundle E.  Here is the command

for creating a rank-2 bundle over a three-dimensional space.  The base coordinates are [x, y, z] and the fiber coordinates are [u, v].

 > $\mathrm{DGsetup}\left(\left[x,y,z\right],\left[u,v\right],P,\mathrm{verbose}\right)$
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{z}{,}{u}{,}{v}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{P}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{P}{,}\left[{}\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{P}{,}\left[{}\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{P}{,}\left[{}\right]\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{P}{,}\left[{}\right]\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{P}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{P}{,}{1}\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{P}{,}{1}\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{P}{,}{1}\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{P}{,}{1}\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{frame name: P}}$ (3)

This particular use of DGsetup could be used, for example, to study a three-dimensional manifold imbedded in a five-dimensional Riemannian manifold, where the vectors D_u and D_v define a local basis for the normal bundle.

Example 3.  Use the third calling sequence to set up coordinates on a jet bundle.

The JetCalculus subpackage of the DifferentialGeometry package contains an extensive set of commands for symbolic computations on jet spaces.  These spaces provide the natural mathematical setting for the geometric approach to the calculus of variations and to differential equations.  The third calling sequence for the DGsetup command will create a jet space over a bundle pi: E -> M with prescribed lists of independent variables (coordinates on M) and dependent variables (fiber coordinates on E). In addition to the coordinate vectors and coordinate differential forms on jet space, DGsetup also defines and protects the contact forms on jet space.  See the JetCalculus overview page for additional information regarding these differential forms. The user may specify which of two notational conventions are to be used to denote the jet coordinates.  See the Preferences command for details.

First we initialize the 3rd order jet space for 1 independent and 2 dependent variables.

 > $\mathrm{DGsetup}\left(\left[t\right],\left[x,y\right],\mathrm{J12},3,\mathrm{verbose}\right)$
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{t}{,}{x}\left[\right]{,}{y}\left[\right]{,}{{x}}_{{1}}{,}{{y}}_{{1}}{,}{{x}}_{{1}{,}{1}}{,}{{y}}_{{1}{,}{1}}{,}{{x}}_{{1}{,}{1}{,}{1}}{,}{{y}}_{{1}{,}{1}{,}{1}}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J12}}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J12}}{,}\left[{}\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J12}}{,}\left[{}\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J12}}{,}\left[{}\right]\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J12}}{,}\left[{}\right]\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J12}}{,}\left[{}\right]\right]{,}\left[\left[\left[{6}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J12}}{,}\left[{}\right]\right]{,}\left[\left[\left[{7}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J12}}{,}\left[{}\right]\right]{,}\left[\left[\left[{8}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J12}}{,}\left[{}\right]\right]{,}\left[\left[\left[{9}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J12}}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J12}}{,}{1}\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J12}}{,}{1}\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J12}}{,}{1}\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J12}}{,}{1}\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J12}}{,}{1}\right]{,}\left[\left[\left[{6}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J12}}{,}{1}\right]{,}\left[\left[\left[{7}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J12}}{,}{1}\right]{,}\left[\left[\left[{8}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J12}}{,}{1}\right]{,}\left[\left[\left[{9}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following type \left[1,0\right] biforms have been defined and protected::}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J12}}{,}\left[{1}{,}{0}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following type \left[0,1\right] biforms \left(contact 1-forms\right) have been defined and protected::}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J12}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J12}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J12}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J12}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J12}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{6}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J12}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{7}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J12}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{8}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J12}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{9}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{frame name: J12}}$ (4)

Here is the initialization of the 3rd order jet space for 2 independent and 1 dependent variable.

 > $\mathrm{DGsetup}\left(\left[x,y\right],\left[U\right],\mathrm{J21},3,\mathrm{verbose}\right)$
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{U}\left[\right]{,}{{U}}_{{1}}{,}{{U}}_{{2}}{,}{{U}}_{{1}{,}{1}}{,}{{U}}_{{1}{,}{2}}{,}{{U}}_{{2}{,}{2}}{,}{{U}}_{{1}{,}{1}{,}{1}}{,}{{U}}_{{1}{,}{1}{,}{2}}{,}{{U}}_{{1}{,}{2}{,}{2}}{,}{{U}}_{{2}{,}{2}{,}{2}}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J21}}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J21}}{,}\left[{}\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J21}}{,}\left[{}\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J21}}{,}\left[{}\right]\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J21}}{,}\left[{}\right]\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J21}}{,}\left[{}\right]\right]{,}\left[\left[\left[{6}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J21}}{,}\left[{}\right]\right]{,}\left[\left[\left[{7}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J21}}{,}\left[{}\right]\right]{,}\left[\left[\left[{8}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J21}}{,}\left[{}\right]\right]{,}\left[\left[\left[{9}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J21}}{,}\left[{}\right]\right]{,}\left[\left[\left[{10}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J21}}{,}\left[{}\right]\right]{,}\left[\left[\left[{11}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{J21}}{,}\left[{}\right]\right]{,}\left[\left[\left[{12}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J21}}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J21}}{,}{1}\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J21}}{,}{1}\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J21}}{,}{1}\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J21}}{,}{1}\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J21}}{,}{1}\right]{,}\left[\left[\left[{6}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J21}}{,}{1}\right]{,}\left[\left[\left[{7}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J21}}{,}{1}\right]{,}\left[\left[\left[{8}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J21}}{,}{1}\right]{,}\left[\left[\left[{9}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J21}}{,}{1}\right]{,}\left[\left[\left[{10}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J21}}{,}{1}\right]{,}\left[\left[\left[{11}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{J21}}{,}{1}\right]{,}\left[\left[\left[{12}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following type \left[1,0\right] biforms have been defined and protected::}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J21}}{,}\left[{1}{,}{0}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J21}}{,}\left[{1}{,}{0}\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following type \left[0,1\right] biforms \left(contact 1-forms\right) have been defined and protected::}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J21}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J21}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J21}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J21}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{6}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J21}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{7}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J21}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{8}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J21}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{9}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J21}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{10}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J21}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{11}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"biform"}{,}{\mathrm{J21}}{,}\left[{0}{,}{1}\right]\right]{,}\left[\left[\left[{12}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{frame name: J21}}$ (5)

Example 4.  Use the fourth calling sequence to set up an anholonomic frame on a manifold.

It is extremely important, for many calculations in DifferentialGeometry, to work with frames and co-frames other than the coordinate frame (e.g. D_x, D_y, ...) and the coordinate co-frame (e.g. dx, dy ...). For example, curvature tensor calculations are often greatly simplified by working in an orthonormal frame. To set up a frame for subsequent computations with the DifferentialGeometry package, first use the FrameData command to calculate the structure equations for the frame or co-frame.  Then pass the output of the FrameData command to DGsetup.

 > $\mathrm{DGsetup}\left(\left[x,y,z\right],M\right)$
 ${\mathrm{frame name: M}}$ (6)

The three vectors in the list F are the vectors that will be used as a frame.

 > $F≔\mathrm{evalDG}\left(\left[\mathrm{D_x},\mathrm{D_y}+x\mathrm{D_x},\mathrm{D_z}+y\mathrm{D_x}\right]\right)$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{x}\right]{,}\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{y}\right]{,}\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$ (7)

The command FrameData calculates the structure equations for this frame. These structure equations are displayed with the convention that the first element of the frame is E1, the second element is E2, and so on.  The name of the manifold with coordinates [x, y, z] and anholonomic frame F is M1.

 > $\mathrm{StructureEquations}≔\mathrm{FrameData}\left(F,\mathrm{M1}\right)$
 ${\mathrm{StructureEquations}}{≔}\left[\left[{\mathrm{E1}}{,}{\mathrm{E2}}\right]{=}{\mathrm{E1}}{,}\left[{\mathrm{E2}}{,}{\mathrm{E3}}\right]{=}\left({1}{-}{y}\right){}{\mathrm{E1}}\right]$ (8)

Pass the output of FrameData to the command DGsetup.  Now in place of the coordinate vectors D_x, D_y, D_z and coordinate form dx, dy, dz, we shall use the vectors F[1], F[2], F[3] and the dual 1 forms.  The default labels for the frame elements are E1, E2, E3 and the default labels for the co-frame elements are Theta1, Theta2, Theta3.

 > $\mathrm{DGsetup}\left(\mathrm{StructureEquations},\mathrm{verbose}\right)$
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{z}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M1}}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M1}}{,}{1}\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M1}}{,}{1}\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{frame name: M1}}$ (9)

As sample calculations on the manifold M1 we have:

 > $\mathrm{LieBracket}\left(\mathrm{E2},\mathrm{E3}\right)$
 ${\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}{-}{y}\right]\right]\right]\right)$ (10)
 > $\mathrm{ExteriorDerivative}\left(\mathrm{Θ1}\right)$
 ${\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M1}}{,}{2}\right]{,}\left[\left[\left[{1}{,}{2}\right]{,}{-}{1}\right]{,}\left[\left[{2}{,}{3}\right]{,}{-}{1}{+}{y}\right]\right]\right]\right)$ (11)

We can specify the labels for the frame and the co-frame as optional arguments to DGsetup.  The second argument is a list of names for the frame elements and the third argument is a list of names for the co-frame elements.  If a list with just one name is given, then that name is used as the kernel name for the list of frame or co-frame elements.  For example:

 > $\mathrm{DGsetup}\left(\mathrm{StructureEquations},\left[X,Y,Z\right],\left[\mathrm{ω}\right],\mathrm{verbose}\right)$
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{z}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M1}}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M1}}{,}{1}\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M1}}{,}{1}\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{frame name: M1}}$ (12)

Example 5.  Use the fourth calling sequence to set up an anholonomic co-frame on a manifold.

The same commands used in the previous example can be used to create an anholonomic co-frame on a manifold.

 > $\mathrm{DGsetup}\left(\left[x,y,z\right],M\right)$
 ${\mathrm{frame name: M}}$ (13)

The three 1-forms in the list Omega are the 1-forms that will be used as a co-frame.

 > $\mathrm{Ω}≔\mathrm{evalDG}\left(\left[\mathrm{dx},x\mathrm{dx}+\mathrm{dy},y\mathrm{dx}+\mathrm{dz}\right]\right)$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{M}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{M}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{x}\right]{,}\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{M}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{y}\right]{,}\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$ (14)

The command FrameData calculates the structure equations for this co-frame.  These structure equations are displayed with the convention that the first element of the frame is ${\mathrm{Θ}}_{}$1, the second element is ${\mathrm{Θ}}_{}$2, and so on.  The name of the manifold with coordinates [x, y, z] and anholonomic frame Omega is M1.

 > $\mathrm{StructureEquations}≔\mathrm{FrameData}\left(\mathrm{Ω},\mathrm{M1}\right)$
 ${\mathrm{StructureEquations}}{≔}\left[{d}{}{\mathrm{Θ1}}{=}{0}{,}{d}{}{\mathrm{Θ2}}{=}{0}{,}{d}{}{\mathrm{Θ3}}{=}{-}{\mathrm{Θ1}}{}{\bigwedge }{}{\mathrm{Θ2}}\right]$ (15)

Pass the output of FrameData to the command DGsetup.  Now in place of the coordinate vectors D_x, D_y, D_z and coordinate form dx, dy, dz, we shall use the 1-forms Omega[1], Omega[2], Omega[3] and the dual vector fields.  The default labels for the frame elements are E1, E2, E3 and the default labels for the co-frame elements are Theta1, Theta2, Theta3.

 > $\mathrm{DGsetup}\left(\mathrm{StructureEquations},\mathrm{verbose}\right)$
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{z}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M1}}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M1}}{,}{1}\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M1}}{,}{1}\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{frame name: M1}}$ (16)

Example 6.  Use the fifth calling sequence to initialize a Lie algebra, defined by a set of matrices

The DGsetup command can also be used to initialize a Lie algebra the same way that DGsetup is used to initialize an anholonomic frame on a manifold.  Typically, one first obtains the structure equations for the Lie algebra using the LieAlgebraData command and then passes these structure equations to DGsetup.  Structure equations for a large number of Lie algebras can also be retrieved from the database of Lie algebras found in the Library package.

 > $M≔\left[\mathrm{Matrix}\left(\left[\left[1,0\right],\left[0,0\right]\right]\right),\mathrm{Matrix}\left(\left[\left[0,1\right],\left[0,0\right]\right]\right),\mathrm{Matrix}\left(\left[\left[0,0\right],\left[0,1\right]\right]\right)\right]$
 $\left[\left[\begin{array}{rr}1& 0\\ 0& 0\end{array}\right]{,}\left[\begin{array}{rr}0& 1\\ 0& 0\end{array}\right]{,}\left[\begin{array}{rr}0& 0\\ 0& 1\end{array}\right]\right]$ (17)

Calculate the structure equations for the matrix Lie algebra defined by the matrices M.  Here e1 refers to the first matrix in M, e2 the second matrix, ....

 > $\mathrm{StructureEquations}≔\mathrm{LieAlgebraData}\left(M,\mathrm{Alg1}\right)$
 ${\mathrm{StructureEquations}}{≔}\left[\left[{\mathrm{e1}}{,}{\mathrm{e2}}\right]{=}{\mathrm{e2}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e3}}\right]{=}{\mathrm{e2}}\right]$ (18)

The default names for the basis elements for the Lie algebra are e1, e2, e3....  The default names for the basis elements for the dual elements of the Lie algebra are theta1, theta2, ....

 > $\mathrm{DGsetup}\left(\mathrm{StructureEquations},\mathrm{verbose}\right)$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{Alg1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{Alg1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{Alg1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{Alg1}}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{Alg1}}{,}{1}\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{Alg1}}{,}{1}\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{Lie algebra: Alg1}}$ (19)

Again it is a simple matter to override this default labeling.

 > $\mathrm{DGsetup}\left(\mathrm{StructureEquations},\left[f\right],\left[\mathrm{ξ}\right],\mathrm{verbose}\right)$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{Alg1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{Alg1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{Alg1}}{,}\left[{}\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{Alg1}}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{Alg1}}{,}{1}\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{Alg1}}{,}{1}\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$
 ${\mathrm{Lie algebra: Alg1}}$ (20)

Example 7.  Use the fifth calling sequence to initialize a Lie algebra, defined by a set of vector fields

The same sequence of commands as illustrated in the previous example can be used to initialize a Lie algebra from a set of vector fields.

 > $\mathrm{DGsetup}\left(\left[x,y\right],\mathrm{M7}\right)$
 ${\mathrm{frame name: M7}}$ (21)

Here are the vector fields we shall use.

 > $\mathrm{Gamma}≔\mathrm{evalDG}\left(\left[\mathrm{D_x},\mathrm{D_y},y\mathrm{D_x}-x\mathrm{D_y}\right]\right)$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M7}}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M7}}{,}\left[{}\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{\mathrm{M7}}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{y}\right]{,}\left[\left[{2}\right]{,}{-}{x}\right]\right]\right]\right)\right]$ (22)
 > $\mathrm{LD}≔\mathrm{LieAlgebraData}\left(\mathrm{Gamma},\mathrm{alg7}\right)$
 ${\mathrm{LD}}{≔}\left[\left[{\mathrm{e1}}{,}{\mathrm{e3}}\right]{=}{-}{\mathrm{e2}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e3}}\right]{=}{\mathrm{e1}}\right]$ (23)
 > $\mathrm{DGsetup}\left(\mathrm{LD},\left[\mathrm{Tx},\mathrm{Ty},R\right],\left[\mathrm{ω}\right]\right)$
 ${\mathrm{Lie algebra: alg7}}$ (24)
 > $\mathrm{MultiplicationTable}\left("LieTable"\right)$
 $\left[\begin{array}{ccccc}{}& |& \mathrm{Tx}& \mathrm{Ty}& R\\ {}& \mathrm{----}& \mathrm{----}& \mathrm{----}& \mathrm{----}\\ \mathrm{Tx}& |& 0& 0& \mathrm{_DG}{}\left(\left[\left[{"vector"},\mathrm{alg7},\left[{}\right]\right],\left[\left[\left[2\right],-1\right]\right]\right]\right)\\ \mathrm{Ty}& |& 0& 0& \mathrm{_DG}{}\left(\left[\left[{"vector"},\mathrm{alg7},\left[{}\right]\right],\left[\left[\left[1\right],1\right]\right]\right]\right)\\ R& |& \mathrm{_DG}{}\left(\left[\left[{"vector"},\mathrm{alg7},\left[{}\right]\right],\left[\left[\left[2\right],1\right]\right]\right]\right)& \mathrm{_DG}{}\left(\left[\left[{"vector"},\mathrm{alg7},\left[{}\right]\right],\left[\left[\left[1\right],-1\right]\right]\right]\right)& 0\end{array}\right]$ (25)

Example 8.  Use the fifth calling sequence to initialize a simple Lie algebra, defined by structure equations

The LieAlgebraData command, in conjunction with DGsetup, can be used to initialize a Lie algebra from a set of structure equations.  First specify the basis elements.  These must be unassigned names.

 > $B≔\left[x,y,h\right]$
 ${B}{≔}\left[{x}{,}{y}{,}{h}\right]$ (26)

Define a list of structure equations for a Lie algebra.

 > $S≔\left[\left[h,x\right]=2x,\left[h,y\right]=-2y,\left[x,y\right]=h\right]$
 ${S}{≔}\left[\left[{h}{,}{x}\right]{=}{2}{}{x}{,}\left[{h}{,}{y}\right]{=}{-}{2}{}{y}{,}\left[{x}{,}{y}\right]{=}{h}\right]$ (27)
 > $\mathrm{LD}≔\mathrm{LieAlgebraData}\left(S,B,\mathrm{alg8}\right)$
 ${\mathrm{LD}}{≔}\left[\left[{\mathrm{e1}}{,}{\mathrm{e2}}\right]{=}{\mathrm{e3}}{,}\left[{\mathrm{e1}}{,}{\mathrm{e3}}\right]{=}{-}{2}{}{\mathrm{e1}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e3}}\right]{=}{2}{}{\mathrm{e2}}\right]$ (28)
 > $\mathrm{DGsetup}\left(\mathrm{LD}\right)$
 ${\mathrm{Lie algebra: alg8}}$ (29)

Example 9.  Use the fifth calling sequence to initialize a simple Lie algebra, constructed from the command "SimpleLieAlgebraData"

The LieAlgebra package contains tables of structures equations for the classical simple and semi-simple matrix algebras. These can be accessed with the command SimpleLieAlgebraData. In this example we initialize $\mathrm{sl}\left(3\right)$, the Lie algebra of trace-free matrices.

 > $\mathrm{LD}≔\mathrm{SimpleLieAlgebraData}\left("sl\left(3\right)",\mathrm{alg9}\right)$
 ${\mathrm{LD}}{≔}\left[\left[{\mathrm{e1}}{,}{\mathrm{e3}}\right]{=}{\mathrm{e3}}{,}\left[{\mathrm{e1}}{,}{\mathrm{e4}}\right]{=}{2}{}{\mathrm{e4}}{,}\left[{\mathrm{e1}}{,}{\mathrm{e5}}\right]{=}{-}{\mathrm{e5}}{,}\left[{\mathrm{e1}}{,}{\mathrm{e6}}\right]{=}{\mathrm{e6}}{,}\left[{\mathrm{e1}}{,}{\mathrm{e7}}\right]{=}{-}{2}{}{\mathrm{e7}}{,}\left[{\mathrm{e1}}{,}{\mathrm{e8}}\right]{=}{-}{\mathrm{e8}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e3}}\right]{=}{-}{\mathrm{e3}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e4}}\right]{=}{\mathrm{e4}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e5}}\right]{=}{\mathrm{e5}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e6}}\right]{=}{2}{}{\mathrm{e6}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e7}}\right]{=}{-}{\mathrm{e7}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e8}}\right]{=}{-}{2}{}{\mathrm{e8}}{,}\left[{\mathrm{e3}}{,}{\mathrm{e5}}\right]{=}{\mathrm{e1}}{-}{\mathrm{e2}}{,}\left[{\mathrm{e3}}{,}{\mathrm{e6}}\right]{=}{\mathrm{e4}}{,}\left[{\mathrm{e3}}{,}{\mathrm{e7}}\right]{=}{-}{\mathrm{e8}}{,}\left[{\mathrm{e4}}{,}{\mathrm{e5}}\right]{=}{-}{\mathrm{e6}}{,}\left[{\mathrm{e4}}{,}{\mathrm{e7}}\right]{=}{\mathrm{e1}}{,}\left[{\mathrm{e4}}{,}{\mathrm{e8}}\right]{=}{\mathrm{e3}}{,}\left[{\mathrm{e5}}{,}{\mathrm{e8}}\right]{=}{-}{\mathrm{e7}}{,}\left[{\mathrm{e6}}{,}{\mathrm{e7}}\right]{=}{\mathrm{e5}}{,}\left[{\mathrm{e6}}{,}{\mathrm{e8}}\right]{=}{\mathrm{e2}}\right]$ (30)
 > $\mathrm{DGsetup}\left(\mathrm{LD}\right)$
 ${\mathrm{Lie algebra: alg9}}$ (31)

Example 10.  Use the sixth calling sequence to initialize a Lie algebra with coefficients in a representation

Exterior forms on Lie algebras can be generalized to allow for coefficients in a representation.  In this example we use the three-dimensional Lie algebra defined in Example 7 and its adjoint representation. First, define a three-dimensional space to serve as the representation space.

 > $\mathrm{DGsetup}\left(\left[\mathrm{x1},\mathrm{x2},\mathrm{x3}\right],V\right)$
 ${\mathrm{frame name: V}}$ (32)

Now use the Adjoint and Representation commands to create the adjoint representation for $\mathrm{alg7}$.

 > $A≔\mathrm{Adjoint}\left(\mathrm{alg7}\right)$
 $\left[\left[\begin{array}{rrr}0& 0& 0\\ 0& 0& -1\\ 0& 0& 0\end{array}\right]{,}\left[\begin{array}{rrr}0& 0& 1\\ 0& 0& 0\\ 0& 0& 0\end{array}\right]{,}\left[\begin{array}{rrr}0& -1& 0\\ 1& 0& 0\\ 0& 0& 0\end{array}\right]\right]$ (33)
 > $\mathrm{ρ}≔\mathrm{Representation}\left(\mathrm{alg7},V,A\right)$
 ${\mathrm{_DG}}{}\left(\left[\left[{"Representation"}{,}\left[\left[{\mathrm{alg7}}{,}{0}\right]{,}\left[{V}{,}{0}\right]\right]{,}\left[{}\right]\right]{,}\left[\left[\begin{array}{rrr}0& 0& 0\\ 0& 0& -1\\ 0& 0& 0\end{array}\right]{,}\left[\begin{array}{rrr}0& 0& 1\\ 0& 0& 0\\ 0& 0& 0\end{array}\right]{,}\left[\begin{array}{rrr}0& -1& 0\\ 1& 0& 0\\ 0& 0& 0\end{array}\right]\right]\right]\right)$ (34)

Invoke the sixth calling sequence for DGsetup.

 > $\mathrm{DGsetup}\left(\mathrm{alg7},\mathrm{ρ},\mathrm{Rep1}\right)$
 ${\mathrm{Lie algebra with coefficients: Rep1}}$ (35)

At this point one can calculate, for example, the exterior derivative of a 1-form on alg7 with coefficients in V.

 > $\mathrm{DGsetup}\left(\mathrm{alg7},\mathrm{ρ},\mathrm{Rep1}\right)$
 ${\mathrm{Lie algebra with coefficients: Rep1}}$ (36)

Example 11.  Use the seventh calling sequence to initialize a list of abstract differential forms

In this example we use DGsetup to define a computational environment defined by a single scalar , a 1-form and a 2-form ${\mathrm{β}}_{}$.  The exterior derivative of is specified as .

 > $\mathrm{DGsetup}\left(\left[f=\mathrm{dgform}\left(0\right),\mathrm{α}=\mathrm{dgform}\left(1\right),\mathrm{β}=\mathrm{dgform}\left(2\right)\right],\left[d\left(\mathrm{α}\right)=f\mathrm{β}\right],\mathrm{M11}\right)$
 ${\mathrm{frame name: M11}}$ (37)
 > $\mathrm{ExteriorDerivative}\left(\mathrm{α}\right)$
 ${\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M11}}{,}{2}\right]{,}\left[\left[\left[{2}\right]{,}{f}\right]\right]\right]\right)$ (38)
 > $\mathrm{ExteriorDerivative}\left(\left(\mathrm{α}&w\mathrm{β}\right)&w\mathrm{β}\right)$
 ${\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M11}}{,}{6}\right]{,}\left[\left[\left[{1}{,}{2}{,}{3}\right]{,}{-}{2}\right]{,}\left[\left[{2}{,}{2}{,}{2}\right]{,}{f}\right]\right]\right]\right)$ (39)

We use DGsetup to add forms or structure equations.

 > $\mathrm{DGsetup}\left(\mathrm{M11},\left[\mathrm{σ}=\mathrm{dgform}\left(1\right)\right],\left[d\left(\mathrm{β}\right)=\mathrm{σ}&w\mathrm{β}\right]\right)$
 ${\mathrm{updated frame: M11}}$ (40)
 > $\mathrm{ExteriorDerivative}\left(\mathrm{β}\right)$
 ${\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M11}}{,}{3}\right]{,}\left[\left[\left[{2}{,}{4}\right]{,}{1}\right]\right]\right]\right)$ (41)

Example 12.  Use the seventh calling sequence to initialize a co-frame and a list of abstract differential forms

This is essentially the same as Example 11 except that the first list, used to specify the list of abstract forms, now contains a sublist defining a co-frame.  In this example, we would like to label the co-frame as  but these names were assigned to the 1-forms for the Lie algebra $\mathrm{alg7}$.  Therefore, we should first remove this frame.

 > $\mathrm{RemoveFrame}\left(\mathrm{alg7}\right)$
 ${13}$ (42)
 > $\mathrm{DGsetup}\left(\left[\left[\mathrm{ω1},\mathrm{ω2},\mathrm{ω3}\right],\mathrm{β1}=\mathrm{dgform}\left(2\right)\right],\left[d\left(\mathrm{ω1}\right)=\mathrm{ω2}&w\mathrm{ω3},d\left(\mathrm{ω2}\right)=\mathrm{β1}\right],\mathrm{M12}\right)$
 ${\mathrm{frame name: M12}}$ (43)
 > $\mathrm{ExteriorDerivative}\left(\mathrm{ω1}\right)$
 ${\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M12}}{,}{2}\right]{,}\left[\left[\left[{2}{,}{3}\right]{,}{1}\right]\right]\right]\right)$ (44)

In this setting interior products and Lie derivatives can be computed.

 > $\mathrm{Hook}\left(\mathrm{D_omega2},\mathrm{β1}\right)$
 ${\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M12}}{,}{1}\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right)$ (45)
 > $\mathrm{LieDerivative}\left(\mathrm{D_omega2},\mathrm{β1}\right)$
 ${\mathrm{_DG}}{}\left(\left[\left[{"form"}{,}{\mathrm{M12}}{,}{2}\right]{,}\left[\left[\left[{7}\right]{,}{1}\right]{,}\left[\left[{8}\right]{,}{1}\right]\right]\right]\right)$ (46)