Using SimTeEx to simplify polynomial expressions with tensors
Renato M. Fonseca
TL;DR
The paper addresses the problem of simplifying polynomial expressions in tensors with dummy index contractions and complex permutation symmetries, which arise in areas like general relativity and SMEFT. It proposes a graph-based representation of tensor monomials and reduces simplification to graph isomorphism plus linear-algebra for multiterm symmetries, yielding a canonical form implemented in the SimTeEx Mathematica package (CanonicalForm). Key contributions include a flexible framework that handles arbitrary tensor symmetries, multiple input formats for symmetries, and support for anti-commuting tensors, along with auxiliary tools to analyze tensor symmetries. The approach enables robust, reproducible simplification of tensor expressions, with practical impact for high-energy theory and gravity computations, albeit with potential NP-hard worst-case behavior in graph isomorphism scenarios.
Abstract
Computations with tensors are ubiquitous in fundamental physics, and so is the usage of Einstein's dummy index convention for the contraction of indices. For instance, $T_{ia}U_{aj}$ is readily recognized as the same as $T_{ib}U_{bj}$, but a computer does not know that T[i,a]U[a,j] is equal to T[i,b]U[b,j]. Furthermore, tensors may have symmetries which can be used to simply expressions: if $U_{ij}$ is antisymmetric, then $αT_{ia}U_{aj}+βT_{ib}U_{jb}=\left(α-β\right)T_{ia}U_{aj}$. The fact that tensors can have elaborate symmetries, together with the problem of dummy indices, makes it complicated to simplify polynomial expressions with tensors. In this work I will present an algorithm for doing so, which was implemented in the Mathematica package SimTeEx (Simplify Tensor Expressions). It can handle any kind of tensor symmetry.
