FCCanonicalizeDummyIndices[expr]
canonicalizes dummy indices in the expression.
Following index types are supported: LorentzIndex
, CartesianIndex
, SUNIndex
, SUNFIndex
, DiracIndex
, PauliIndex
In the case of Lorentz indices the option Momentum
provides a possibility to limit the canonicalization only to particular Momenta
. The option LorentzIndexNames
can be used to assign specific names to the canonicalized indices, to have say \mu, \nu, \rho etc. instead of some random names.
For other index types the corresponding options are called CartesianIndexNames
, SUNIndexNames
, SUNFIndexNames
, DiracIndexNames
and PauliIndexNames
.
Overview, FCRenameDummyIndices.
Canonicalization of Lorentz indices
[q, mu] FVD[p, mu] + FVD[q, nu] FVD[p, nu] + FVD[q, si] FVD[r, si]
FVD
[%] // Factor2 FCCanonicalizeDummyIndices
p^{\text{mu}} q^{\text{mu}}+p^{\text{nu}} q^{\text{nu}}+q^{\text{si}} r^{\text{si}}
q^{\text{FCGV}(\text{li191})} \left(2 p^{\text{FCGV}(\text{li191})}+r^{\text{FCGV}(\text{li191})}\right)
[SPD[q, p]^2, q, p, Pair -> All]
Uncontract
[%, LorentzIndexNames -> {\[Mu], \[Nu]}] FCCanonicalizeDummyIndices
p^{\text{\$AL}(\text{\$28})} p^{\text{\$AL}(\text{\$29})} q^{\text{\$AL}(\text{\$28})} q^{\text{\$AL}(\text{\$29})}
p^{\mu } p^{\nu } q^{\mu } q^{\nu }
Canonicalization of Cartesian indices
[p, i] CVD[q, i] + CVD[p, j] CVD[r, j]
CVD
[%] // Factor2 FCCanonicalizeDummyIndices
p^i q^i+p^j r^j
p^{\text{FCGV}(\text{ci391})} \left(q^{\text{FCGV}(\text{ci391})}+r^{\text{FCGV}(\text{ci391})}\right)
[p, i] CVD[q, i] + CVD[p, j] CVD[r, j]
CVD
[%, CartesianIndexNames -> {a}] // Factor2 FCCanonicalizeDummyIndices
p^i q^i+p^j r^j
p^a \left(q^a+r^a\right)
Canonicalization of color indices
[a, b, a] + SUNT[c, b, c]
SUNT
[%] FCCanonicalizeDummyIndices
T^a.T^b.T^a+T^c.T^b.T^c
2 T^{\text{FCGV}(\text{sun601})}.T^b.T^{\text{FCGV}(\text{sun601})}
[a, b, a] + SUNT[c, b, c]
SUNT
[%, SUNIndexNames -> {u}] FCCanonicalizeDummyIndices
T^a.T^b.T^a+T^c.T^b.T^c
2 T^u.T^b.T^u
Canonicalization of Dirac indices
[GA[mu], i, j] DCHN[GA[nu], j, k]
DCHN
[%] FCCanonicalizeDummyIndices
\left(\bar{\gamma }^{\text{mu}}\right){}_{ij} \left(\bar{\gamma }^{\text{nu}}\right){}_{jk}
\left(\bar{\gamma }^{\text{mu}}\right){}_{i\text{FCGV}(\text{di771})} \left(\bar{\gamma }^{\text{nu}}\right){}_{\text{FCGV}(\text{di771})k}
[GA[mu], i, j] DCHN[GA[nu], j, k]
DCHN
[%, DiracIndexNames -> {a}] FCCanonicalizeDummyIndices
\left(\bar{\gamma }^{\text{mu}}\right){}_{ij} \left(\bar{\gamma }^{\text{nu}}\right){}_{jk}
\left(\bar{\gamma }^{\text{mu}}\right){}_{ia} \left(\bar{\gamma }^{\text{nu}}\right){}_{ak}
Canonicalization of Pauli indices
[CSI[a], i, j] PCHN[CSI[b], j, k]
PCHN
[%] FCCanonicalizeDummyIndices
\left(\overline{\sigma }^a\right){}_{ij} \left(\overline{\sigma }^b\right){}_{jk}
\left(\overline{\sigma }^a\right){}_{i\text{FCGV}(\text{pi921})} \left(\overline{\sigma }^b\right){}_{\text{FCGV}(\text{pi921})k}
[CSI[a], i, j] PCHN[CSI[b], j, k]
PCHN
[%, PauliIndexNames -> {l}] FCCanonicalizeDummyIndices
\left(\overline{\sigma }^a\right){}_{ij} \left(\overline{\sigma }^b\right){}_{jk}
\left(\overline{\sigma }^a\right){}_{il} \left(\overline{\sigma }^b\right){}_{lk}
Using the option Head
one can specify which index heads should be canonicalized, while the rest will be ignored.
[Superscript[\[Phi], "+"], PauliIndex[k1], PauliIndex[k2],
(QuantumFieldR, r] . QuantumField[FCPartialD[{CartesianIndex[i], r}],
[{CartesianIndex[i], r}], \[Phi], PauliIndex[k2], PauliIndex[k1], R, r])
FCPartialD
[%, CartesianIndexNames -> {j}, Head -> {CartesianIndex}]
FCCanonicalizeDummyIndices
\phi ^{+\text{k1}\;\text{k2}Rr}.\left(\partial _{\{i,r\}}\partial _{\{i,r\}}\phi ^{\text{k2}\;\text{k1}Rr}\right)
\phi ^{+\text{k1}\;\text{k2}Rr}.\left(\partial _{\{j,r\}}\partial _{\{j,r\}}\phi ^{\text{k2}\;\text{k1}Rr}\right)