Welcome to Cadabra Q&A, where you can ask questions and receive answers from other members of the community.
0 votes


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);

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

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);
asked in General questions by (260 points)

1 Answer

+2 votes
Best answer

The steps should be

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

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.

answered by (45.3k points)
selected by