All good questions.
This doesn’t help. A new lower bound is calculated from the interval argument’s lower bounds, and similarly for the upper bound. So the two expressions aren’t the same.
This is all handled at the application level which is doing the equivalent of breal
arithmetic. Of course, I’m open to the suggestion of adding breal
s to SWIP I am sympathetic to your view that:
But I think that, with the support of attributed variables, you can build effective constraint libraries on top of SWIP so you can take advantage of the rest of SWIP’s considerable eco-system. I believe I can demonstrate that with a CLP over reals implemented entirely in Prolog, but it’s spending upwards of 25% of the time just calculating interval bounds so I’m somewhat motivated to see if anything can be done about that without upsetting the apple cart too much.