# Recognise symmetries

I have to deal the reduction of Riemann^2. I cannot understand how I should make it use the symmetries of Riemann tensor when I split indices:

{\alpha,\beta,\gamma,\delta,\kappa,\lambda,\eta,\mu,\nu,\rho,\sigma,\chi#}::Indices(full, position=independent);
{a,b,c,d,m,n,p,q,r,s,t,u,v,w,x,y,z,m#,a#,b#,c#,d#}::Indices(subspace, position=independent, parent=full);
\partial{#}::PartialDerivative.
g_{\mu\nu}::Metric.
g^{\mu\nu}::InverseMetric.
g_{\mu? \nu?}::Symmetric.
g^{\mu? \nu?}::Symmetric.
h_{m n}::Metric.
h^{m n}::InverseMetric.
\delta^{\mu?}_{\nu?}::KroneckerDelta.
\delta_{\mu?}^{\nu?}::KroneckerDelta.
F_{m n}::AntiSymmetric.

todo:=  R_{\alpha \beta \gamma \delta} R_{\mu \nu \rho \sigma} g^{\alpha \mu} g^{\beta \nu} g^{\gamma \rho} g^{\delta \sigma}  ;

split_index(_, $\mu, m, 3$, repeat=True);

It does not regognise that many expression (taking into account simmetries of Riemann and also the metric contractions) are basically the same. How to do it? For now I set by hand the symmetries of Riemann. but still many terms should collapse together because due to metric conractions they are the same, but it does not recognise it. I tried rename dummies, canonicalise and many other commands...

Nobody? I am stuck...

Thanks for drawing my attention to this. canonicalise should have taken care of it, but at some point in the 1.x to 2.x transition I turned this off, only to forget to reinstate it. I will try to get it into 2.1.3 due out later this week.

by (71.6k points)

Anyways, can the software handle such long expressions? I a little worried since it suppresses the output being too long, so I cannot really check whether it does everything correctly in each step.

The length of expressions is only bounded by your available memory; I doubt it will be an issue for your computations.

You can always check parts of the expression by using the standard Python slicing operators, e.g.

ex:= A+B+C+D+E;
ex[2:4];

shows $C+D$.

Got a little bit stuck on 2.1.3 but hopefully more time this coming week.

2.1.3 is not yet out, but the version currently in github has canonicalise working for these kind of expressions.