1include "all_disjoint.mzn"; 2 3predicate fzn_partition_set_reif(array[int] of var set of int: S, 4 set of int: universe, 5 var bool: b) = 6 b <-> ( all_disjoint(S) /\ universe == array_union(i in index_set(S)) ( S[i] ) );