include "count_fn.mzn"; predicate fzn_count_geq_reif(array[int] of var int: x, var int: y, var int: c, var bool: b) = let { var int: z = count(x,y) } in b <-> z <= c; % This needs to be written with a let rather than count(x,y) <= c % so that the automatic rewriting of the latter doesn't kick in %-----------------------------------------------------------------------------%