1predicate fzn_global_cardinality_low_up(array[int] of var int: x, 2 array[int] of int: cover, 3 array[int] of int: lbound, 4 array[int] of int: ubound) = 5 forall(i in index_set(cover)) ( 6 sum(j in index_set(x)) ( bool2int(x[j] = cover[i]) ) 7 in lbound[i]..ubound[i] 8 );