# Substitute Christoffel2nd into Dual Riemann tensor

Greetings!

I'd like to express dual Riemann tensor in terms of Christoffel symbols. Please clarify what's the problem that nothing changes when I substitute into dual Riemann tensor either Riemann tensor or Christoffel2nd:

{i,j,k,l,m,n,p,q,r,s,t,u}::Indices(space, position=fixed);
{i,j,k,l,m,n,p,q}::Integer(1..4);
\partial{#}::PartialDerivative;

g_{i j}::Metric;
g^{i j}::InverseMetric;
g_{i j}::Symmetric;

\delta{#}::KroneckerDelta;
E_{m n k l}::EpsilonTensor(delta=\delta);
E^{m n k l}::EpsilonTensor(delta=\delta);

#Christoffel second kind
Christoffel2nd := \Gamma^{i}_{k l} = 1/2 g^{i m} (
\partial_{l}{g_{m k}}
+ \partial_{k}{g_{m l}}
- \partial_{m}{g_{k l}});

#Riemann tensor
Riemann := R^{m}_{i k p} = \partial_{k}{\Gamma^{m}_{p i}}
- \partial_{i}{\Gamma^{m}_{p k}}
+ \Gamma^{s}_{p i}\Gamma^{m}_{s k}
- \Gamma^{s}_{p k}\Gamma^{m}_{s i};
lRieman := R_{i k p q} = g_{q m}R^{m}_{i k p};
uRieman := R^{m k p q} = g^{k i} g^{p j} g^{q l} R^{m}_{i j l};

# Dual Riemann tensor
uDualRiemann := 1/4 R_{m n p q} E^{p q k l} E^{i j m n};

substitute(uDualRiemann, Christoffel2nd);
substitute(uDualRiemann, Riemann);


+1 vote

The steps should be

substitute(uDualRiemann, lRieman);
substitute(uDualRiemann, Riemann);
substitute(uDualRiemann,Christoffel2nd);


The 1st line rewrites the Riemann with all lower indices in terms of one with the first index raised. The 2nd line substitutes the definition of the Riemann in terms of Christoffel symbols. And then the 3rd line rewrites the Christoffel symbols in terms of derivatives of the metric.