Yes, you can do this with the new meld
which Dom Price implemented. This combines terms into a minimal number. Full example:
{a,b,c,d,e,f,g,h}::Indices;
R_{a b c d}::RiemannTensor;
\gamma{#}::AntiSymmetric;
ex:= R_{a b c d} R_{a c e f} \gamma_{b d e f} + \frac{1}{2} R_{a b c d} R_{a b e f} \gamma_{c d e f};
young_project_tensor(_, modulo_monoterm=True)
distribute(_)
canonicalise(_)
rename_dummies(_);
meld(_);
This gives
2 R_{a b c d} R_{a c e f} \gamma_{b d e f}
which is not identical to the expression you gave, but equivalent. To see that, just meld the difference:
tst:= R_{a b c d} R_{a b e f} \gamma_{c d e f} - @(ex);
meld(_);
which gives 0
as expected.
You can of course do that meld
also on the original expression before the young_project_tensor
; the result is the same.
There's proper documentation and a paper coming up on this algorithm shortly.