I have a metric of the form, g_{\mu \nu} =

0 | 0 | 1 |
---|---|---|

0 | b_{ij} | u |

1 | u^T | f |

where $u$ and $b_{i j }$ do not depend on the first coordinate $s$. The inverse metric is g^{\mu \nu} =

b^{i j} u_i u_j - f | - u_i b^{i j} | 1 |
---|---|---|

-b^{i j}u_j | b^{i j} | 0 |

1 | 0 | 0 |

I would like to compute the Christoffel symbols I first try to followed section 2.5 in the paper, https://arxiv.org/pdf/hep-th/0701238

After the comments I have updated my code, here is the edited code and an explanation.

I wanted to split the Greek indices (${ \mu, \nu ...}$) into three parts: first: a capital Latin index that runs from 2 to $d$, second: small latin letters that run from 2 to $d-1$ and the last index $s1, s2,s3$ to the last coordinate $d$. To simplify the problem I tried first $d=4$ so for example, $\mu=1,2,3,4$, $A=2,3,4$, $i,j = 2, 3$ and $s1=4$. To do this splitting I used,

```
{\mu,\nu,\rho,\sigma,\kappa,\lambda,\eta,\chi#}::Indices(full, position=fixed, values={1,2,3,4}).
{A,B,C,D}::Indices(subspace, position=fixed, parent=full, values={2,3,4}).
{i,j, m,n,p,q,r,v#}::Indices(subspace2, position=fixed, parent=subspace, values={2,3}).
{s1,s2,s3}::Indices(subspace1, position=fixed, parent=subspace, values={4}).
```

the updated code following the sugestions in the comments is,

```
\partial{#}::PartialDerivative.
g_{\mu\nu}::Metric.
g^{\mu\nu}::InverseMetric.
g_{\mu? \nu?}::Symmetric.
g^{\mu? \nu?}::Symmetric.
b_{i j}::Metric.
b^{i j}::InverseMetric.
\delta^{\mu?}_{\nu?}::KroneckerDelta.
\delta_{\mu?}^{\nu?}::KroneckerDelta.
Gtog:= \Gamma^{\lambda}_{\mu \nu} -> (1/2) * g^{\lambda \kappa} (\partial_{\nu}{ g_{\kappa\mu}} + \partial_{\mu}{g_{\kappa \nu}} + \partial_{\kappa}{g_{\mu\nu} } );
Gamma4ij := \Gamma^{4}_{i j};
substitute(Gamma4ij, Gtog);
split_index(Gamma4ij, $\mu, 1, A$, repeat=True);
split_index(Gamma4ij, $A, i, 4$, repeat=True);
```

```
substitute(_, $g_{1 m} -> 0$ )
substitute(_, $g_{1 4} -> 1$ )
substitute(_, $g_{m 1} -> 0$ )
substitute(_, $g_{m n} -> b_{m n}$ )
substitute(_, $g_{m 4} -> U_{m}$ )
substitute(_, $g^{4 1} -> 1$ )
substitute(_, $g_{4 m} -> U_{m}$ )
substitute(_, $g_{4 4} -> f$ )
```

```
substitute(_, $g^{1 1} -> U_{m} b^{m n} U_{n} - f$ )
substitute(_, $g^{1 m} -> - U_{n} b^{n m}$ )
substitute(_, $g^{1 4} -> 1$ )
substitute(_, $g^{m 1} -> - U_{n} b^{n m}$ )
substitute(_, $g^{m n} -> b^{n m}$ )
substitute(_, $g^{m 4} -> 0$ )
substitute(_, $g^{4 1} -> 1$ )
substitute(_, $g^{4 m} -> 0$ )
substitute(_, $g^{4 4} -> 0$ )
```

```
substitute(_, $\partial_{1}{U??} -> 0$, repeat=True)
substitute(_, $\partial_{1 \mu?}{U??} -> 0$, repeat=True)
substitute(_, $\partial_{\mu? 1}{U??} -> 0$, repeat=True)
substitute(_, $\partial_{\mu? 1}{b???} -> 0$, repeat=True)
canonicalise(_);
```

I obtained the output $\Gamma^{4}_{i j} $, while if I change the definition of the Christoffel symbols and include ?,

```
Gtog:= \Gamma^{\lambda?}_{\mu?\nu?} ->
(1/2) * g^{\lambda?\kappa} (
\partial_{\nu?}{ g_{\kappa\mu?} } + \partial_{\mu?}{g_{\kappa\nu?} }
- \partial_{\kappa}{ g_{\mu?\nu?} } );
```

I obtain 0, but I know $\Gamma^{4}$ is not 0 so I don't know where my code is wrong. I would like to ask, how can I improve it and how can I generalise it to $d$ dimensions.