 DifferentialGeometry/Tensor/SubspaceType - Maple Help

Tensor[SubspaceType] - determine the signature of the metric restricted to a subspace of the tangent space

Calling Sequences

SubspaceType(g, S, pt, output)

Calling Sequences

g       - a metric tensor on an $n$-dimensional manifold $M$. The signature of $g$ is arbitrary

S       - a list of vectors defining a subspace of the tangent space of $M$

pt      - (optional) a list of equations specifying the coordinates of a point $p$ of $M$

output  - (optional) a keyword argument, one of "Matrix", "Riemannian", "PseudoRiemannian", "Null" Description

 • Let $p\in M$ and let $S$ be a $k$-dimensional subspace of the tangent space ${T}_{p}M.$ Let be a basis for $S$ and let $h$ be the $k×k$ matrix with components

The matrix $h$ defines the metric on the subspace $S$ induced by $g$.  The subspace $S$ is called "Riemannian" if $h$ is positive or negative definite; "PseudoRiemannian" if $h$ is indefinite and non-degenerate; and "Null" if $h$ is degenerate ($\mathrm{det}\left(h\right)=0$).

 • Let $S$ be the span of $m$ vectors $\left({X}_{1},{X}_{2},...,{X}_{m}\right)$; these vectors need not be linearly independent. The command SubspaceType(g, S) will attempt to determine the type of the subspace $S$ at a generic point. It will return a sequence k, T, where k is the dimension of $S$ and T is one of {"Riemannian", "PseudoRiemannian", "Null", Fail}. The value Fail typically indicates the subspace type is varying with respect to coordinates or parameters.
 • With the optional argument pt, the type of the subspace $S$ at pt is determined. Specific properties of the coordinates of the point pt can be specified using assuming.
 • With the keyword argument output = "Matrix", the values of the matrix $h$ and the basis used to compute $h$, evaluated at the point $p$, are returned.
 • With the keyword argument output = "Riemannian", output = "PseudoRiemannian" or output = "Null", the command returns the sequence k, TF, where k is the dimension of the subspace $S$ and TF is true or false.
 • The user can trace the program branching by setting infolevel[SubspaceType] := 2.
 • This command is part of the DifferentialGeometry:-Tensor package, and so can be used in the form SubspaceType(...) only after executing the commands with(DifferentialGeometry); with(Tensor); in that order.  It can always be used in the long form DifferentialGeometry:-Tensor:-SubspaceType. Examples

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

For Examples 1 -- 4 we use coordinates $\left(t,x,y,z\right)$ and the metric $g$.

 > $\mathrm{DGsetup}\left(\left[t,x,y,z\right],M\right)$
 ${\mathrm{frame name: M}}$ (2.1)
 M > $g≔\mathrm{evalDG}\left(\mathrm{dt}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dt}-\mathrm{dx}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dx}-\mathrm{dy}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dy}-\mathrm{dz}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dz}\right)$
 ${g}{:=}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{M}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{1}\right]{,}\left[\left[{2}{,}{2}\right]{,}{-1}\right]{,}\left[\left[{3}{,}{3}\right]{,}{-1}\right]{,}\left[\left[{4}{,}{4}\right]{,}{-1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{M}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{1}\right]{,}\left[\left[{2}{,}{2}\right]{,}{-1}\right]{,}\left[\left[{3}{,}{3}\right]{,}{-1}\right]{,}\left[\left[{4}{,}{4}\right]{,}{-1}\right]\right]\right]\right)$ (2.2)

Example 1.

 M > $\mathrm{S1}≔\left[\mathrm{D_x},\mathrm{D_y}\right]$
 ${\mathrm{S1}}{:=}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{2}\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){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.3)
 M > $\mathrm{SubspaceType}\left(g,\mathrm{S1}\right)$
 ${2}{,}{"Riemannian"}$ (2.4)
 M > $\mathrm{S2}≔\left[\mathrm{D_t},\mathrm{D_x}\right]$
 ${\mathrm{S2}}{:=}\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]{,}{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){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.5)
 M > $\mathrm{SubspaceType}\left(g,\mathrm{S2}\right)$
 ${2}{,}{"PseudoRiemannian"}$ (2.6)
 M > $\mathrm{S3}≔\left[\mathrm{D_t}-\mathrm{D_x},\mathrm{D_y}\right]$
 ${\mathrm{S3}}{:=}\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]{,}{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){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.7)
 M > $\mathrm{SubspaceType}\left(g,\mathrm{S3}\right)$
 ${2}{,}{"Null"}$ (2.8)

Example 2.

Here we give a simple example where the subspace type depends upon the value of the coordinates $t$ and $x$.

 M > $S≔\left[t\mathrm{D_t}-x\mathrm{D_x},\mathrm{D_y}\right]$
 ${S}{:=}\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]{,}{1}\right]\right]\right]\right){}{t}{-}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{2}\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){}{x}{,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.9)

Because the subspace type depends upon $t$ and $x$, the first call to SubspaceType fails.

 M > $\mathrm{SubspaceType}\left(g,S\right)$
 ${2}{,}{\mathrm{Fail}}$ (2.10)

Specify the coordinates of a point and set the output option to "Matrix" to find the matrix form of the metric restricted to the subspace $S$.

 M > $\mathrm{SubspaceType}\left(g,S,\left[t=a,x=b,y=c,z=d\right],\mathrm{output}="Matrix"\right)$
 $\left[\begin{array}{cc}{{a}}^{{2}}{-}{{b}}^{{2}}& {0}\\ {0}& {-}{1}\end{array}\right]{,}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{a}\right]{,}\left[\left[{2}\right]{,}{-}{b}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{1}\right]{,}{a}\right]{,}\left[\left[{2}\right]{,}{-}{b}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.11)

By inspection, we see that there are 3 possibilities:

Case 1. If $a=b$ or $a=-b$, then the subspace type is "Null".

 M > $\mathrm{SubspaceType}\left(g,S,\left[t=a,x=a,y=c,z=d\right]\right)$
 ${2}{,}{"Null"}$ (2.12)
 M > $\mathrm{SubspaceType}\left(g,S,\left[t=a,x=-a,y=c,z=d\right]\right)$
 ${2}{,}{"Null"}$ (2.13)

Case 2. If ${a}^{2}>{b}^{2}$, then the subspace type is "PseudoRiemannian".

 M > $\mathrm{SubspaceType}\left(g,S,\left[t=a,x=b,y=c,z=d\right]\right)\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathbf{assuming}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{b}^{2}<{a}^{2}$
 ${2}{,}{"PseudoRiemannian"}$ (2.14)

Case 3. If ${a}^{2}<{b}^{2}$, then the subspace type is "Riemannian".

 M > $\mathrm{SubspaceType}\left(g,S,\left[t=a,x=b,y=c,z=d\right]\right)\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathbf{assuming}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{a}^{2}<{b}^{2}$
 ${2}{,}{"Riemannian"}$ (2.15)

Example 3.

With the keyword argument output = "Riemannian", output = "PseudoRiemannian", or output = "Null", the command returns the sequence k, TF.

 M > $\mathrm{SubspaceType}\left(g,\mathrm{S2},\mathrm{output}="Null"\right)$
 ${2}{,}{\mathrm{false}}$ (2.16)

Example 4.

The user can trace the program branching by setting infolevel[SubspaceType] := 2.

 M > $\mathrm{infolevel}\left[\mathrm{SubspaceType}\right]≔2$
 ${{\mathrm{infolevel}}}_{{\mathrm{DifferentialGeometry:-Tensor:-SubspaceType}}}{:=}{2}$ (2.17)
 M > $\mathrm{SubspaceType}\left(g,\mathrm{S2}\right)$
 The orbit type is "Null" if the induced metric on the orbit is degenerate The orbit type is "Riemannian" if the induced metric on the orbit is positive or negative definite The orbit type is "PseudoRiemannian" if the induced metric on the orbit is non-degenerate and indefinite    The matrix h defining the induced metric is:    Matrix(2, 2, [[1,0],[0,-1]]) The determinant of the matrix h is: -1
 ${2}{,}{"PseudoRiemannian"}$ (2.18)
 M > $\mathrm{infolevel}\left[\mathrm{SubspaceType}\right]≔0$
 ${{\mathrm{infolevel}}}_{{\mathrm{DifferentialGeometry:-Tensor:-SubspaceType}}}{:=}{0}$ (2.19)

Example 5.

The command SubspaceType works in all dimensions.

 M > $\mathrm{DGsetup}\left(\left[u,v,t,x,y,z\right],M\right)$
 ${\mathrm{frame name: M}}$ (2.20)
 M > $g≔\mathrm{evalDG}\left(\mathrm{du}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&s\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dv}+\mathrm{dt}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dt}-\mathrm{dx}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dx}-\mathrm{dy}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dy}-\mathrm{dz}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}&t\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\mathrm{dz}\right)$
 ${g}{:=}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{M}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{2}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{2}{,}{1}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{3}{,}{3}\right]{,}{1}\right]{,}\left[\left[{4}{,}{4}\right]{,}{-1}\right]{,}\left[\left[{5}{,}{5}\right]{,}{-1}\right]{,}\left[\left[{6}{,}{6}\right]{,}{-1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{M}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{2}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{2}{,}{1}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{3}{,}{3}\right]{,}{1}\right]{,}\left[\left[{4}{,}{4}\right]{,}{-1}\right]{,}\left[\left[{5}{,}{5}\right]{,}{-1}\right]{,}\left[\left[{6}{,}{6}\right]{,}{-1}\right]\right]\right]\right)$ (2.21)
 M > $\mathrm{S1}≔\left[\mathrm{D_u},\mathrm{D_x},\mathrm{D_y}\right]$
 ${\mathrm{S1}}{:=}\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]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.22)
 M > $\mathrm{SubspaceType}\left(g,\mathrm{S1}\right)$
 The orbit type is "Null" if the induced metric on the orbit is degenerate The orbit type is "Riemannian" if the induced metric on the orbit is positive or negative definite The orbit type is "PseudoRiemannian" if the induced metric on the orbit is non-degenerate and indefinite    The matrix h defining the induced metric is:    Matrix(3, 3, [[0,0,0],[0,-1,0],[0,0,-1]]) The determinant of the matrix h is: 0
 ${3}{,}{"Null"}$ (2.23)
 M > $\mathrm{S2}≔\left[\mathrm{D_t},\mathrm{D_x},\mathrm{D_y},\mathrm{D_z}\right]$
 ${\mathrm{S2}}{:=}\left[{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{5}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{6}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"vector"}{,}{M}{,}\left[\right]\right]{,}\left[\left[\left[{6}\right]{,}{1}\right]\right]\right]\right)\right]$ (2.24)
 M > $\mathrm{SubspaceType}\left(g,\mathrm{S2}\right)$
 The orbit type is "Null" if the induced metric on the orbit is degenerate The orbit type is "Riemannian" if the induced metric on the orbit is positive or negative definite The orbit type is "PseudoRiemannian" if the induced metric on the orbit is non-degenerate and indefinite    The matrix h defining the induced metric is:    Matrix(4, 4, [[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,-1]]) The determinant of the matrix h is: -1
 ${4}{,}{"PseudoRiemannian"}$ (2.25)

The list of vectors specifying the subspace need not be linearly independent.

 M > $\mathrm{S3}≔\left[\mathrm{D_x},\mathrm{D_y},y\mathrm{D_x}-x\mathrm{D_y}\right]$
 ${\mathrm{S3}}{:=}\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{y}{}{\mathrm{D_x}}{-}{x}{}{\mathrm{D_y}}\right]$ (2.26)
 M > $\mathrm{SubspaceType}\left(g,\mathrm{S3}\right)$
 ${2}{,}{"Riemannian"}$ (2.27)
 M > $\mathrm{SubspaceType}\left(g,\mathrm{S3},\mathrm{output}="Matrix"\right)$
 $\left[\begin{array}{rr}{-}{1}& {0}\\ {0}& {-}{1}\end{array}\right]{,}\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}\right]$ (2.28) See Also