1include "all_different.mzn"; 2 3predicate fzn_symmetric_all_different_reif(array[int] of var int:x, var bool: b) = 4 b <-> ( all_different(x) 5 /\ forall(i, j in index_set(x) where i!=j) (x[i] = j -> x[j] = i) );