Hello

I'm running the following:

```
{a#,b#}::Indices.
\delta{#}::KroneckerDelta.
{a#,b#}::Integer(0..3)
\partial{#}::PartialDerivative.
\epsilon{#}::EpsilonTensor(delta=-\delta).
h_{a1 b1}::Symmetric.
toh := {h_{a1 a1} = h, h_{a1}^{a1} = h}.
def LLmanip(ex):
product_rule(ex)
distribute(ex)
product_rule(ex)
distribute(ex)
epsilon_to_delta(ex)
expand_delta(ex)
distribute(ex)
eliminate_kronecker(ex)
canonicalise(ex)
rename_dummies(ex)
distribute(ex)
sort_product(ex)
sort_sum(ex)
substitute(ex, toh)
lower_free_indices(ex)
canonicalise(ex)
rename_dummies(ex)
collect_factors(ex)
return(ex)
LL := \delta^{a1 b1 a2 b2 a3 b3 a4 b4} \partial_{a1}{h_{a2 b2}} \partial_{b1}{h_{a3 b3}} h_{a4 b4};
LLmanip(LL);
```

The result i get has these two terms:

`\partial_{a1}{h_{a1 a2}} \partial_{a2}{h} h`

and

`\partial_{a1}{h} \partial_{a2}{h_{a1 a2}} h`

which are the same but are not collected into one.

Is there some way to combine the terms?

Thanks