Imposing assumptions on coordinates in the Maple package DifferentialGeometry Does anyone have experience in putting assumptions on the coordinates in Maple's DifferentialGeometry Package?
My problem is that I am trying to compute some Laplace-Beltrami operators. Maple has this command but the output is almost unreadable sometimes because of the many $\textrm{csgn}$ functions. I've tried to create an easy example: 
Setting up a frame and a Riemannian metric like so
DGsetup([x], R);

h := evalDG(dx &t dx/(x^2+1)^2);

and then trying to evaluate
Laplacian(h, f(x));

returns 
$-\sqrt { \left( {x}^{2}+1 \right) ^{2}}{\it csgn} \left( {x}^{2}+1
 \right)  \left(  \left( {\frac {{\rm d}^{2}}{{\rm d}{x}^{2}}}f
 \left( x \right)  \right) {x}^{2}+2\, \left( {\frac {\rm d}{{\rm d}x}
}f \left( x \right)  \right) x+{\frac {{\rm d}^{2}}{{\rm d}{x}^{2}}}f
 \left( x \right)  \right) 
$
Obviously $csgn(x^2+1)$ should be $1$ but Maple does not regard $x$ as a real variable. In this example it is not bad but in higher dimensions this problem makes the computations entirely useless.
But, running
Laplacian(h, f(x)) assuming x::real;

returns $0$. Also, I can't use assume on coordinates since they are protected. 
In  The Maple help page on DGconjugate
it is mentioned that the coordinate variables are assumed real, but probably this is only so for the purpose of that command. 
Has anyone had a similar problem and did you find a satisfying workaround? 
 A: You might still utilize that assumption on the result from the Laplacian command. You might utilize it on a call to simplfy, for example.
Eg,
restart;

with(DifferentialGeometry):
DGsetup([x], R):

h := evalDG(dx &t dx/(x^2+1)^2):

result := Tensor:-Laplacian(h, f(x)):

simplify(result) assuming x::real;

$$- \left( {x}^{2}+1 \right)  \left(  \left( {\frac {{\rm d}^{2}}{
{\rm d}{x}^{2}}}f \left( x \right)  \right) {x}^{2}+2\, \left( {\frac 
{\rm d}{{\rm d}x}}f \left( x \right)  \right) x+{\frac {{\rm d}^{2}}{
{\rm d}{x}^{2}}}f \left( x \right)  \right)
$$
That'll be simpler than having to figure out all the substitutions to enter by hand.
A: I use this package often and don't know a way to resolve this using the functionality of $\texttt{DifferentialGeometry}$ package itself but one can always eliminate these expressions on an ad hoc basis using the subs() routine:
with(DifferentialGeometry):
DGsetup([x], R);
h := evalDG(dx &t dx/(x^2+1)^2);
subs({sqrt((x^2+1)^2) = x^2 + 1, csgn(x^2+1) = 1}, Tensor:-Laplacian(h, f(x)));

This yields the cleaner output
$-\left( {x}^{2}+1 \right) \left(  \left( {\frac {{\rm d}^{2}}{{\rm d}{x}^{2}}}f
 \left( x \right)  \right) {x}^{2}+2\, \left( {\frac {\rm d}{{\rm d}x}
}f \left( x \right)  \right) x+{\frac {{\rm d}^{2}}{{\rm d}{x}^{2}}}f
 \left( x \right)  \right)  .
$
