When a Dirac expression is evaluated, the system computes one quarter of the trace of each γ matrix product in the expansion of the expression. One quarter of each trace is taken in order to avoid confusion between the trace of the scalar M, say, and M representing M * ⟨unit 4 by 4 matrix⟩. Contraction over indices occurring in such expressions is also performed. If an unmatched index is found in such an expression, an error occurs.
The algorithms used for trace calculations are the best available at the time this system was produced. For example, in addition to the algorithm developed by Chisholm for contracting indices in products of traces, REDUCE uses the elegant algorithm of Kahane for contracting indices in γ matrix products. These algorithms are described in Chisholm, J. S. R., Il Nuovo Cimento X, 30, 426 (1963) and Kahane, J., Journal Math. Phys. 9, 1732 (1968).
It is possible to prevent the trace calculation over any line identifier by the declaration NOSPUR. For example,
will mean that no traces are taken of γ matrix terms involving the line numbers L1 and L2. However, in some calculations involving more than one line, a catastrophic error
can occur (for the reason stated!) If you encounter this error, please let us know!
A trace of a γ matrix expression involving a line identifier which has been declared NOSPUR may be later taken by making the declaration SPUR.
See also the CVIT package for an alternative mechanism (chapter 16.17).