DiracOrder
brings all products of $\gamma$-matrices to alphabetical order DiracOrder
works in $D = 4$; for arbitrary $D$ one can use option DiracOrder[[Dimension: D]]
DiracOrder[[Dimension: D, TraceOfOne: 4]]
DiracOrder
uses notation G_m
for $\gamma_m$ and G5
for $\gamma_5$. DiracOrder[[Gamma: G, Gamma5: G5]]
specifies the notation for $\gamma_m$ and $\gamma_5$.Order product of $\gamma$-matrices:
defineMatrices 'G_a', 'G5', Matrix1.matrix def dOrder = DiracOrder println dOrder >> 'G_b*G_a'.t
> 2*g_{ba}-G_{a}*G_{b}
println dOrder >> 'G_d*G_c*G_b*G_a'.t
> G_{a}*G_{b}*G_{c}*G_{d}-2*G_{c}*G_{d}*g_{ab}+2*G_{b}*G_{d}*g_{ac}-2*G_{b}*G_{c}*g_{ad} -2*G_{a}*G_{d}*g_{bc}+4*g_{ad}*g_{bc}+2*G_{a}*G_{c}*g_{bd}-4*g_{ac}*g_{bd} -2*G_{a}*G_{b}*g_{cd}+4*g_{ab}*g_{cd}
All $\gamma_5$ will be shift right:
defineMatrices 'G_a', 'G5', Matrix1.matrix def dOrder = DiracOrder println dOrder >> 'G5*G_b*G_a'.t
> 2*G5*g_{ba}-G_{a}*G_{b}*G5
Use another notation for $\gamma$-matrices:
defineMatrices 'F_a', 'F5', Matrix1.matrix def dOrder = DiracOrder[[Gamma: 'F_a', Gamma5: 'F5']] println dOrder >> 'F_b*F_a'.t
> 2*g_{ba}-F_{a}*F_{b}