InfinitesimalHolonomy - Maple Help

Tensor[InfinitesimalHolonomy] - find the matrix Lie algebra giving the infinitesimal holonomy of a metric or a connection on the tangent bundle or on a general vector bundle

Calling Sequences

InfinitesimalHolonomy(g, initpt, options)

InfinitesimalHolonomy(${\mathbf{Γ}}$, initpt, options)

Parameters

$g$           - a metric tensor, either on the tangent bundle of a manifold or on a vector bundle

$\mathrm{Γ}$           - a connection, either on the tangent bundle of a manifold or on a vector bundle

initpt      - a list of equations, specifying the coordinates of a point on the manifold.

options     - (optional) any of the keyword arguments auxiliaryequations, knownholonomy, curvatureorder, output, maximumholonomy

Description

 • Let $\mathrm{Γ}$ be a connection on a vector bundle  with associated directional covariant derivative operator and curvature tensor $R$. For any point and vector fields  , the curvature tensor and its directional covariant derivatives can be viewed as linear maps

.

The collection of all such linear transformations define a matrix Lie algebra, called the infinitesimal holonomy of the connection $\mathrm{Γ}$ at the point $p$. The case of greatest interest occurs when the connection is the Christoffel connection for a metric $g$ on $M$. In this case the matrices defining the infinitesimal holonomy at $p$ are all skew-symmetric with respect to ${g}_{p}$.

 • The command InfinitesimalHolonomy returns a list of holonomy matrices for the infinitesimal holonomy of the given metric or connection. These matrices are guaranteed to be linearly independent at the point with the coordinates specified by the second argument initpt. At a generically chosen point these matrices will generate the full infinitesimal holonomy algebra in a neighborhood of that point. The structure equations for the Lie algebra defined by these matrices can be determined by the command LieAlgebraData.
 • The keyword arguments are used as follows. The keyword argument auxilaryequations specifies a set of equations which are to be used to simplify the connection, the curvature tensor and its covariant derivatives. If a certain number or holonomy matrices are known (perhaps by a previous computation) then these can be included as part of the infinitesimal holonomy algebra with the keyword argument knownholonomy. The computations can be terminated at a given derivative order of the curvature tensor with keyword argument curvatureorder. The computations can be terminated at a given holonomy dimension with keyword argument maximumholonomy. With output = "tensor", the holonomy matrices are represented by type (1,1) tensors.
 • The number of holonomy matrices calculated at each curvature order can be monitored by setting infolevel[ InfinitesimalHolonomy] := 2. With the infolevel set to 3, the holonomy matrices calculated at each curvature order are displayed (as lists of lists).

Details

The details of the algorithm used by InfinitesimalHolonomy can be briefly summarized as follows. Let be the given connection and ${x}_{0}$ be the chosen point.

 • The curvature tensor $R\left(x\right)$ of $\mathrm{Γ}$ is computed and a list of type (1,1) tensorsspanning the linear maps as vary is determined. (The tensors in the listare functions of the coordinates used to create the manifold $M$.)
 • Let denote the tensors in the list $\mathrm{𝒜}\left(x\right)$ evaluated at the given point A maximally independent list of tensors ${\mathrm{𝒜}}_{0}$ is chosen using the DGbasis command. Let ${n}_{0}$ be the number of elements of the list $ℬ$. Each element of $ℬ$ is the restriction of an element of $𝒜\left(x\right)$. Let be the list of those tensors whose restrictions define $\mathrm{ℬ}$. We are guaranteed that [i] the tensors in the listare pointwise independent in a neighborhood of ${x}_{0}$; [ii] that each of these tensors defines an element of infinitesimal holonomy at each point of this neighborhood of and [iii] that the pointwise dimension of $\mathrm{𝒜}$ ($\mathbf{†}\mathbf{)}$.
 • The directional derivatives of the tensors ${\mathrm{ℋ}}_{0}\left({x}_{}\right)$, in all coordinate directions, are computed to generate a new list of (1,1) tensors ${\mathrm{𝒜}}_{1}\left({x}_{}\right)$. The process from the previous step is repeated, as follows. Let ${\mathrm{𝒜}}_{1,0}=$and choose a maximal list of tensors ${\mathrm{ℬ}}_{1}\subset$${\mathrm{𝒜}}_{1,0}$ such that the tensors  are linearly independent. Again this gives tensors ${ℋ}_{1}\left({x}_{}\right)\subset {\mathrm{𝒜}}_{1}\left(x\right)$ so that ${\mathrm{ℬ}}_{1}$. We are guaranteed that the tensors$\cup$ are [i] pointwise independent in a neighborhood of ${x}_{0}$; [ii] that each of these tensors defines an element of infinitesimal holonomy at each point of this neighborhood of and [iii] that the pointwise dimension of $\cup$ . ($\mathbf{‡}$)
 • The directional derivatives of the tensors are computed and the previous step repeated. The algorithm terminates if [i] no new holonomy elements are added at a given step, or [ii] if a fixed number of curvature derivatives (as specified by curvatureorder) are calculated.
 • The output of the command InfinitesimalHolonomy is a list of pointwise independent matrices or (1,1) tensors depending upon the coordinates $x$, each of which defines an element of the infinitesimal holonomy algebra at $x$. When the inequalitiesand $\left(\mathbf{‡}\right)$ are equalities the output of InfinitesimalHolonomy is a basis for the full infinitesimal holonomy algebra at $x$.

Remark: Let $W$ be a covariantly constant tensor. The holonomy algebra at $x$ must be a subalgebra of the endomorphisms of ${T}_{x}$$M$ which fixes $W$ at $x$. Therefore the number of covariantly constant tensors can be used to give an upper bound on the dimension of the holonomy algebra.

Examples

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

Example 1.

First initialize a 5-dimensional manifold and define a metric.

 > $\mathrm{DGsetup}\left(\left[x,y,z,u,v\right],\mathrm{M1}\right)$
 ${\mathrm{frame name: M1}}$ (3.1)
 M1 > $\mathrm{g1}â‰”\mathrm{evalDG}\left({x}^{3}\left(\mathrm{dx}&t\mathrm{dx}+\mathrm{dy}&t\mathrm{dy}+\mathrm{dz}&t\mathrm{dz}\right)+{u}^{3}\left(\mathrm{du}&t\mathrm{du}+\mathrm{dv}&t\mathrm{dv}\right)\right)$
 ${\mathrm{g1}}{:=}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{2}{,}{2}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{3}{,}{3}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{4}{,}{4}\right]{,}{{u}}^{{3}}\right]{,}\left[\left[{5}{,}{5}\right]{,}{{u}}^{{3}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{2}{,}{2}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{3}{,}{3}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{4}{,}{4}\right]{,}{{u}}^{{3}}\right]{,}\left[\left[{5}{,}{5}\right]{,}{{u}}^{{3}}\right]\right]\right]\right)$ (3.2)

Calculate the infinitesimal holonomy of the metric. (Note that the metric is a metric on the product of two 2-dimensional metrics so that the holonomy should be a direct sum of Lie algebras)

 M1 > $\mathrm{InfHol1}â‰”\mathrm{InfinitesimalHolonomy}\left(\mathrm{g1},\left[x=1,y=0,z=1,u=1,v=1\right]\right)$

This result can be simplified by the CanonicalBasis command.

 M1 > $\mathrm{InfHol1a}â‰”\mathrm{Tools}:-\mathrm{CanonicalBasis}\left(\mathrm{InfHol1}\right)$

Here is the same calculation but with the output given by (1,1) tensor fields.

 M1 > $\mathrm{InfHol1}â‰”\mathrm{InfinitesimalHolonomy}\left(\mathrm{g1},\left[x=1,y=0,z=1,u=1,v=1\right],\mathrm{output}="tensor"\right)$
 ${\mathrm{InfHol1}}{:=}\left[{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"con_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{2}\right]{,}\frac{{3}}{{2}{}{{x}}^{{2}}}\right]{,}\left[\left[{2}{,}{1}\right]{,}{-}\frac{{3}}{{2}{}{{x}}^{{2}}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"con_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{2}\right]{,}\frac{{3}}{{2}{}{{x}}^{{2}}}\right]{,}\left[\left[{2}{,}{1}\right]{,}{-}\frac{{3}}{{2}{}{{x}}^{{2}}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"con_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{3}\right]{,}\frac{{3}}{{2}{}{{x}}^{{2}}}\right]{,}\left[\left[{3}{,}{1}\right]{,}{-}\frac{{3}}{{2}{}{{x}}^{{2}}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"con_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{3}\right]{,}\frac{{3}}{{2}{}{{x}}^{{2}}}\right]{,}\left[\left[{3}{,}{1}\right]{,}{-}\frac{{3}}{{2}{}{{x}}^{{2}}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"con_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{2}{,}{3}\right]{,}{-}\frac{{9}}{{4}{}{{x}}^{{2}}}\right]{,}\left[\left[{3}{,}{2}\right]{,}\frac{{9}}{{4}{}{{x}}^{{2}}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"con_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{2}{,}{3}\right]{,}{-}\frac{{9}}{{4}{}{{x}}^{{2}}}\right]{,}\left[\left[{3}{,}{2}\right]{,}\frac{{9}}{{4}{}{{x}}^{{2}}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"con_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{4}{,}{5}\right]{,}\frac{{3}}{{2}{}{{u}}^{{2}}}\right]{,}\left[\left[{5}{,}{4}\right]{,}{-}\frac{{3}}{{2}{}{{u}}^{{2}}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"con_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{4}{,}{5}\right]{,}\frac{{3}}{{2}{}{{u}}^{{2}}}\right]{,}\left[\left[{5}{,}{4}\right]{,}{-}\frac{{3}}{{2}{}{{u}}^{{2}}}\right]\right]\right]\right)\right]$ (3.3)

Example 2.

Initialize a 4-dimensional manifold and define a metric.

 M1 > $\mathrm{DGsetup}\left(\left[t,x,y,z\right],\mathrm{M2}\right)$
 ${\mathrm{frame name: M2}}$ (3.4)
 M2 > $\mathrm{g2}â‰”\mathrm{evalDG}\left({t}^{a}\mathrm{dx}&t\mathrm{dx}+{t}^{b}\mathrm{dy}&t\mathrm{dy}+{t}^{c}\mathrm{dz}&t\mathrm{dz}-\mathrm{dt}&t\mathrm{dt}\right)$
 ${\mathrm{g2}}{:=}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M2}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{-1}\right]{,}\left[\left[{2}{,}{2}\right]{,}{{t}}^{{a}}\right]{,}\left[\left[{3}{,}{3}\right]{,}{{t}}^{{b}}\right]{,}\left[\left[{4}{,}{4}\right]{,}{{t}}^{{c}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M2}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{-1}\right]{,}\left[\left[{2}{,}{2}\right]{,}{{t}}^{{a}}\right]{,}\left[\left[{3}{,}{3}\right]{,}{{t}}^{{b}}\right]{,}\left[\left[{4}{,}{4}\right]{,}{{t}}^{{c}}\right]\right]\right]\right)$ (3.5)

Set the infolevel for the InfinitesimalHolonomy to 2 to view the number of holonomy matrices calculated at each derivative order of curvature.

 M2 > ${\mathrm{infolevel}}_{\mathrm{InfinitesimalHolonomy}}â‰”2$
 ${{\mathrm{infolevel}}}_{{\mathrm{DifferentialGeometry:-Tensor:-InfinitesimalHolonomy}}}{:=}{2}$ (3.6)

We see that the curvature tensor generates 6 holonomy matrices and that no more matrices are added from the derivatives of curvature.

Since the metric coefficients depend only upon $t$, we need only specific an initial value for this coordinate.

 M2 > $\mathrm{InfHol2}â‰”\mathrm{InfinitesimalHolonomy}\left(\mathrm{g2},\left[t=1\right]\right)$
 Calculating the derivatives of curvature at order 0      The dimension of the holonomy algebra at order 0 is 6
 M2 > $\mathrm{simplify}\left(\mathrm{Tools}:-\mathrm{CanonicalBasis}\left(\mathrm{InfHol2}\right)\right)$

Note that if and , then the first 3 matrices in $\mathrm{InfHol2}$ vanish. Let us re-compute the infinitesimal holonomy for these special parameter values .

 M2 > $\mathrm{g2a}â‰”\mathrm{evalDG}\left(\mathrm{subs}\left(\left[a=2,b=2,c=2\right],{t}^{2}\mathrm{dx}&t\mathrm{dx}+{t}^{b}\mathrm{dy}&t\mathrm{dy}+{t}^{c}\mathrm{dz}&t\mathrm{dz}-\mathrm{dt}&t\mathrm{dt}\right)\right)$
 ${\mathrm{g2a}}{:=}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M2}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{-1}\right]{,}\left[\left[{2}{,}{2}\right]{,}{{t}}^{{2}}\right]{,}\left[\left[{3}{,}{3}\right]{,}{{t}}^{{2}}\right]{,}\left[\left[{4}{,}{4}\right]{,}{{t}}^{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M2}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{-1}\right]{,}\left[\left[{2}{,}{2}\right]{,}{{t}}^{{2}}\right]{,}\left[\left[{3}{,}{3}\right]{,}{{t}}^{{2}}\right]{,}\left[\left[{4}{,}{4}\right]{,}{{t}}^{{2}}\right]\right]\right]\right)$ (3.7)

This time we shall set infolevel to 3 to obtain the holonomy matrices that are calculated at each order.

 M2 > ${\mathrm{infolevel}}_{\mathrm{InfinitesimalHolonomy}}â‰”3$
 ${{\mathrm{infolevel}}}_{{\mathrm{DifferentialGeometry:-Tensor:-InfinitesimalHolonomy}}}{:=}{3}$ (3.8)

Now the curvature itself generates just 3 holonomy matrices . Three more are generated by the derivative of curvature.

 M2 > $\mathrm{InfHol2a}â‰”\mathrm{InfinitesimalHolonomy}\left(\mathrm{g2a},\left[t=1\right]\right)$
 Calculating the derivatives of curvature at order 0      The dimension of the holonomy algebra at order 0 is 3      Matrix 1: [[0, 0, 0, 0], [0, 0, 1, 0], [0, -1, 0, 0], [0, 0, 0, 0]]      Matrix 2: [[0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 0], [0, -1, 0, 0]]      Matrix 3: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, -1, 0]] Calculating the derivatives of curvature at order 1      The dimension of the holonomy algebra at order 1 is 6      Matrix 1: [[0, 0, 0, 0], [0, 0, 1, 0], [0, -1, 0, 0], [0, 0, 0, 0]]      Matrix 1: [[0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 0], [0, -1, 0, 0]]      Matrix 1: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, -1, 0]]      Matrix 1: [[0, 0, t, 0], [0, 0, 0, 0], [1/t, 0, 0, 0], [0, 0, 0, 0]]      Matrix 1: [[0, -t, 0, 0], [-1/t, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]      Matrix 1: [[0, 0, 0, t], [0, 0, 0, 0], [0, 0, 0, 0], [1/t, 0, 0, 0]]

Example 3.

In this example we calculate the holonomy of a metric containing a functionwhich is the solution to a second order ODE . The keyword argument auxilaryequations is used to simplify the curvature tensor and its derivatives by the given ODE.

 M2 > $\mathrm{DGsetup}\left(\left[x,y,u,v\right],\mathrm{M3}\right):$
 M3 > $\mathrm{g3}â‰”\mathrm{evalDG}\left(C\left(u\right)\left(\mathrm{dx}&t\mathrm{dx}+\mathrm{dy}&t\mathrm{dy}\right)+\mathrm{du}&s\mathrm{dv}\right)$
 ${\mathrm{g3}}{:=}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M3}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{C}{}\left({u}\right)\right]{,}\left[\left[{2}{,}{2}\right]{,}{C}{}\left({u}\right)\right]{,}\left[\left[{3}{,}{4}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{4}{,}{3}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M3}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{C}{}\left({u}\right)\right]{,}\left[\left[{2}{,}{2}\right]{,}{C}{}\left({u}\right)\right]{,}\left[\left[{3}{,}{4}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{4}{,}{3}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right)$ (3.9)
 M3 > $\mathrm{InfHol3}â‰”\mathrm{InfinitesimalHolonomy}\left(\mathrm{g3},\left[u=1\right],\mathrm{auxiliaryequations}=\left[\frac{{ⅆ}^{2}}{ⅆ{u}^{2}}C\left(u\right)=\frac{bC\left(u\right)}{{u}^{2}}\right]\right)$
 Calculating the derivatives of curvature at order 0      The dimension of the holonomy algebra at order 0 is 2      Matrix 1: [[0, 0, -1/4*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u)^2, 0], [0, 0, 0, 0], [0, 0, 0, 0], [1/2*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u), 0, 0, 0]]      Matrix 2: [[0, 0, 0, 0], [0, 0, -1/4*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u)^2, 0], [0, 0, 0, 0], [0, 1/2*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u), 0, 0]] Calculating the derivatives of curvature at order 1      The dimension of the holonomy algebra at order 1 is 2      Matrix 1: [[0, 0, -1/4*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u)^2, 0], [0, 0, 0, 0], [0, 0, 0, 0], [1/2*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u), 0, 0, 0]]      Matrix 1: [[0, 0, 0, 0], [0, 0, -1/4*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u)^2, 0], [0, 0, 0, 0], [0, 1/2*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u), 0, 0]]
 M3 > $\mathrm{Tools}:-\mathrm{CanonicalBasis}\left(\mathrm{InfHol3}\right)$

We can include initial conditions along with the ODE (which must be listed after the equation) if we wish to determine the holonomy at a specific point$.$

 M3 > $\mathrm{InfHol3}â‰”\mathrm{InfinitesimalHolonomy}\left(\mathrm{g3},\left[u=1\right],\mathrm{auxiliaryequations}=\left[\frac{{ⅆ}^{2}}{ⅆ{u}^{2}}C\left(u\right)=\frac{bC\left(u\right)}{{u}^{2}},\genfrac{}{}{0}{}{\frac{ⅆ}{ⅆu}C\left(u\right)}{\phantom{u=1}}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}|\phantom{\rule[-0.0ex]{0.1em}{0.0ex}}\genfrac{}{}{0}{}{\phantom{\frac{ⅆ}{ⅆu}C\left(u\right)}}{u=1}=\mathrm{α},C\left(1\right)=\mathrm{β}\right],\mathrm{holonomyatpoint}="yes"\right)$
 Calculating the derivatives of curvature at order 0      The dimension of the holonomy algebra at order 0 is 2      Matrix 1: [[0, 0, -1/4*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u)^2, 0], [0, 0, 0, 0], [0, 0, 0, 0], [1/2*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u), 0, 0, 0]]      Matrix 2: [[0, 0, 0, 0], [0, 0, -1/4*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u)^2, 0], [0, 0, 0, 0], [0, 1/2*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u), 0, 0]] Calculating the derivatives of curvature at order 1      The dimension of the holonomy algebra at order 1 is 2      Matrix 1: [[0, 0, -1/4*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u)^2, 0], [0, 0, 0, 0], [0, 0, 0, 0], [1/2*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u), 0, 0, 0]]      Matrix 1: [[0, 0, 0, 0], [0, 0, -1/4*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u)^2, 0], [0, 0, 0, 0], [0, 1/2*(-diff(C(u),u)^2*u^2+2*b*C(u)^2)/u^2/C(u), 0, 0]]

Example 4.

In this example we calculate the structure constants for the holonomy algebra from Example 1 and check that this Lie algebra is decomposable (see LieAlgebraData and Query)

Here is the metric and the holonomy matrices.

 M3 > $\mathrm{g1}$
 ${\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{2}{,}{2}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{3}{,}{3}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{4}{,}{4}\right]{,}{{u}}^{{3}}\right]{,}\left[\left[{5}{,}{5}\right]{,}{{u}}^{{3}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{2}{,}{2}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{3}{,}{3}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{4}{,}{4}\right]{,}{{u}}^{{3}}\right]{,}\left[\left[{5}{,}{5}\right]{,}{{u}}^{{3}}\right]\right]\right]\right)$ (3.10)
 M3 > $\mathrm{InfHol1a}$
 M1 > $\mathrm{LD}â‰”\mathrm{LieAlgebraData}\left(\mathrm{InfHol1a},\mathrm{hol1}\right)$
 ${\mathrm{LD}}{:=}\left[\left[{\mathrm{e1}}{,}{\mathrm{e2}}\right]{=}{-}{\mathrm{e3}}{,}\left[{\mathrm{e1}}{,}{\mathrm{e3}}\right]{=}{\mathrm{e2}}{,}\left[{\mathrm{e2}}{,}{\mathrm{e3}}\right]{=}{-}{\mathrm{e1}}\right]$ (3.11)
 M1 > $\mathrm{DGsetup}\left(\mathrm{LD}\right)$
 ${\mathrm{Lie algebra: hol1}}$ (3.12)
 hol1 > $\mathrm{Query}\left("Indecomposable"\right)$
 ${\mathrm{false}}$ (3.13)

Example 5.

We continue with Example 1. We calculate the covariantly constant symmetric rank 2 tensor fields for the metric ${g}_{1}$. First we do this directly. Then we repeat the calculation using the command InvariantTensorsAtAPoint to first find the symmetric tensors which are invariant with respect to the holonomy matrices.

 hol1 > $Câ‰”\mathrm{Christoffel}\left(\mathrm{g1}\right)$
 ${C}{:=}{\mathrm{_DG}}{}\left(\left[\left[{"connection"}{,}{\mathrm{M1}}{,}\left[\left[{"con_bas"}{,}{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}{,}{1}\right]{,}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{1}{,}{2}{,}{2}\right]{,}{-}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{1}{,}{3}{,}{3}\right]{,}{-}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{2}{,}{1}{,}{2}\right]{,}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{2}{,}{2}{,}{1}\right]{,}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{3}{,}{1}{,}{3}\right]{,}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{3}{,}{3}{,}{1}\right]{,}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{4}{,}{4}{,}{4}\right]{,}\frac{{3}}{{2}{}{u}}\right]{,}\left[\left[{4}{,}{5}{,}{5}\right]{,}{-}\frac{{3}}{{2}{}{u}}\right]{,}\left[\left[{5}{,}{4}{,}{5}\right]{,}\frac{{3}}{{2}{}{u}}\right]{,}\left[\left[{5}{,}{5}{,}{4}\right]{,}\frac{{3}}{{2}{}{u}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"connection"}{,}{\mathrm{M1}}{,}\left[\left[{"con_bas"}{,}{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}{,}{1}\right]{,}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{1}{,}{2}{,}{2}\right]{,}{-}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{1}{,}{3}{,}{3}\right]{,}{-}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{2}{,}{1}{,}{2}\right]{,}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{2}{,}{2}{,}{1}\right]{,}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{3}{,}{1}{,}{3}\right]{,}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{3}{,}{3}{,}{1}\right]{,}\frac{{3}}{{2}{}{x}}\right]{,}\left[\left[{4}{,}{4}{,}{4}\right]{,}\frac{{3}}{{2}{}{u}}\right]{,}\left[\left[{4}{,}{5}{,}{5}\right]{,}{-}\frac{{3}}{{2}{}{u}}\right]{,}\left[\left[{5}{,}{4}{,}{5}\right]{,}\frac{{3}}{{2}{}{u}}\right]{,}\left[\left[{5}{,}{5}{,}{4}\right]{,}\frac{{3}}{{2}{}{u}}\right]\right]\right]\right)$ (3.14)
 M1 > $Qâ‰”\mathrm{GenerateSymmetricTensors}\left(\left[\mathrm{dx},\mathrm{dy},\mathrm{dz},\mathrm{du},\mathrm{dv}\right],2\right)$
 ${Q}{:=}\left[{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\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]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\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]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{3}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{3}{,}{1}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{3}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{3}{,}{1}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{4}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{4}{,}{1}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{4}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{4}{,}{1}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{5}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{5}{,}{1}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{5}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{5}{,}{1}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{2}{,}{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{2}{,}{2}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{2}{,}{3}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{3}{,}{2}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{2}{,}{3}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{3}{,}{2}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{2}{,}{4}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{4}{,}{2}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{2}{,}{4}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{4}{,}{2}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{2}{,}{5}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{5}{,}{2}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{2}{,}{5}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{5}{,}{2}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{3}{,}{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{3}{,}{3}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{3}{,}{4}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{4}{,}{3}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{3}{,}{4}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{4}{,}{3}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{3}{,}{5}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{5}{,}{3}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{3}{,}{5}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{5}{,}{3}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{4}{,}{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{4}{,}{4}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{4}{,}{5}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{5}{,}{4}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{4}{,}{5}\right]{,}\frac{{1}}{{2}}\right]{,}\left[\left[{5}{,}{4}\right]{,}\frac{{1}}{{2}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{5}{,}{5}\right]{,}{1}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{5}{,}{5}\right]{,}{1}\right]\right]\right]\right)\right]$ (3.15)
 M1 > $\mathrm{CovariantlyConstantTensors}\left(C,Q\right)$
 $\left[{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{4}{,}{4}\right]{,}{{u}}^{{3}}\right]{,}\left[\left[{5}{,}{5}\right]{,}{{u}}^{{3}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{4}{,}{4}\right]{,}{{u}}^{{3}}\right]{,}\left[\left[{5}{,}{5}\right]{,}{{u}}^{{3}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{2}{,}{2}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{3}{,}{3}\right]{,}{{x}}^{{3}}\right]\right]\right]\right){,}{\mathrm{_DG}}{}\left(\left[\left[{"tensor"}{,}{\mathrm{M1}}{,}\left[\left[{"cov_bas"}{,}{"cov_bas"}\right]{,}\left[\right]\right]\right]{,}\left[\left[\left[{1}{,}{1}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{2}{,}{2}\right]{,}{{x}}^{{3}}\right]{,}\left[\left[{3}{,}{3}\right]{,}{{x}}^{{3}}\right]\right]\right]\right)\right]$ (3.16)
 M1 > $\mathrm{InvQ}â‰”\mathrm{InvariantTensorsAtAPoint}\left(\mathrm{InfHol1a},Q\right)$
 ${\mathrm{InvQ}}{:=}\left[{\mathrm{du}}{}{\mathrm{du}}{+}{\mathrm{dv}}{}{\mathrm{dv}}{,}{\mathrm{dx}}{}{\mathrm{dx}}{+}{\mathrm{dy}}{}{\mathrm{dy}}{+}{\mathrm{dz}}{}{\mathrm{dz}}\right]$ (3.17)
 M1 > $\mathrm{CovariantlyConstantTensors}\left(C,\mathrm{InvQ}\right)$
 $\left[{{x}}^{{3}}{}{\mathrm{dx}}{}{\mathrm{dx}}{+}{{x}}^{{3}}{}{\mathrm{dy}}{}{\mathrm{dy}}{+}{{x}}^{{3}}{}{\mathrm{dz}}{}{\mathrm{dz}}{,}{{u}}^{{3}}{}{\mathrm{du}}{}{\mathrm{du}}{+}{{u}}^{{3}}{}{\mathrm{dv}}{}{\mathrm{dv}}\right]$ (3.18)
 M1 > $\mathrm{nops}\left(Q\right)$
 ${15}$ (3.19)

In the direct approach, the command CovariantlyConstantTensors creates the general symmetry rank 2 tensor as a linear combination of the 15 elements of the list . It then generates a system of linear PDE for 15 functions of 5 variables arising from the covariantly constant tensor condition. In the second approach, the system of PDE generated involves only 2 functions of 5 variables.