predicate _int_lin_le_imp( array[int] of int: c, array[int] of var int: x, int: d, var bool: b ) = if is_fixed(b) then if fix(b) then int_lin_le(c, x, d) else true endif else int_lin_le_imp(c, x, d, b) endif;