2

The $\gamma$-matrices satisfy the relation $$\gamma^\mu \gamma^\nu +\gamma^\nu\gamma^\mu=2\eta^{\mu\nu}\mathrm{id},$$ where $\eta$ is the Minkowski metric. Consider now the following process $$\begin{align*} \gamma^\mu\gamma^\nu &= \frac{1}{2!}(\gamma^\mu\gamma^\nu +\gamma^\mu\gamma^\nu) = \frac{1}{2}(\gamma^\mu\gamma^\nu + (2\eta^{\mu\nu}-\gamma^\nu\gamma^\mu))\\ &= \frac{1}{2}(\gamma^\mu\gamma^\nu-\gamma^\nu\gamma^\mu)+\eta^ {\mu\nu}\\ &=:\frac{1}{2}\varepsilon^{\mu\nu}+\eta^{\mu\nu}.\tag{1} \end{align*}$$ One can now repeat this process and obtain $$\begin{align*} \gamma^\mu\gamma^\nu\gamma^\sigma &= \frac{1}{6}\varepsilon^{\mu\nu\sigma}+ \eta^{\mu\nu}\gamma^\sigma- \eta^{\mu\sigma}\gamma^\nu+\dots \end{align*}$$ where $\varepsilon^{\mu\nu\sigma}$ is the anti-symmetrization of $\gamma^\mu\gamma^\nu\gamma^\sigma$.

Is it possible to obtain this result in Mathematica for an arbitrary product of $\gamma$-matrices, i.e. $$\gamma^{\mu_1}\dots \gamma^{\mu_r}\qquad \text{for }r\in\mathbb{N}?$$ (Realisticly speaking, I only need it for $r<8$.)

Edit: It's probably worth pointing out that one can create the antisymmetric part quite easily using

Symmetrize[\[Epsilon], Antisymmetric[{1,...,r}]]
Sito
  • 325
  • 3
  • 11
  • I would like to state that this is an important question and the answer is relevant to my research (any QFT researcher would be interested in this I think). – Chris Django Jun 17 '21 at 11:36

1 Answers1

1

One should realize that the gamma matrices are just a (3,1)-dim representation of a geometric algebra. This means we associate the gamma matrices with noncommutative basis vectors.

So you could use the following geometry algebra package:

github.com/ArturasAcus/GeometricAlgebra
The wedge operation here is implemented as OuterProduct. No operations without basis vectors, no differentiation.

Code to work with a (3,1)-dim representation of a geometric algebra

gaDefineOrthonormalBasis[Cl[3, 1], FontColor -> Red]
gaRunningAlgebra

Now the questions you asked can be simply computed. Question 1:

GeometricProduct[\[DoubleStruckE][1], \[DoubleStruckE][2]]
GeometricProduct[\[DoubleStruckE][4], \[DoubleStruckE][4]]

Question 2:

GeometricProduct[\[DoubleStruckE][1], \[DoubleStruckE][
2], \[DoubleStruckE][3]]

I guess you could also define a function named gamma (this may not be the best way to do it, but just as an example)

Clear[f]; \[Gamma][i_] := \[DoubleStruckE][i]
g[i_, j_] := GeometricProduct[\[Gamma][i], \[Gamma][j]]
g[1, 2]
g[1, 1]
g[4, 4]
Chris Django
  • 147
  • 8
  • You could also code this yourself of course, using the code here https://mathematica.stackexchange.com/questions/249670/what-is-the-best-source-to-learn-how-to-use-tensor-operations-exterior-algebra look at the answer by xzczd, but that will take some serious work in order to create a fast properly working program – Chris Django Jun 20 '21 at 11:27