In Sicstus 4.2.3 it is possible to do like this:
| ?- X in 0..2, labeling( [minimize(X), time_out(1000, Lr)],[X] ).
X = 0,
Lr = success ? yes
| ?-
If you do the same in Sicstus 4.3.0 you get:
| ?- X in 0..2, labeling( [minimize(X), time_out(1000, Lr)],[X] ).
X = 0 ? yes
| ?-
What happened to Lr
in 4.3.0?
And how do you know if the solution you get in 4.3.0 is the optimal solution or if the solution is a non-optimal solution?
It's a bug of course. Lr should be bound to 'success'. With Lr left unbound, there is no telling whether the solution is optimal.
Thanks for reporting this!