Hello,
Is there some built-in way to take an arbitrary expression containing contracted indices, and reexpress it in a canonical way such that the inverse metric is the only thing that appears with raised indices?
ie how can I send X^{...,N,...} Y_{...,-N,...} to g^{MN} X_{...,-M,...}Y_{...,-N,....} everywhere such a contraction appears in an expression.
I've noticed that several of the built-in computational tools require you to express things in such a canonical way before you use them, for instance when you expand about a product metric or do a conformal transformation.
On the other hand other built in processes (eg xPerm) give rather long winded expressions that are not in this canonical form - and putting them into this form by hand can be extremely laborious (and more importantly easy to make mistakes while doing).
I attach a file giving examples of what I mean - typically I am not dealing with something as simple as this though, hence the wish to automate.
thanks
Niall