This might be considered nit-picking, but nonetheless I think there is an issue: The metric tensor and its inverse are types (0,2) and (2,0) tensors, respectively. When once contracted with each other, the result is the Kronecker delta, which is then (necessarily) a tensor of type (1,1). I am therefore surprised to find that in Maple, this Kronecker delta is implemented as a type (0,2) tensor, via the command KroneckerDelta:
I don't think this makes any proper sense. I think that such an object of type (0,2) is, in fact, the metric itself. On a similar note, the (mixed tensor type) objects g_[mu,~nu] and g_[~mu,nu] are actually both Kronecker deltas, because they correspond to the metric having one index raised by contraction with the inverse metric itself. But, nonetheless, the following is the case:
Relatedly, consider the following single contraction of the metric with its own inverse:
Although this sum is formally quite correct, I think it should be given as just a Kronecker delta (of the correct mixed tensor type, that is).