Originally posted by **adityap89** March 19, 2024
Dear FeynCalc Developers,
I am working with Mathematica 13.2.0 and FeynCalc 10.0.0 (dev version).
I noticed something bizarre when I tried to do a simple contraction of a Dirac chain that involved gamma slashes of light cone reference vectors $n$, $\bar n$ and perpendicular vectors $k_{1\perp}$ and $k_{2\perp}$ using `DiracSimplify`. I am evaluating trace of the chain $(\gamma \cdot n) (\gamma\cdot k_{2\perp}) (\gamma\cdot k_{1\perp}) (\gamma \cdot \bar{n}) (\gamma \cdot n) (\gamma \cdot k_{1\perp}) \gamma^\mu (\gamma \cdot \bar{n} )$.
In the input form, it reads
```mathematica
chain = {
DCHN[GSD[n], QGIDir1, QGIDir2],
DCHN[GSLRD[k2, n, nb] . GSLRD[k1, n, nb] . GSD[nb], QGIDir2, QGIDir3],
DCHN[GSD[n], QGIDir3, QGIDir4],
DCHN[GSLRD[k1, n, nb] . GALRD[\[Mu], n, nb] . GSD[nb], QGIDir4, QGIDir1]
};
Times @@ chain // DiracSimplify
```
This produces $32 k_{2\perp}^\mu k_1^2$. This is actually wrong since we never inserted $k_1$, but only $k_{1\perp}$ through the `GSLRD[k1, n, nb]`. However, if I relabel the components as $k_1 \rightarrow b$ and $k_2 \rightarrow a$ through the following code,
```mathematica
Times @@ (chain /. {k1 -> b, k2 -> a}) // DiracSimplify
```
I find $32 a^\mu_\perp b_\perp^2$. This time it does correctly write $b_\perp^2$ instead of $b^2$. But, now if I relabel the components as $k_1 \rightarrow a$ and $k_2 \rightarrow b$,
```mathematica
Times @@ (chain /. {k1 -> a, k2 -> b}) // DiracSimplify
```
I again find the incorrect $32 b^\mu_\perp a^2$. There is some internal alphabetical sorting going on and sorting the labels one way or the other produces inconsistent results. You can, for example, reproduce this problem by labeling $k_{1,2}$ as $x,y$ or $y,x$. I've included a screenshot below.
Thank you,
Adi
![image](https://github.com/FeynCalc/feyncalc/assets/19536123/c44fbfb1-c20b-4521-9991-fda7e6232928)
Discussed in https://github.com/orgs/FeynCalc/discussions/253