I'm basically following the eliminate_metric example from the website:
{m, n, p, q, r}::Indices(vector, position=fixed).
{m, n, p, q, r}::Integer(0..9).
g_{m n}::Metric.
g^{m n}::InverseMetric.
g_{m}^{n}::KroneckerDelta.
g^{m}_{n}::KroneckerDelta.
ex:=g_{m p} g^{p m};
eliminate_metric(_);
eliminate_kronecker(_);
but I'm working with doubled coordinates, meaning that my coordinates go from 0 to 2D-1. Therefore, if I change the corresponding part to
{m, n, p, q, r}::Integer(0..2*D-1).
the output is, against all odds and common sense, D. You may be thinking that it won't work with such terms, but I've stumbled upon a bizzare bug; here are some examples of different inputs and outputs:
{m, n, p, q, r}::Integer(0..D).
D+1
{m, n, p, q, r}::Integer(0..2 D + 1).
2D+2
{m, n, p, q, r}::Integer(0..3D-1).
D
{m, n, p, q, r}::Integer(0..2*(D-1)).
2D-1
It seems that when the dimensionality of Kronecker is a multiple of D, it stops working properly. Any ideas on why this is happening? What can be done to fix it?