{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 23. Curvature\n",
"\n",
"This notebook is part of the [Introduction to manifolds in SageMath](https://sagemanifolds.obspm.fr/intro_to_manifolds.html) by Andrzej Chrzeszczyk (Jan Kochanowski University of Kielce, Poland)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'SageMath version 9.6, Release Date: 2022-05-15'"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"version()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Consider first the case of **Euclidean connection** (notebook 21).\n",
"\n",
"Recall that for an open subset $U\\subset R^n$, with Cartesian coordinate system $(U,x^1,\\ldots,x^n)$ and vector fields $X,Y\\in\\mathfrak{X}(U)$, $Y=Y^k \\frac{\\partial}{\\partial x^k}$, we defined the Euclidean connection by $D_XY=X(Y^k)\\frac{\\partial}{\\partial x^k}$.\n",
"\n",
"From this definition it follows that\n",
"$$\n",
"D_XD_YZ\n",
"=X(Y(Z^k))\\frac{\\partial}{\\partial x^k},\\quad \\text{ for }\n",
"X,Y,Z\\in\\mathfrak{X}(U).\n",
"$$\n",
"In fact, from the definition of $D_YZ$ it follows that if we put \n",
"$\\tilde{Y}^k=Y(Z^k)$, then\n",
"$$D_XD_YZ=D_X(Y(Z^k)\\frac{\\partial}{\\partial x^k})\n",
"=D_X(\\tilde{Y}^k\\frac{\\partial}{\\partial x^k})\n",
"=X(\\tilde{Y}^k)\\frac{\\partial}{\\partial x^k}=\n",
"X(Y(Z^k))\\frac{\\partial}{\\partial x^k}.\n",
"$$\n",
"\n",
"Using this representation for iterated Euclidean connection we can see that\n",
"$$D_XD_YZ-D_YD_XZ\n",
"=X(Y(Z^k))\\frac{\\partial}{\\partial x^k}\n",
"-Y(X(Z^k))\\frac{\\partial}{\\partial x^k}\n",
"=[X,Y](Z^k)\\frac{\\partial}{\\partial x^k}\n",
"=D_{[X,Y]}Z.\n",
"$$\n",
" i.e.\n",
" \\begin{equation}\n",
" D_XD_YZ-D_YD_XZ\n",
"-D_{[X,Y]}Z=0.\n",
"\\tag{*}\n",
"\\end{equation}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Recall also that for general connection $\\ \\nabla\\ $ and general vector fields $\\displaystyle X=X^i\\frac{∂}{∂x^i}, Y=Y^j\\frac{∂}{∂x^j}$ we have $\\displaystyle ∇_X Y = (X^i\\frac{∂}{∂x^i} Y^k + Γ^k_{ij} X^i Y^j )\\frac{∂}{∂x^k}$,\n",
"where $Γ^k_{ij}$ are defined by \n",
"$\\displaystyle ∇_{\\frac{∂}{∂x^i}} \\frac{∂}{∂x^j} = Γ^k_{ij}\\frac{∂} {∂x^k}$ and consequently the equality $(*)$ is not true. Nevertheless the left hand side of $(*)$ can be used as a kind of \n",
"measure of \"flatness\" of the manifold\n",
"or a measure how much the geometry of the manifold differs from the geometry of the Euclidean space."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"\n",
"### Curvature map\n",
"\n",
"
\n",
"\n",
"The **curvature** $R$, of the connection ∇ is a map that associates to each pair\n",
"of vector fields an operator from $\\mathfrak{X}(M)$ into itself, given by\n",
"\n",
"\\begin{equation}\n",
"R(X, Y)Z = ∇_X ∇_Y Z − ∇_Y ∇_X Z− ∇_{[X,Y]}Z,\\quad\n",
"\\text{for}\\ X, Y, Z ∈ \\mathfrak{X}(M).\n",
"\\tag{23.1}\n",
"\\end{equation}\n",
"\n",
"From the properties of the covariant derivative and Lie bracket it follows\n",
"\n",
"$$\n",
"R(X, Y) = −R(Y, X)\\\\\n",
"$$\n",
"To prove the tensorial property (see notebook 13) of $R$ , we need to show that\n",
"$R(X, Y )Z$ is multilinear over $C^∞ (M )$ in each of the three vector fields. First we show linearity for the $X$ variable, from which linearity immediately follows for the $Y$\n",
"variable.\n",
"
\n",
"Let $f_1 , f_2 ∈ C^∞ (M ).$ Then\n",
"\n",
"$$R(f_1 X_1 + f_2 X_2 , Y )Z \\\\\n",
"=\\nabla_{f_1X_1+f_2X_2}\\nabla_YZ-\\nabla_Y\\nabla_{f_1X_1+f2X_2}Z-\n",
"\\nabla_{[f_1X1+f_2X_2,Y]}Z\n",
"\\\\\n",
"= (f_1 ∇_{X_1} + f_2 ∇_{X_2} )∇_Y Z\n",
"-∇_Y (f_1 ∇_{X_1} + f_2 ∇_{X_2} )Z − ∇_{[f_1 X_1 ,Y ]+[f_2 X_2 ,Y ]} Z.\n",
"$$\n",
"\n",
"Since (cf. notebook 12) $\\ [f X , Y ] = f [X , Y ] − Y (f )X $, we have\n",
"\n",
"$$\n",
"R(f_1 X_1 + f_2 X_2 , Y )Z\n",
"= f_1 ∇_{X_1} ∇_Y Z + f_2 ∇_{X_2} ∇_Y Z\\\\ − f_1 ∇_Y ∇_{X_1} Z − Y (f_1 )∇_{X_1}Z\n",
"− f_2 ∇_Y ∇_{X_2} Z − Y (f_2 )∇_{X_2} Z\\\\ − ∇_{f_1 [X_1 ,Y ]−Y (f_1 )X_1} Z − ∇_{f_2[X_2 ,Y ]−Y (f_2 )X_2} Z\\\\\n",
"=f_1 ∇_{X_1} ∇_Y Z − f_1 ∇_Y ∇_{X_1} Z − f_1 ∇_{[X_1 ,Y ]} Z\\\\ \n",
"+ f_2 ∇_{X_2} ∇_Y Z − f_2 ∇_Y ∇_{X_2} Z − f_2 ∇_{[X_2 ,Y ]}Z\\\\\n",
"− Y (f_1 )∇_{X_1} Z − Y (f_2 )∇_{X_2} Z + Y (f_1 )∇_{X_1} Z + Y (f_2 )∇_{X_2} Z\\\\\n",
"= f_1 R(X_1 , Y )Z + f_2 R(X_2 , Y )Z.\n",
"$$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"Next we check the linearity for the $Z$ variable\n",
"\n",
"$$R(X, Y)( f_1 Z_1+f_2Z_2)\\\\\n",
"=\n",
"∇_X ∇_Y (f_1 Z_1+f_2Z_2) − ∇_Y ∇_X (f_1 Z_1+f_2Z_2) \n",
"− ∇_{[X,Y ]} (f_1 Z_1+f_2Z_2)\\\\\n",
"=∇_X (Y (f_1 )Z_1+ f_1 ∇_Y Z_1)\n",
"− ∇_Y (X(f_1 )Z_1 + f_1 ∇_X Z_1)\n",
"-[X,Y](f_1)Z_1-f_1 ∇_{[X,Y]}Z_1\\\\\n",
"+∇_X (Y (f_2 )Z_2+ f_2 ∇_Y Z_2)\n",
"− ∇_Y (X(f_2 )Z_2 + f_2 ∇_X Z_2)\n",
"-[X,Y](f_2)Z_2-f_2 ∇_{[X,Y]}Z_2\\\\\n",
"=X(Y (f_1 ))Z_1 + Y (f_1)∇_X Z_1 + X(f_1 )∇_Y Z_1 + f_1∇_X ∇_Y Z_1\\\\\n",
"− Y (X(f_1))Z_1 − X(f_1) ∇_Y Z_1 − Y (f_1) ∇_X Z_1 − f_1∇_Y ∇_X Z_1\\\\\n",
"− (X(Y (f_1))X − Y (X(f_1))Z_1 − f_1 ∇_{[X,Y ]} Z_1\\\\\n",
"+X(Y (f_2 ))Z_2 + Y (f_2)∇_X Z_2 + X(f_2 )∇_Y Z_2 + f_2∇_X ∇_Y Z_2\\\\\n",
"− Y (X(f_2))Z_2 − X(f_2) ∇_Y Z_2 − Y (f_2) ∇_X Z_2 − f_2∇_Y ∇_X Z_2\\\\\n",
"− (X(Y (f_2))X − Y (X(f_2))Z_2 − f_2 ∇_{[X,Y ]} Z_2\\\\\n",
"= f_1 (∇_X ∇_Y Z_1 − ∇_Y ∇_X Z_1 − ∇_{[X,Y ]} Z_1)\\\\\n",
"+f_2 (∇_X ∇_Y Z_2 − ∇_Y ∇_X Z_2 − ∇_{[X,Y ]} Z_2)\\\\\n",
"=f_1R(X,Y)Z_1+f_2R(X,Y)Z_2.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"### Curvature tensor of type $T^{(1,3)}M$\n",
"\n",
"
\n",
"\n",
"\n",
"Since $R$ takes its values in $\\mathfrak{X}(M)$, it does not satisfy the definition of tensor field (which takes its values in $C^\\infty(M) )$, however, $R$ is equivalent to the tensor field of type $T^{(1,3)}M$ defined by\n",
"$\\tilde{R}(α, X, Y, Z) ≡ α(R(X, Y)Z).$ \n",
"\n",
"**Remark.** In `SageMath Manifolds` the method `riemann` returns this $(1,3)$-type tensor.\n",
"\n",
"A connection $∇$ is **flat** if its curvature tensor is zero.\n",
"\n",
"
\n",
"\n",
"### Curvature in local coordinates\n",
"\n",
"
\n",
"\n",
"If $X=X^i\\frac{\\partial}{\\partial x^i},\n",
"Y=Y^j\\frac{\\partial}{\\partial x^j},\n",
"Z=Z^k\\frac{\\partial}{\\partial x^k},$ then \n",
"\n",
"$$R(X, Y)Z = X^i Y^j Z^k R^m_{kij}\\frac{\\partial}{\\partial x^m},$$ where\n",
"\n",
"\\begin{equation}\n",
"R^m_{kij}=\\frac{\\partial \\Gamma^m_{kj}}{\\partial x^i}\n",
"-\\frac{\\partial \\Gamma^m_{ki}}{\\partial x^j}\n",
"+\\Gamma^m_{li}\\Gamma^l_{kj}\n",
"-\\Gamma^m_{lj}\\Gamma^l_{ki}\n",
"\\tag{23.2}\n",
"\\end{equation}\n",
"\n",
"\n",
"In fact, from (23.1), the definition of Christoffel symbols and the relation $[\\frac{\\partial}{\\partial x^i},\\frac{\\partial}{\\partial x^j}]=0$ we have\n",
"\n",
"$$\\displaystyle\n",
"R(\\frac{\\partial}{\\partial x^i},\n",
"\\frac{\\partial}{\\partial x^j})\n",
"\\frac{\\partial}{\\partial x^k}=\\displaystyle\n",
"=\\nabla_{\\frac{\\partial}{\\partial x^i}}\n",
"\\nabla_{\\frac{\\partial}{\\partial x^j}}\\frac{\\partial}{\\partial x^k}\n",
"-\\nabla_{\\frac{\\partial}{\\partial x^j}}\n",
"\\nabla_{\\frac{\\partial}{\\partial x^i}}\\frac{\\partial}{\\partial x^k}\\\\\n",
"=\\displaystyle\n",
"\\nabla_{\\frac{\\partial}{\\partial x^i}}\n",
"\\Big(\\Gamma^m_{kj}\\frac{\\partial}{\\partial x^m}\\Big)\n",
"-\\nabla_{\\frac{\\partial}{\\partial x^j}}\n",
"\\Big(\\Gamma^m_{ki}\\frac{\\partial}{\\partial x^m}\\Big)\\\\\n",
"=\\Gamma^m_{kj}\\nabla_{\\frac{\\partial}{\\partial x^i}}\n",
"\\frac{\\partial}{\\partial x^m}\n",
"+\\frac{\\partial \\Gamma^m_{kj}}{\\partial x^i}\\frac{\\partial}{\\partial x^m}\n",
"-\\Gamma^m_{ki}\\nabla_{\\frac{\\partial}{\\partial x^j}}\n",
"\\frac{\\partial}{\\partial x^m}\n",
"-\\frac{\\partial \\Gamma^m_{ki}}{\\partial x^j}\\frac{\\partial}{\\partial x^m}\\\\\n",
"=\\Gamma^m_{kj}\\Gamma^l_{mi}\\frac{\\partial}{\\partial x^l}\n",
"+\\frac{\\partial \\Gamma^m_{kj}}{\\partial x^i}\n",
"\\frac{\\partial}{\\partial x^m}\n",
"-\\Gamma^m_{ki}\\Gamma^l_{mj}\\frac{\\partial}{\\partial x^l}\n",
"-\\frac{\\partial \\Gamma^m_{ki}}{\\partial x^j}\n",
"\\frac{\\partial}{\\partial x^m}\\\\\n",
"=\\Big(\\frac{\\partial \\Gamma^m_{kj}}{\\partial x^i}\n",
"-\\frac{\\partial \\Gamma^m_{ki}}{\\partial x^j}\n",
"+\\Gamma^m_{li}\\Gamma^l_{kj}\n",
"-\\Gamma^m_{lj}\\Gamma^l_{ki}\\Big)\n",
"\\frac{\\partial}{\\partial x^m}.\n",
"$$\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"**Example 23.1**\n",
"\n",
"In notebook 21 we have noticed that \n",
"all Christoffel symbols for the Euclidean connection vanish.\n",
"Consequently the curvature for this connection vanishes."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Tensor field of type (1,3) on the 2-dimensional differentiable manifold R^2"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"R2=Manifold(2,'R^2') # manifold R^2\n",
"c_xy.=R2.chart() # Cartesian coordinates\n",
"nab=R2.affine_connection('nab') # Eucl.connection on R^2\n",
"nab[1,1,1]=0 # all coeff. zero\n",
"R=nab.riemann();R # curvature of Eucl.conect."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"R.disp() # show R"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"**Example 23.2**\n",
"\n",
"Using the standard metric of the Euclidean space, the previous example can be simplified."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Riem(g) = 0"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"E.=EuclideanSpace()\n",
"E.metric().riemann().disp()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"**Example 23.3**\n",
"\n",
"Consider the two-dimensional half-plane $y>0$ with connection coefficients defined by\n",
"$\\ \\ \\Gamma^1_{12}=\\Gamma^1_{21}=\\Gamma^2_{22}=-\\frac{1}{y}\\ \\ $\n",
"and $\\ \\ \\Gamma^2_{11}=\\frac{1}{y}.$"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"%display latex\n",
"M = Manifold(2, 'M', start_index=1) # manifold M, y>0\n",
"c_xy. = M.chart() # chart on M\n",
" # affine connection on M:\n",
"nab = M.affine_connection('nabla', r'\\nabla') "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\\(\\displaystyle \\begin{array}{lcl} \\Gamma_{\\phantom{\\, 1}\\,1\\,2}^{\\,1\\phantom{\\, 1}\\phantom{\\, 2}} & = & -\\frac{1}{y} \\\\ \\Gamma_{\\phantom{\\, 1}\\,2\\,1}^{\\,1\\phantom{\\, 2}\\phantom{\\, 1}} & = & -\\frac{1}{y} \\\\ \\Gamma_{\\phantom{\\, 2}\\,1\\,1}^{\\,2\\phantom{\\, 1}\\phantom{\\, 1}} & = & \\frac{1}{y} \\\\ \\Gamma_{\\phantom{\\, 2}\\,2\\,2}^{\\,2\\phantom{\\, 2}\\phantom{\\, 2}} & = & -\\frac{1}{y} \\end{array}\\)"
],
"text/latex": [
"$\\displaystyle \\begin{array}{lcl} \\Gamma_{\\phantom{\\, 1}\\,1\\,2}^{\\,1\\phantom{\\, 1}\\phantom{\\, 2}} & = & -\\frac{1}{y} \\\\ \\Gamma_{\\phantom{\\, 1}\\,2\\,1}^{\\,1\\phantom{\\, 2}\\phantom{\\, 1}} & = & -\\frac{1}{y} \\\\ \\Gamma_{\\phantom{\\, 2}\\,1\\,1}^{\\,2\\phantom{\\, 1}\\phantom{\\, 1}} & = & \\frac{1}{y} \\\\ \\Gamma_{\\phantom{\\, 2}\\,2\\,2}^{\\,2\\phantom{\\, 2}\\phantom{\\, 2}} & = & -\\frac{1}{y} \\end{array}$"
],
"text/plain": [
"Gam^1_12 = -1/y \n",
"Gam^1_21 = -1/y \n",
"Gam^2_11 = 1/y \n",
"Gam^2_22 = -1/y "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
" # Christoffel symbols:\n",
"nab[1,1,2], nab[1,2,1],nab[2,2,2],nab[2,1,1] = -1/y, -1/y,-1/y,1/y\n",
"%display latex\n",
"nab.display(coordinate_labels=False) # show Christoffel symbols\n",
" # (only non-zero ones)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Using (23.2) with $\\ (x^1,x^2)=(x,y)\\ $ to compute $R^1_{212}$ we obtain\n",
"\n",
"$$R^1_{212}=\\frac{\\partial \\Gamma^1_{22}}{\\partial x^1}\n",
"-\\frac{\\partial \\Gamma^1_{21}}{\\partial x^2}\n",
"+\\Gamma^1_{11}\\Gamma^1_{22}+\\Gamma^1_{21}\\Gamma^2_{22}\n",
"-\\Gamma^1_{12}\\Gamma^1_{21}-\\Gamma^1_{22}\\Gamma^2_{21}\\\\\n",
"=0-\\frac{1}{y^2}+0\\cdot 0+(-\\frac{1}{y})(-\\frac{1}{y})\n",
"-(-\\frac{1}{y})(-\\frac{1}{y})-0\\cdot 0=-\\frac{1}{y^2}.\n",
"$$\n",
"\n",
"The remaining components can be found analogously (one can use antisymmetry of $R^m_{kij}$ with respect to $i,j$)."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tensor field of type (1,3) on the 2-dimensional differentiable manifold M\n"
]
},
{
"data": {
"text/html": [
"\\(\\displaystyle \\begin{array}{lcl} X_{\\phantom{\\, 1}\\,2\\,1\\,2}^{\\,1\\phantom{\\, 2}\\phantom{\\, 1}\\phantom{\\, 2}} & = & -\\frac{1}{y^{2}} \\\\ X_{\\phantom{\\, 1}\\,2\\,2\\,1}^{\\,1\\phantom{\\, 2}\\phantom{\\, 2}\\phantom{\\, 1}} & = & \\frac{1}{y^{2}} \\\\ X_{\\phantom{\\, 2}\\,1\\,1\\,2}^{\\,2\\phantom{\\, 1}\\phantom{\\, 1}\\phantom{\\, 2}} & = & \\frac{1}{y^{2}} \\\\ X_{\\phantom{\\, 2}\\,1\\,2\\,1}^{\\,2\\phantom{\\, 1}\\phantom{\\, 2}\\phantom{\\, 1}} & = & -\\frac{1}{y^{2}} \\end{array}\\)"
],
"text/latex": [
"$\\displaystyle \\begin{array}{lcl} X_{\\phantom{\\, 1}\\,2\\,1\\,2}^{\\,1\\phantom{\\, 2}\\phantom{\\, 1}\\phantom{\\, 2}} & = & -\\frac{1}{y^{2}} \\\\ X_{\\phantom{\\, 1}\\,2\\,2\\,1}^{\\,1\\phantom{\\, 2}\\phantom{\\, 2}\\phantom{\\, 1}} & = & \\frac{1}{y^{2}} \\\\ X_{\\phantom{\\, 2}\\,1\\,1\\,2}^{\\,2\\phantom{\\, 1}\\phantom{\\, 1}\\phantom{\\, 2}} & = & \\frac{1}{y^{2}} \\\\ X_{\\phantom{\\, 2}\\,1\\,2\\,1}^{\\,2\\phantom{\\, 1}\\phantom{\\, 2}\\phantom{\\, 1}} & = & -\\frac{1}{y^{2}} \\end{array}$"
],
"text/plain": [
"X^1_212 = -1/y^2 \n",
"X^1_221 = y^(-2) \n",
"X^2_112 = y^(-2) \n",
"X^2_121 = -1/y^2 "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Riem = nab.riemann(); print(Riem) # curvature (1,3) tensor\n",
"Riem.display_comp(coordinate_labels=False) # show nonzero components"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"**Example 23.4** \n",
"\n",
"Consider the plane $R^2$ with Christoffel symbols\n",
"$$Γ^1_{11}= Γ^1_{22}=\\frac{4u}{1+u^2+4v^2},\\\\\n",
"Γ^2_{11}= Γ^2_{22}=\\frac{4v}{1+u^2+4v^2},\n",
"$$\n",
"and the remaining symbols equal to 0."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\\(\\displaystyle \\begin{array}{lcl} \\Gamma_{\\phantom{\\, 1}\\,1\\,1}^{\\,1\\phantom{\\, 1}\\phantom{\\, 1}} & = & \\frac{4 \\, u}{4 \\, u^{2} + 4 \\, v^{2} + 1} \\\\ \\Gamma_{\\phantom{\\, 1}\\,1\\,2}^{\\,1\\phantom{\\, 1}\\phantom{\\, 2}} & = & 0 \\\\ \\Gamma_{\\phantom{\\, 1}\\,2\\,1}^{\\,1\\phantom{\\, 2}\\phantom{\\, 1}} & = & 0 \\\\ \\Gamma_{\\phantom{\\, 1}\\,2\\,2}^{\\,1\\phantom{\\, 2}\\phantom{\\, 2}} & = & \\frac{4 \\, u}{4 \\, u^{2} + 4 \\, v^{2} + 1} \\\\ \\Gamma_{\\phantom{\\, 2}\\,1\\,1}^{\\,2\\phantom{\\, 1}\\phantom{\\, 1}} & = & \\frac{4 \\, v}{4 \\, u^{2} + 4 \\, v^{2} + 1} \\\\ \\Gamma_{\\phantom{\\, 2}\\,1\\,2}^{\\,2\\phantom{\\, 1}\\phantom{\\, 2}} & = & 0 \\\\ \\Gamma_{\\phantom{\\, 2}\\,2\\,1}^{\\,2\\phantom{\\, 2}\\phantom{\\, 1}} & = & 0 \\\\ \\Gamma_{\\phantom{\\, 2}\\,2\\,2}^{\\,2\\phantom{\\, 2}\\phantom{\\, 2}} & = & \\frac{4 \\, v}{4 \\, u^{2} + 4 \\, v^{2} + 1} \\end{array}\\)"
],
"text/latex": [
"$\\displaystyle \\begin{array}{lcl} \\Gamma_{\\phantom{\\, 1}\\,1\\,1}^{\\,1\\phantom{\\, 1}\\phantom{\\, 1}} & = & \\frac{4 \\, u}{4 \\, u^{2} + 4 \\, v^{2} + 1} \\\\ \\Gamma_{\\phantom{\\, 1}\\,1\\,2}^{\\,1\\phantom{\\, 1}\\phantom{\\, 2}} & = & 0 \\\\ \\Gamma_{\\phantom{\\, 1}\\,2\\,1}^{\\,1\\phantom{\\, 2}\\phantom{\\, 1}} & = & 0 \\\\ \\Gamma_{\\phantom{\\, 1}\\,2\\,2}^{\\,1\\phantom{\\, 2}\\phantom{\\, 2}} & = & \\frac{4 \\, u}{4 \\, u^{2} + 4 \\, v^{2} + 1} \\\\ \\Gamma_{\\phantom{\\, 2}\\,1\\,1}^{\\,2\\phantom{\\, 1}\\phantom{\\, 1}} & = & \\frac{4 \\, v}{4 \\, u^{2} + 4 \\, v^{2} + 1} \\\\ \\Gamma_{\\phantom{\\, 2}\\,1\\,2}^{\\,2\\phantom{\\, 1}\\phantom{\\, 2}} & = & 0 \\\\ \\Gamma_{\\phantom{\\, 2}\\,2\\,1}^{\\,2\\phantom{\\, 2}\\phantom{\\, 1}} & = & 0 \\\\ \\Gamma_{\\phantom{\\, 2}\\,2\\,2}^{\\,2\\phantom{\\, 2}\\phantom{\\, 2}} & = & \\frac{4 \\, v}{4 \\, u^{2} + 4 \\, v^{2} + 1} \\end{array}$"
],
"text/plain": [
"Gam^1_11 = 4*u/(4*u^2 + 4*v^2 + 1) \n",
"Gam^1_12 = 0 \n",
"Gam^1_21 = 0 \n",
"Gam^1_22 = 4*u/(4*u^2 + 4*v^2 + 1) \n",
"Gam^2_11 = 4*v/(4*u^2 + 4*v^2 + 1) \n",
"Gam^2_12 = 0 \n",
"Gam^2_21 = 0 \n",
"Gam^2_22 = 4*v/(4*u^2 + 4*v^2 + 1) "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%display latex\n",
"N=Manifold(2,name='R2',start_index=1) # manifold M, dim=2\n",
"c_uv.=N.chart() # coordinates u,v\n",
"nab=N.affine_connection('nab') # connection on M\n",
"nab[:]=[[[4*u/(4*u^2 + 4*v^2 + 1), 0], # Christoffel symbols\n",
" [0, 4*u/(4*u^2 + 4*v^2 + 1)]], \n",
" [[4*v/(4*u^2 + 4*v^2 + 1), 0], \n",
" [0, 4*v/(4*u^2 + 4*v^2 + 1)]]]\n",
"nab.display(coordinate_labels=False,only_nonzero=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Compute components of the curvature $(1,3)$ tensor. At a first attempt we obtain some components non-simplified. "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\\(\\displaystyle \\begin{array}{lcl} X_{\\phantom{\\, 1}\\,1\\,1\\,2}^{\\,1\\phantom{\\, 1}\\phantom{\\, 1}\\phantom{\\, 2}} & = & \\frac{16 \\, u v}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 1}\\,1\\,2\\,1}^{\\,1\\phantom{\\, 1}\\phantom{\\, 2}\\phantom{\\, 1}} & = & -\\frac{16 \\, u v}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 1}\\,2\\,1\\,2}^{\\,1\\phantom{\\, 2}\\phantom{\\, 1}\\phantom{\\, 2}} & = & \\frac{4 \\, {\\left(4 \\, v^{2} + 1\\right)}}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 1}\\,2\\,2\\,1}^{\\,1\\phantom{\\, 2}\\phantom{\\, 2}\\phantom{\\, 1}} & = & -\\frac{4 \\, {\\left(4 \\, v^{2} + 1\\right)}}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 2}\\,1\\,1\\,2}^{\\,2\\phantom{\\, 1}\\phantom{\\, 1}\\phantom{\\, 2}} & = & -\\frac{4 \\, {\\left(4 \\, u^{2} + 1\\right)}}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 2}\\,1\\,2\\,1}^{\\,2\\phantom{\\, 1}\\phantom{\\, 2}\\phantom{\\, 1}} & = & \\frac{4 \\, {\\left(4 \\, u^{2} + 1\\right)}}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 2}\\,2\\,1\\,2}^{\\,2\\phantom{\\, 2}\\phantom{\\, 1}\\phantom{\\, 2}} & = & -\\frac{16 \\, u v}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 2}\\,2\\,2\\,1}^{\\,2\\phantom{\\, 2}\\phantom{\\, 2}\\phantom{\\, 1}} & = & \\frac{16 \\, u v}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\end{array}\\)"
],
"text/latex": [
"$\\displaystyle \\begin{array}{lcl} X_{\\phantom{\\, 1}\\,1\\,1\\,2}^{\\,1\\phantom{\\, 1}\\phantom{\\, 1}\\phantom{\\, 2}} & = & \\frac{16 \\, u v}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 1}\\,1\\,2\\,1}^{\\,1\\phantom{\\, 1}\\phantom{\\, 2}\\phantom{\\, 1}} & = & -\\frac{16 \\, u v}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 1}\\,2\\,1\\,2}^{\\,1\\phantom{\\, 2}\\phantom{\\, 1}\\phantom{\\, 2}} & = & \\frac{4 \\, {\\left(4 \\, v^{2} + 1\\right)}}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 1}\\,2\\,2\\,1}^{\\,1\\phantom{\\, 2}\\phantom{\\, 2}\\phantom{\\, 1}} & = & -\\frac{4 \\, {\\left(4 \\, v^{2} + 1\\right)}}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 2}\\,1\\,1\\,2}^{\\,2\\phantom{\\, 1}\\phantom{\\, 1}\\phantom{\\, 2}} & = & -\\frac{4 \\, {\\left(4 \\, u^{2} + 1\\right)}}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 2}\\,1\\,2\\,1}^{\\,2\\phantom{\\, 1}\\phantom{\\, 2}\\phantom{\\, 1}} & = & \\frac{4 \\, {\\left(4 \\, u^{2} + 1\\right)}}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 2}\\,2\\,1\\,2}^{\\,2\\phantom{\\, 2}\\phantom{\\, 1}\\phantom{\\, 2}} & = & -\\frac{16 \\, u v}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\\\ X_{\\phantom{\\, 2}\\,2\\,2\\,1}^{\\,2\\phantom{\\, 2}\\phantom{\\, 2}\\phantom{\\, 1}} & = & \\frac{16 \\, u v}{16 \\, u^{4} + 16 \\, v^{4} + 8 \\, {\\left(4 \\, u^{2} + 1\\right)} v^{2} + 8 \\, u^{2} + 1} \\end{array}$"
],
"text/plain": [
"X^1_112 = 16*u*v/(16*u^4 + 16*v^4 + 8*(4*u^2 + 1)*v^2 + 8*u^2 + 1) \n",
"X^1_121 = -16*u*v/(16*u^4 + 16*v^4 + 8*(4*u^2 + 1)*v^2 + 8*u^2 + 1) \n",
"X^1_212 = 4*(4*v^2 + 1)/(16*u^4 + 16*v^4 + 8*(4*u^2 + 1)*v^2 + 8*u^2 + 1) \n",
"X^1_221 = -4*(4*v^2 + 1)/(16*u^4 + 16*v^4 + 8*(4*u^2 + 1)*v^2 + 8*u^2 + 1) \n",
"X^2_112 = -4*(4*u^2 + 1)/(16*u^4 + 16*v^4 + 8*(4*u^2 + 1)*v^2 + 8*u^2 + 1) \n",
"X^2_121 = 4*(4*u^2 + 1)/(16*u^4 + 16*v^4 + 8*(4*u^2 + 1)*v^2 + 8*u^2 + 1) \n",
"X^2_212 = -16*u*v/(16*u^4 + 16*v^4 + 8*(4*u^2 + 1)*v^2 + 8*u^2 + 1) \n",
"X^2_221 = 16*u*v/(16*u^4 + 16*v^4 + 8*(4*u^2 + 1)*v^2 + 8*u^2 + 1) "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Riem = nab.riemann(); # curvature (1,3) tensor\n",
"Riem.display_comp(coordinate_labels=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"so we decided to simplify each component separately and to introduce a new tensor with simplified components."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\\(\\displaystyle \\begin{array}{lcl} Riem1_{\\phantom{\\, 1}\\,2\\,1\\,1}^{\\,1\\phantom{\\, 2}\\phantom{\\, 1}\\phantom{\\, 1}} & = & -\\frac{16 \\, u v}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 1}\\,2\\,1\\,2}^{\\,1\\phantom{\\, 2}\\phantom{\\, 1}\\phantom{\\, 2}} & = & \\frac{4 \\, {\\left(4 \\, u^{2} + 1\\right)}}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 1}\\,2\\,2\\,1}^{\\,1\\phantom{\\, 2}\\phantom{\\, 2}\\phantom{\\, 1}} & = & -\\frac{4 \\, {\\left(4 \\, v^{2} + 1\\right)}}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 1}\\,2\\,2\\,2}^{\\,1\\phantom{\\, 2}\\phantom{\\, 2}\\phantom{\\, 2}} & = & \\frac{16 \\, u v}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 2}\\,1\\,1\\,1}^{\\,2\\phantom{\\, 1}\\phantom{\\, 1}\\phantom{\\, 1}} & = & \\frac{16 \\, u v}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 2}\\,1\\,1\\,2}^{\\,2\\phantom{\\, 1}\\phantom{\\, 1}\\phantom{\\, 2}} & = & -\\frac{4 \\, {\\left(4 \\, u^{2} + 1\\right)}}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 2}\\,1\\,2\\,1}^{\\,2\\phantom{\\, 1}\\phantom{\\, 2}\\phantom{\\, 1}} & = & \\frac{4 \\, {\\left(4 \\, v^{2} + 1\\right)}}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 2}\\,1\\,2\\,2}^{\\,2\\phantom{\\, 1}\\phantom{\\, 2}\\phantom{\\, 2}} & = & -\\frac{16 \\, u v}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\end{array}\\)"
],
"text/latex": [
"$\\displaystyle \\begin{array}{lcl} Riem1_{\\phantom{\\, 1}\\,2\\,1\\,1}^{\\,1\\phantom{\\, 2}\\phantom{\\, 1}\\phantom{\\, 1}} & = & -\\frac{16 \\, u v}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 1}\\,2\\,1\\,2}^{\\,1\\phantom{\\, 2}\\phantom{\\, 1}\\phantom{\\, 2}} & = & \\frac{4 \\, {\\left(4 \\, u^{2} + 1\\right)}}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 1}\\,2\\,2\\,1}^{\\,1\\phantom{\\, 2}\\phantom{\\, 2}\\phantom{\\, 1}} & = & -\\frac{4 \\, {\\left(4 \\, v^{2} + 1\\right)}}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 1}\\,2\\,2\\,2}^{\\,1\\phantom{\\, 2}\\phantom{\\, 2}\\phantom{\\, 2}} & = & \\frac{16 \\, u v}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 2}\\,1\\,1\\,1}^{\\,2\\phantom{\\, 1}\\phantom{\\, 1}\\phantom{\\, 1}} & = & \\frac{16 \\, u v}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 2}\\,1\\,1\\,2}^{\\,2\\phantom{\\, 1}\\phantom{\\, 1}\\phantom{\\, 2}} & = & -\\frac{4 \\, {\\left(4 \\, u^{2} + 1\\right)}}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 2}\\,1\\,2\\,1}^{\\,2\\phantom{\\, 1}\\phantom{\\, 2}\\phantom{\\, 1}} & = & \\frac{4 \\, {\\left(4 \\, v^{2} + 1\\right)}}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\\\ Riem1_{\\phantom{\\, 2}\\,1\\,2\\,2}^{\\,2\\phantom{\\, 1}\\phantom{\\, 2}\\phantom{\\, 2}} & = & -\\frac{16 \\, u v}{{\\left(4 \\, u^{2} + 4 \\, v^{2} + 1\\right)}^{2}} \\end{array}$"
],
"text/plain": [
"Riem1^1_211 = -16*u*v/(4*u^2 + 4*v^2 + 1)^2 \n",
"Riem1^1_212 = 4*(4*u^2 + 1)/(4*u^2 + 4*v^2 + 1)^2 \n",
"Riem1^1_221 = -4*(4*v^2 + 1)/(4*u^2 + 4*v^2 + 1)^2 \n",
"Riem1^1_222 = 16*u*v/(4*u^2 + 4*v^2 + 1)^2 \n",
"Riem1^2_111 = 16*u*v/(4*u^2 + 4*v^2 + 1)^2 \n",
"Riem1^2_112 = -4*(4*u^2 + 1)/(4*u^2 + 4*v^2 + 1)^2 \n",
"Riem1^2_121 = 4*(4*v^2 + 1)/(4*u^2 + 4*v^2 + 1)^2 \n",
"Riem1^2_122 = -16*u*v/(4*u^2 + 4*v^2 + 1)^2 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# simplification of components one by one\n",
"Riem2 = [[[[Riem[a,b,c,d].factor() for a in [1,2]] \n",
" for b in [1,2]] for c in [1,2]] for d in[1,2]];\n",
"Riem1 = N.tensor_field(1, 3, name='Riem1') # new tensor (1,3)type\n",
"Riem1[c_uv.frame(), :] = Riem2 # with simplified comp.\n",
"Riem1.display_comp(coordinate_labels=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"### Extension of curvature map to covariant tensor fields\n",
"\n",
"
\n",
"If we extend the definition $R(X, Y)t ≡ ∇_X ∇_Y t − ∇_Y ∇_X t − ∇_{[X,Y]} t$, to all tensor\n",
"fields $t\\in T^{(0,k)}M,$ then one can check that for covariant tensor fields $\\ t,s$, vector fields $\\ X,Y$ and smooth function $f$\n",
"\n",
"\\begin{equation}\n",
"\\begin{matrix}\n",
"R(X, Y)(t + s) = R(X, Y)t + R(X, Y)s,\\\\\n",
"R(X, Y)( f t) = f R(X, Y)t,\\\\\n",
"R(X, Y)(t ⊗ s) = R(X, Y)t ⊗ s + t ⊗ R(X, Y)s .\n",
"\\end{matrix}\n",
"\\tag{23.3}\n",
"\\end{equation}\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The first relation follows from\n",
"\n",
"$$ \\nabla_X\\nabla_Y(t+s)-\\nabla_Y\\nabla_X(t+s)-\\nabla_{[X,Y]}(t+s)\\\\\n",
"=\\nabla_X\\nabla_Yt+\\nabla_X\\nabla_Ys-\n",
"\\nabla_Y\\nabla_Xt+\\nabla_Y\\nabla_Xs-\\nabla_{[X,Y]}t-\\nabla_{[X,Y]}s,\n",
"$$\n",
"\n",
"the second from\n",
"\n",
"$$ \n",
"\\nabla_X\\nabla_Y(ft)-\\nabla_Y\\nabla_X(ft)-\\nabla_{[X,Y]}(ft)\\\\\n",
"=\\nabla_X(f\\nabla_yt+(Yf)t)-\\nabla_Y(f\\nabla_Xt+(Xf)t)\n",
"-f\\nabla_{[X,Y]}t-([X,Y]f)t\\\\\n",
"=f\\nabla_X\\nabla_Yt+(Xf)\\nabla_Y t +(Yf)\\nabla_Xt+(X(Yf))t\\\\\n",
"-f\\nabla_Y\\nabla_Xt-(Yf)\\nabla_Xt-(Xf)\\nabla_Y t-(X(Yf))t\\\\\n",
"-f\\nabla_{[X,Y]}t-([X,Y]f)t,\n",
"$$\n",
"\n",
"and the third from\n",
"\n",
"$$\n",
"\\nabla_X\\nabla_Y(t\\otimes s)-\\nabla_Y\\nabla_X(t\\otimes s)-\\nabla_{[X,Y]}(t\\otimes s)\\\\\n",
"=\\nabla_X(t\\otimes\\nabla_Ys+(\\nabla_Yt)\\otimes s)\n",
"-\\nabla_Y(t\\otimes\\nabla_X s+(\\nabla_X t)\\otimes s)\\\\\n",
"-t\\otimes(\\nabla_{[X,Y]}s)-(\\nabla_{[X,Y]}t)\\otimes s\\\\\n",
"=t\\otimes\\nabla_X\\nabla_Y s+(\\nabla_Xt)\\otimes(\\nabla_Y s)\n",
"+(\\nabla_X\\nabla_Y t)\\otimes s+(\\nabla_Y t)\\otimes(\\nabla_X s)\\\\\n",
"-t\\otimes\\nabla_Y\\nabla_Xs-(\\nabla_Y t)\\otimes(\\nabla_X s)\n",
"-(\\nabla_Y\\nabla_X t)\\otimes s-(\\nabla_X t)\\otimes(\\nabla_Y s)\\\\\n",
"-t\\otimes\\nabla_{[X,Y]}s-(\\nabla_{[X,Y]}t)\\otimes s.\n",
"$$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"### Bianchi identities\n",
"\n",
"
\n",
"\n",
"If $T$ is the torsion and $R$ the curvature, then \n",
"for $X, Y, Z ∈ \\mathfrak{X}(M)$, the following **first Bianchi identity** holds true.\n",
"\n",
"\\begin{equation}\n",
"\\begin{matrix}\n",
"R(X, Y)Z + R(Z, X)Y + R(Y, Z)X\\\\\n",
"= ∇_X (T (Y, Z)) + ∇_Y (T (Z, X)) + ∇_Z (T (X, Y))\\\\\n",
"+ T (X, [Y, Z]) + T (Y, [Z, X]) + T (Z, [X, Y])\n",
"\\end{matrix}\n",
"\\tag{23.4}\n",
"\\end{equation}\n",
"\n",
"In fact, from the definition of torsion we have\n",
"$$\n",
"\\nabla_XY=\\nabla_YX+[X,Y]+T(X,Y),\\\\\n",
"\\nabla_ZX=\\nabla_XZ+[Z,X]+T(Z,X),\\\\\n",
"\\nabla_YZ=\\nabla_ZY+[Y,Z]+T(Y,Z),\n",
"$$\n",
"and therefore\n",
"$$\n",
"R(X, Y)Z + R(Z, X)Y + R(Y, Z)X\\\\\n",
"=∇_X ∇_Y Z − ∇_Y ∇_X Z − ∇_{[X,Y]} Z\\\\\n",
"+∇_Y ∇_Z X − ∇_Z ∇_Y X − ∇_{[Y,Z]} X\\\\\n",
"+∇_Z ∇_X Y − ∇_X ∇_Z Y − ∇_{[Z,X]} Y\\\\\n",
"=∇_X(\\nabla_ZY+[Y,Z]+T(Y,Z))− ∇_Y ∇_X Z − ∇_{[X,Y]} Z\\\\\n",
"+∇_Y(\\nabla_XZ+[Z,X]+T(Z,X))− ∇_Z ∇_Y X − ∇_{[Y,Z]} X\\\\\n",
"+∇_Z(\\nabla_YX+[X,Y]+T(X,Y))− ∇_X ∇_Z Y − ∇_{[Z,X]} Y\n",
"$$\n",
"\\begin{equation}\n",
"\\begin{matrix}\n",
"=∇_X([Y,Z]+T(Y,Z)) − ∇_{[X,Y]} Z\\\\\n",
"+∇_Y([Z,X]+T(Z,X)) − ∇_{[Y,Z]} X\\\\\n",
"+∇_Z([X,Y]+T(X,Y)) − ∇_{[Z,X]} Y.\n",
"\\end{matrix}\n",
"\\tag{23.5}\n",
"\\end{equation}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we use the definition of torsion in the following form\n",
"\n",
"$$\n",
"T(X,[Y,Z])=\\nabla_X[Y,Z]-\\nabla_{[Y,Z]}X-[X,[Y,Z]],\\\\\n",
"T(Y,[Z,X])=\\nabla_Y[Z,X]-\\nabla_{[Z,X]}Y-[Y,[Z,X]],\\\\\n",
"T(Z,[X,Y])=\\nabla_Z[X,Y]-\\nabla_{[X,Y]}Z-[Z,[X,Y]],\\\\\n",
"$$\n",
"\n",
"then the subexpressions of (23.5) which do not contain $T$ take the form\n",
"\n",
"$$\n",
"∇_X([Y,Z]− ∇_{[Y,Z]} X = T(X,[Y,Z])+[X,[Y,Z]],\\\\\n",
"∇_Y([Z,X]− ∇_{[Z,X]} Y = T(Y,[Z,X])+[Y,[Z,X]],\\\\\n",
"∇_Z([X,Y]− ∇_{[X,Y]} Z = T(Z,[X,Y])+[Z,[X,Y]].\\\\\n",
"$$\n",
"\n",
"Using the Jacobi identity (notebook 12) we obtain (23.4)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"The **second Bianchi identity** reads as follows.\n",
"\n",
"For $X, Y, Z, W ∈ \\mathfrak{X}(M)$\n",
"\n",
"\\begin{equation}\n",
"\\begin{matrix}\n",
"∇_X( R(Y, Z)W) + ∇_Y( R(Z, X)W )+ ∇_Z( R(X, Y)W)\\\\\n",
"= R(Y, Z)∇_X W + R(Z, X)∇_Y W + R(X, Y)∇_Z W\\\\\n",
"+ R([Y, Z], X)W + R([Z, X], Y)W + R([X, Y], Z)W.\n",
"\\end{matrix}\n",
"\\tag{23.6}\n",
"\\end{equation}\n",
"\n",
"To check the identity let us note that from (23.1) it follows\n",
"\n",
"\\begin{equation}\n",
"\\begin{matrix}\n",
"R([X, Y], Z)W+\\nabla_{[[X,Y],Z]}W=\n",
"\\nabla_{[X,Y]}\\nabla_ZW-\\nabla_Z\\nabla_{[X,Y]}W,\\\\\n",
"R([Y, Z], X)W+\\nabla_{[[Y,Z],X]}W=\n",
"\\nabla_{[Y,Z]}\\nabla_XW-\\nabla_X\\nabla_{[Y,Z]}W,\\\\\n",
"R([Z, X], Y)W+\\nabla_{[[Z,X],Y]}W=\n",
"\\nabla_{[Z,X]}\\nabla_YW-\\nabla_Y\\nabla_{[Z,X]}W,\n",
"\\end{matrix}\n",
"\\tag{23.7}\n",
"\\end{equation}\n",
"\n",
"therefore (we changed the order in the second column of expressions)\n",
"\n",
"$$\n",
"∇_X( R(Y, Z)W) + ∇_Y( R(Z, X)W )+ ∇_Z( R(X, Y)W)\\\\\n",
"=∇_X(\\nabla_Y\\nabla_ZW-\\nabla_Z\\nabla_YW-\\nabla_{[Y,Z]}W)\\\\\n",
"+∇_Y(\\nabla_Z\\nabla_XW-\\nabla_X\\nabla_ZW-\\nabla_{[Z,X]}W)\\\\\n",
"+∇_Z(\\nabla_X\\nabla_YW-\\nabla_Y\\nabla_XW-\\nabla_{[X,Y]}W)\\\\\n",
"=\\nabla_X\\nabla_Y\\nabla_ZW-\\nabla_Y\\nabla_X\\nabla_ZW-\\nabla_X\\nabla_{[Y,Z]}W\\\\\n",
"+\\nabla_Y\\nabla_Z\\nabla_XW-\\nabla_Z\\nabla_Y\\nabla_XW-\\nabla_Y\\nabla_{[Z,X]}W\\\\\n",
"+\\nabla_Z\\nabla_X\\nabla_YW-\\nabla_X\\nabla_Z\\nabla_YW-\\nabla_Z\\nabla_{[X,Y]}W.\\\\\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In all three rows of the obtained sum we can recognize incomplete curvature tensors computed for $\\nabla_ZW, \\nabla_XW, \\nabla_YW$ respectively. If we subtract and add the lacking terms with covariant derivatives along the corresponding Lie brackets, we obtain the following form of the last sum\n",
"\n",
"$$\n",
"R(X,Y)\\nabla_ZW+\\nabla_{[X,Y]}\\nabla_ZW-\\nabla_X\\nabla_{[Y,Z]}W\\\\\n",
"+R(Y,Z)\\nabla_XW+\\nabla_{[Y,Z]}\\nabla_XW-\\nabla_Y\\nabla_{[Z,X]}W\\\\\n",
"+R(Z,X)\\nabla_YW+\\nabla_{[Z,X]}\\nabla_YW-\\nabla_Z\\nabla_{[X,Y]}W\\\\\n",
"$$\n",
"\n",
"In all three lines, the last two expressions are equal to the right hand sides of (23.7), therefore the obtained sum is equal\n",
"\n",
"$$\n",
"R(X,Y)\\nabla_ZW+R([X, Y], Z)W+\\nabla_{[[X,Y],Z]}W\\\\\n",
"+R(Y,Z)\\nabla_XW+R([Y, Z], X)W+\\nabla_{[[Y,Z],X]}W\\\\\n",
"+R(Z,X)\\nabla_YW+R([Z, X], Y)W+\\nabla_{[[Z,X],Y]}W.\n",
"$$\n",
"\n",
"The sum of the last column is zero according to Jacobi identity (notebook 12), so (23.6) is proved."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Bianchi identities will be used in the proof of (24.2) in the [next notebook](https://nbviewer.org/github/sagemanifolds/IntroToManifolds/blob/main/24Manifold_RiemannCurvature.ipynb)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## What's next?\n",
"\n",
"Take a look at the notebook [Riemannian curvature tensor of type (0,4)](https://nbviewer.org/github/sagemanifolds/IntroToManifolds/blob/main/24Manifold_RiemannCurvature.ipynb)."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 9.6",
"language": "sage",
"name": "sagemath"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}