DeclarePlusMinusOne

DeclarePlusMinusOne[x]
declares x as symbolic representation of +1 or -1.
DeclarePlusMinusOne[x, y, ...]
declares x, y, ... as symbolic representations of +1 or -1.
Set a symbol to be treated as +1 or -1:
Set many symbols to be treated as +1 or -1:
Set all expressions matching given pattern to be treated as +1 or -1:
Keep polarization of polarization vector symbolic but restrict it to transverse case:
PolVec[P, pol] is not treated as massless spinor since pol can represent any polarization including 0:
Some automatic simplifications are not performed e.g. such spinor chain stays nonzero:
Declare pol symbol to be treated as plus or minus one:
After setting pol to represent plus or minus one Mathematica knows that PolVec[P, pol] represents massless spinor:
Package can use automatic simplifications:
Keep mass sign of massive spinor label symbolic:
SpM[P, x] is not treated as proper massive spinor label since x is not interpreted as +1 or -1:
Declare x symbol to be treated as plus or minus one:
After setting x to represent plus or minus one Mathematica knows that SpM[P, x] represents massive spinor label: