I need Cadabra to understand that the indices of derivatives can be swapped. For example, part of my expression looks like this:
2 \chi w**(3) M**(\xi+1) \delta{z}
\partial_{a b}{z} \partial_{a c d}{z} v_{b} v_{c} v_{d} -
2 \chi w**(3) M**(\xi+1) \delta{z}
\partial_{a b}{z} \partial_{c d a}{z} v_{b} v_{c} v_{d}
In theory, these 2 terms should contract, but they do not.
The indices are given as:
{a,b,c,d,f,i,j,h,k,l,m,n,p,r,s,t,u,v,w,z}::Indices("flat",position = free).
{a,b,c,d,f,i,j,h,k,l,m,o,p,r,s,t,u,v,w,z}::Integer(1..N) .
Partial derivative as
\partial{#}::PartialDerivative.