# Is eliminate_metric supposed to move partial derivative indices?

+1 vote

I have the following example, where i want the partial derivative index be raised up by metric, but eliminate_metric does nothing:

{\mu, \nu}::Indices(position=independent).
\partial{#}::PartialDerivative.
g_{\mu \nu}::Metric.
g^{\mu \nu}::InverseMetric.
g_{\mu}^{\nu}::KroneckerDelta.
g^{\mu}_{\nu}::KroneckerDelta.
g_{\mu \nu}::Depends(\partial{#}).
g^{\mu \nu}::Depends(\partial{#}).
expr:=g^{\mu \nu}\partial_{\nu}{A_{\mu}}.
eliminate_metric(_);

This results the same expression. Is there a way to raise up partial derivative index?

Interestingly, if you write the metric inside the derivative the desired result,

expr:=\partial_{\nu}{ g^{\mu \nu} A_{\mu}};
eliminate_metric(_);

I think that the behaviour differs because you cannot take in/out freely the metric from the expression.

Personally, I find your question very interesting!

by (14.8k points)

I did not find a way to do exactly what you want. But here is an alternative. Define \nabla as a Derivative or PartialDerivative.

{\mu, \nu}::Indices(position=independent).
\partial{#}::PartialDerivative.
g_{\mu \nu}::Metric.
g^{\mu \nu}::InverseMetric.
g_{\mu}^{\nu}::KroneckerDelta.
g^{\mu}_{\nu}::KroneckerDelta.
g_{\mu \nu}::Depends(\partial{#}).
g^{\mu \nu}::Depends(\partial{#}).

\nabla{#}::PartialDerivative.
\nabla{#}::Depends(\partial{#}).

expr:=g^{\mu \nu}\nabla_{\nu}{A_{\mu}};
eliminate_metric(_);

The crucial point is that the covariant derivative of the metric is 0, so you do not need to add

g_{\mu \nu}::Depends(\nabla{#}).
g^{\mu \nu}::Depends(\nabla{#}).


As a result the metric "passes through" the \nabla derivative operator. I hope this helps.

GPN

by (2.0k points)
edited by