I'm wondering if we could we unifyB=A
here:
Ain0..100, B #= min(100, A).
returns:
clpz:(B#=min(100,A)),clpz:(A#>=B),clpz:(A in 0..100),clpz:(B in 0..100) ? yes
Especially if A can definitely not be less than 100:
| ?- [A, B] ins 0..100, B #= min(100, A), B#\=A, labeling([], [A,B]).no