Have you looked into the package suite called xAct? It was basically designed for precisely this purpose. It can be found here:
An example of how to do your specific problem in xAct is the following:
In[2]:= << xAct`xTensor` In[4]:= DefConstantSymbol[dim] In[5]:= DefManifold[M, dim, {μ, ν, ρ1, ρ2, ρ3}] In[7]:= DefTensor[A[-μ], M] In[8]:= DefTensor[F[-μ, -ν], M] In[10]:= A[ν] A[ρ2] F[-ρ2, -ρ3] F[-ν, ρ3] \ - A[ρ1] A[ρ3] F[-ρ3, -μ] F[-ρ1, μ] ToCanonical[%] Out[10]= A[ν] A[ρ2] F[-ν, ρ3] F[-ρ2, -ρ3] - A[ρ1] A[ρ3] F[-ρ1, μ] F[-ρ3, -μ] In[11]:= ToCanonical[%] Out[11]= 0