1predicate fzn_nvalue_reif(var int: n, array[int] of var int: x, var bool: b) = 2 let { int: lx = lb_array(x), 3 int: ux = ub_array(x), 4 } in b <-> 5 n == sum(j in lx..ux) ( 6 bool2int(exists(i in index_set(x)) ( x[i] = j )) 7 );