## rewrite_indices

Rewrite indices by contracting with vielbein or metric.

Rewrite indices on an object by contracting it with a second object
which contains indices of both the old and the new type (a vielbein,
in other words, or a metric). A vielbein example is{m,n,p}::Indices(flat).
{\mu,\nu,\rho}::Indices(curved).
ex:=T_{m n p};
rewrite_indices(_, $T_{\mu\nu\rho}$, $e_{\mu}^{n}$);

\(\displaystyle{}T_{m n p}\)

\(\displaystyle{}T_{\mu \nu \rho} e^{\mu}\,_{m} e^{\nu}\,_{n} e^{\rho}\,_{p}\)

If you want to raise or lower an index with a metric, this can also be
done with as an index rewriting command, as the following example shows:

{\mu,\nu,\rho,\sigma,\lambda,\kappa}::Indices(curved, position=fixed).
ex:=H_{\mu \nu \rho};
rewrite_indices(_, $H^{\mu \nu \rho}$, $g_{\mu \nu}$);

\(\displaystyle{}H_{\mu \nu \rho}\)

\(\displaystyle{}H^{\sigma \lambda \kappa} g_{\mu \sigma} g_{\nu \lambda} g_{\rho \kappa}\)

As these examples show, the desired form of the tensor should be given
as the first argument, and the conversion object (metric, vielbein) as
the second object.