Handling indices
See also
Overview.
Manipulations of
tensorial quantities
When you square an expression with dummy indices, you must rename
them first. People often do this by hand, e.g. as in
ex1 = (FV[p, \[Mu]] + FV[q, \[Mu]]) FV[r, \[Mu]] FV[r, \[Nu]]
rμrν(pμ+qμ)
ex1 (ex1 /. \[Mu] -> \[Rho])
Contract[%]
rμ(rν)2rρ(pμ+qμ)(pρ+qρ)
r2(p⋅r+q⋅r)2
However, since FeynCalc 9 there is a function for that
FCRenameDummyIndices[ex1]
rνr$AL($19)(p$AL($19)+q$AL($19))
ex1 FCRenameDummyIndices[ex1]
Contract[%]
rμrνrν(pμ+qμ)r$AL($20)(p$AL($20)+q$AL($20))
r2(p⋅r+q⋅r)2
Notice that FCRenameDummyIndices
does not canonicalize
the indices
FV[p, \[Nu]] FV[q, \[Nu]] - FV[p, \[Mu]] FV[q, \[Mu]]
FCRenameDummyIndices[%]
pνqν−pμqμ
p$AL($22)q$AL($22)−p$AL($21)q$AL($21)
But since FeynCalc 9.1 there is a function for that too
FV[p, \[Nu]] FV[q, \[Nu]] - FV[p, \[Mu]] FV[q, \[Mu]]
FCCanonicalizeDummyIndices[%]
pνqν−pμqμ
0
Finally, often we also need to uncontract already contracted indices.
This is done by Uncontract
. By default, it handles only
contractions with Dirac matrices and Levi-Civita tensors
LC[][p, q, r, s]
Uncontract[%, p]
Uncontract[%%, p, q]
ϵˉpqrs
p$AL($31)ϵˉ$AL($31)qrs
p$AL($33)q$AL($32)(−ϵˉ$AL($32)$AL($33)rs)
SP[p, q]
Uncontract[%, p]
p⋅q
p⋅q
To uncontract scalar products as well, use the option
Pair->All
Uncontract[%, p, Pair -> All]
p$AL($34)q$AL($34)