### Description

• SpinorsSimplify simplifies products of $\gamma$-matrices and Dirac spinors using Dirac equation
• By default SpinorsSimplify works in $D = 4$; for arbitrary $D$ one can use option SpinorsSimplify[[Dimension: D]]
• One can directly set trace of identity matrix (e.g. for dimensional regularisation): SpinorsSimplify[[Dimension: D, TraceOfOne: 4]]
• The notation for Dirac spinors should be specified using SpinorsSimplify[[u: u, v: v, uBar: uBar, vBar: vBar, Momentum: m, Mass: m]]
• By default SpinorsSimplify uses notation G_m for $\gamma_m$ and G5 for $\gamma_5$. SpinorsSimplify[[Gamma: G, Gamma5: G5]] specifies the notation for $\gamma_m$ and $\gamma_5$.
• SpinorsSimplify[[Simplifications: rules]] will apply additional simplification rules to each processed expression

### Examples

Simplify Dirac $\bar u$ spinors in expression:

defineMatrices 'G_a', 'G5', Matrix1.matrix, 'cu', Matrix1.covector

def sSimplify = SpinorsSimplify[[uBar: 'cu', Momentum: 'p_a', Mass: 'm']]
println sSimplify >> 'cu*G^a*p_a'.t

   > m*cu

println sSimplify >> 'cu*G_b*G^a*p_a'.t

   > -m*cu*G_{b}+2*cu*p_{b}


Simplify different spinors:

defineMatrices 'G_a', 'G5', Matrix1.matrix,
'cu', 'cv', Matrix1.covector,
'u', 'v', Matrix1.vector

def sSimplify = SpinorsSimplify[[uBar: 'cu', vBar: 'cv', u: 'u', v: 'v',
Momentum: 'p_a', Mass: 'm']]
println sSimplify >> 'cu*p^a*G_a*G_b*G_c*v'.t

   > m*cu*G_b*G_c*v

println sSimplify >> 'p^a*G5*G_a*G_b*G_cG5*u'.t

   > m*G_b*G_c*u+2*G_c*u*p_b-2*G_b*u*p_c

println sSimplify >> 'p^a*G_a*G_b*G_c*v'.t

   > -m*G_b*G_c*v+2*G_c*v*p_b-2*G_b*v*p_c


With DiracSimplify: true an additional simplification of Dirac gammas will be performed automatically:

def options = [uBar: 'cu', vBar: 'cv', u: 'u', v: 'v',
Momentum: 'p_a', Mass: 'm', DiracSimplify: true]


   > -2*m*cu

Do the same in $D$ dimensions:
options['Dimension'] = 'D'

   > (-D*m+2*m)*cu