@ecterrab

Thank you for your quick reply and a fast implementation of `tryhard` option. Unfortunately, we were not able to use it in previous versions because it was not present (e.g. version 40.0 from December 12, 2014, here is a link). Unfortunately, another solution you have suggested is also not working in previous versions, i.e. was giving the same result as plain `Simplify`. We’ve managed to try `tryhard` option and it works fine on 6 examples you posted. However, still most of even trivial examples we’ve provided are not simplified correctly (version 40.7 from December 15, 2014, here is a link):

with(Physics):with(Library):Setup(spacetimeindices = lowercaselatin):

Define(A[a]):Define(B[a,b]):Define(F[a,b,c]):Define(H[a,b,c,d]):Define(J[a,b,c,d,e]):

#Fails with error:

#Error, (in Do["indices"]) invalid input: mul expects 2 arguments, but received 1

Simplify(F[~d,~c,g]*J[e,a,c,b,~f]*J[~e,h,f,d,~g]*A[~h]-J[d,a,e,b,~f]*F[~g,~e,c]*J[~d,h,f,g,~c]*A[~h], tryhard);

#Does not give zero

Simplify(A[f]*H[~f,e,~g,~d]*B[g,a]*F[b,c,h]*H[~h,~c,d,~e]-F[b,e,f]*H[~f,~e,c,~h]*A[g]*H[~g,h,~d,~c]*B[d,a], tryhard);

#Does not give zero

Simplify(A[d]*F[~e,a,c]*A[~d]*F[~c,e,b]-A[~e]*F[~c,a,d]*A[e]*F[~d,c,b], tryhard);

#Fails with error:

#Error, (in Do["indices"]) invalid input: mul expects 2 arguments, but received 1

Simplify(F[a,d,~f]*F[f,~b,~d]*A[b]*B[e,~e]-B[e,~e]*F[b,~d,~f]*A[d]*F[a,f,~b], tryhard);

#Fails with error:

#Error, (in Do["indices"]) invalid input: mul expects 2 arguments, but received 1

Simplify(F[f,d,~d]*A[a]*H[g,~g,~h,h]*A[~f]-H[g,~g,~f,f]*A[~d]*A[a]*F[d,h,~h], tryhard);

You can run any provided file (Maple18_allSimple.txt, Maple18_allMedium.txt, Maple18_allHarder.txt etc.) with `tryhard` option and check that still most of even trivial examples are not working:

cat Maple18_failSimple.maple | sed -e 's/Simplify(tTensor)=0/Simplify(tTensor, tryhard)=0/' > Maple18_failSimple_with_tryhard.maple

maple Maple18_failSimple_with_tryhard.maple

etc. Perhaps, considering the code is still in beta version, you can make some parts of the code public, so with the help of community it will be easier to fix the implementation and provide sufficient testing of simplification of tensorial expressions in Maple Physics.

I think it will be good to start with the examples provided, and after Physics will be able to solve at least all examples I’ve attached, that will be a good basis for further improvements of tensor functionality. Unfortunately, the current version is clearly unsatisfactory for tensor manipulations.

I’m really looking forward for more stable version of Physics regarding tensor functionality.