# Automatic simplification of antisymmetric tensor contractions

I'm currently using a function LC[m,n,r,s] to denote the Levi-Civita symbol $$\varepsilon^{\mu\nu\rho\sigma}$$ with abstract tensor indices (together with the rules in this post). I also have objects such as V[label,-a] for e.g. $$V_{i,\mu}$$ or Pol[i,-a] etc which denote vectors.

Is there a slick way I can ensure that LC contracted with any two objects that are the same is zero?

e.g. LC[a,b,c,d]V[i,-a]V[i,-c] = 0

Ideally, this would happen when using e.g. Simplify[] but could just be a seperate function...

• Can you include definitions for LC V and Pol please? Nov 1, 2022 at 14:31
• They don't have definitions as functions, they are supposed to remain abstract. I mostly just change their formatting using e.g. Format[LC]:=..., then apply rules as necessary. Incidentally, I want to be able to contract LC with any object, regardless of its definition, and it be zero by the anti-symmetric property of the Levi-Civita symbol. Nov 1, 2022 at 15:47
• What does it mean for two objects to be the same? eg V[i,-a] and V[i,-c] Nov 1, 2022 at 15:52
• a and c are indices (and i just a label), so this would be $V^{(i)}_a V^{(i)}_c$ in component form. In general, $\varepsilon^{abcd}V^{(i)}_a V^{(i)}_c = 0$, whereas $\varepsilon^{abcd}V^{(i)}_a V^{(j)}_c \neq 0$. Nov 1, 2022 at 16:10