Question: How reliable is coulditbe?

I was looking at coulditbe  to see if I can use it to check if odetest result can be zero or not.

But I am finding very strange results. It gives false positive too many times.

Here is an expression in x only. Plotting this it is clear it is never zero for any x value. Also asking Maple to solve this expression=0 for x, it finds no solution.  Yet, when I say coulditbe(e=0) it says true. also is(e=0) returns false.

How could this be possible?  How did coulditbe determine there is some x which makes this expression zero? Is there a way to make sure this function do not give false positive in this example? do I need to add some assumptions may be? 

Should I use is(e=0) instead of coulditbe(e=0) if  the is is more reliable?  have not used these commands much before and was looking for better ways to check if the residual from odetest can be verified it is zero or not.

I also added _EnvTry:='hard'; but it made no difference.  It still gives true.

Maple 2024.1 on windows.

restart;

e:=sqrt(2)*sqrt((3*x^3 + 5*sqrt(x^2 + 8)*x^2 + 24*x + 36*sqrt(x^2 + 8))/sqrt(x^2 + 8))/8 + x/8 + (3*x^2)/(8*sqrt(x^2 + 8)) + 3/sqrt(x^2 + 8);

(1/8)*2^(1/2)*((3*x^3+5*(x^2+8)^(1/2)*x^2+24*x+36*(x^2+8)^(1/2))/(x^2+8)^(1/2))^(1/2)+(1/8)*x+(3/8)*x^2/(x^2+8)^(1/2)+3/(x^2+8)^(1/2)

plot(e,x=-10..10,y=0..4 );

is(e=0);

false

solve(e=0,x); #no solution

x

coulditbe(e=0)

true

_EnvTry:='hard';

hard

coulditbe(e=0)

true

 


 

Download coulditbe_question.mw

Update

I just found out that by adding  assume(x::real); before the call to coulditbe or by adding assuming, then it no longer returns true, but now returns FAIL.

This is much better. At least not a false positive.

So it looks like it was assuming x (and any other parameter than can be in the expression) can be complex and for some complex x, this expression can be zero.

So I will add this assumption now. So I think this will work. But need to test it more.

coulditbe(e=0) assuming x::real;

            FAIL

Please Wait...