Dear all,
I must start by saying that I am not an advanced user of xAct. I recently started getting grasp of its beauty and power. I have a serious issue, which unfortunately I cannot solve. I'll give a simple example. Let's say covd with Torsion -> True, Curvature -> False is our covariant derivative, and that we have also defined a flat metric η to lower/raise the indices of our tensors (thus mimicking internal manipulations). Then,
In[]:= Torsioncovd[a, -b, -c] // TorsionToChristoffel
Out[]= Christoffelcovd[a, -b, -c] - Christoffelcovd[a, -c, -b]
Now, let's say that whenever I see this output, I want to collect it back to Torsioncovd[a, -b, -c]. My foolish approach to this problem (since the LHS of the rule cannot be an expression with separate terms) was to create a rule:
UselessRule1 = MakeRule[{Christoffelcovd[a, -b, -c], Christoffelcovd[a, -c, -b] + Torsioncovd[a, -b, -c]}, UseSymmetries -> True, MetricOn -> All]
As the name indicates, this rule is useless, when applied to
Torsioncovd[a, -b, -c] // TorsionToChristoffel /. UselessRule1
since it applies to both connection coefficients. This is only a minimal example, but I believe it is enough to showcase the issue. I cannot figure out a solution, perhaps due to my lack of experience with xAct. Is it possible to find a proper way to collect terms, without having to use AutomaticRules for every possible index combination? I would highly appreciate any suggestions!