@ridgeworks, using clpBNR with the following code:
:- use_module(library(clpBNR)).
distinct([]) .
distinct([X|Xs]):- distinct(Xs,X), distinct(Xs).
distinct([],_).
distinct([X|Xs],Y):- {X<>Y}, distinct(Xs,Y).
sum([],0).
sum([H|T], Sum) :-
{ Sum == H + Sum1 },
sum(T,Sum1).
Why does the following query fail?
2 ?- length(L,3),L::integer(1,5),distinct(L), sum(L,S), S::integer, global_minimum(S,Min), enumerate(L).
false.
The following works:
4 ?- length(L,3),L::integer(1,5), sum(L,S), S::integer, global_minimum(S,Min), enumerate(L).
L = [1, 1, 1],
S = Min, Min = 3.
So my guess is that global_minimum/2 canât handle <,> and <> for the integer domain? What would be a workaround?