Let me hint some ideas... although it is a not very helpful example.

**Comment 0:** I'll stick to the suggested code, and not the written line-element.

## My suggestions

Firstly, let's assing some properties

```
{t,x,y,z}::Coordinate;
{\mu,\nu,\rho,\sigma,\lambda,\kappa,\chi,\gamma}::Indices(values={t,x,y,z},position=independent);
{i,j,k,l,m,n}::Indices(values={x,y,z},position=independent);
\partial{#}::PartialDerivative;
g_{\mu\nu}::Metric;
g^{\mu\nu}::InverseMetric;
h_{i j}::Metric;
h^{i j}::InverseMetric;
```

**Comment 1:** the separation between Latin and Greek indices.

Then, assign some dependencies,

```
h_{i j}::Depends(t);
N{#}::Depends(x,y,z);
```

Now, instead of trying to declare sets of components, like `g_{0 i}=N_i`

for the metric, I used a detail declaration,

```
ss := { g_{t t}=0,
g_{t x}=N_x,
g_{t y}=N_y,
g_{t z}=N_z,
g_{x t}=N_x,
g_{y t}=N_y,
g_{z t}=N_z,
g_{x x}=h_{x x},
g_{y y}=h_{y y},
g_{z z}=h_{z z},
g_{y z}=h_{y z},
g_{z y}=h_{y z},
};
complete(ss, $g^{\mu\nu}$);
```

**Comment 2:** for the sake of "readability" of the output, I used a simplified version of the /spacial/ submetric. If you use a complete example the output is longer.

Finally, you can define the Christoffel rule,

```
ch:= \Gamma^{\mu}_{\nu\rho} =
1/2 g^{\mu\sigma} (
\partial_{\rho}{g_{\nu\sigma}}
+\partial_{\nu}{g_{\rho\sigma}}
-\partial_{\sigma}{g_{\nu\rho}} );
```

and evaluate its components,

`evaluate(ch, ss, rhsonly=True);`

### A more complete metric

Just if you want to try it

```
ss := { g_{t t}=N,
g_{t x}=N_x,
g_{t y}=N_y,
g_{t z}=N_z,
g_{x t}=N_x,
g_{y t}=N_y,
g_{z t}=N_z,
g_{x x}=h_{x x},
g_{y y}=h_{y y},
g_{z z}=h_{z z},
g_{x y}=h_{x y},
g_{y x}=h_{x y},
g_{x z}=h_{x z},
g_{z x}=h_{x z},
g_{y z}=h_{y z},
g_{z y}=h_{y z},
};
complete(ss, $g^{\mu\nu}$);
```

## Additional reflexions

If you have evaluated the above code, you'll find that it is not very useful!

*Really long expressions.*

What if we don't give explicit expressions?

**TO BE CONTINUED!**