I was more refering to this thread:
Errors considered harmful
https://swi-prolog.discourse.group/t/errors-considered-harmful/3574
Which probably gives an understanding why clp(BNR)
silently fails, although it could maybe also throw an error if it
sees an arithmetic expression, it cannot deal with.
But I am not 100% sure where the error is. If (^)/2 is supposed
to deal with integers, what does that mean? I find this
discrepancy of (^)/2 and (**)/2:
With (^)/2:
?- P::real(0,1), {1 < P^2}.
false.
?- P::real(0,1), {1 >= P^2}.
false.
With (**)/2:
?- P::real(0,1), {1 < P**2}.
false.
?- P::real(0,1), {1 >= P**2}.
P::real(0, 1).
And I don’t understand it.