Sorry, the problem is still there: if I remove canonicalise from the converge structure the result is different!
Without canonicalise at the end I get zero (in 3d, with indices values 0,1,2), without canonicalise the result is different from zero
Moreover, why eliminate delta does eliminate metric with both upper/lower indices too, while eliminate metric is not working?
{a,b,c,d,k,l,m,n,p,q,r,s,u,v,e,f,g,h,i,z}::Indices(position=free);
{a,b,c,d,k,l,m,n,p,q,r,s,u,v,e,f,g,h,i,z}::Integer(0..2).
\eta_{a b}::Metric(signature=1).
\delta_{m n}::KroneckerDelta.
\eta_{a? b?}::Symmetric.
\eta_{a? b?}::InverseMetric.
\eta_{m}^{n}::KroneckerDelta.
\eta^{m}_{n}::KroneckerDelta.
x::Coordinate.
\Gamma{#}::GammaMatrix(metric=\eta).
B_{a b}::AntiSymmetric.
H_{a b}::AntiSymmetric.
B_{a b}::Depends(x).
H_{a b}::Depends(x).
\nabla{#}::Derivative.
B_{a b}::Depends(\nabla{#}).
H_{a b}::Depends(\nabla{#}).
C_{a b}::AntiSymmetric.
C_{a b}::Depends(x).
C_{a b}::Depends(\nabla{#}).
ex:= H^{a b} \nabla_{m}{\nabla_{n}{H_{r s}}} \commutator{ \commutator{\Gamma^{m}}{\Gamma_{a b}} }{\Gamma^{n r s}};
substitute(_, $\commutator{A??}{B??} -> A?? B?? - B?? A??$);
converge(_):
distribute(_)
join_gamma(_)
eliminate_kronecker(_)
;
substitute(_, $\Gamma_{a b}->0$);