Returns a currently violated constraint from the constraint set, i.e. all the constraints whose violation count is currently nonzero. If there are several, a random one is returned.
If the constraints were added with aliases (see :~ /2), the alias term is retrieved instead of the constraint goal.
?- [X, Y] tent_set [3, 4], CS :~ (X $= Y), CS :~ (X $\= Y), cs_random_violated(CS, C). X = X{3 -> 0} Y = Y{4 -> 0} CS = constraint_set(TotalVio{1 -> 0}, ...) C = X{3 -> 0} $= Y{4 -> 0} There are 2 delayed goals. Yes (0.00s cpu)