this repo has no description
1include "fzn_cumulative.mzn";
2
3predicate fzn_disjunctive_strict(array[int] of var int: s,
4 array[int] of var int: d) =
5 assert(index_set(s) == index_set(d),
6 "disjunctive: the array arguments must have identical index sets",
7 forall (i in index_set(d)) (d[i] >= 0) /\
8 if forall (i in index_set(d)) (is_fixed(d[i])) then
9 fzn_cumulative(s,d,array1d(index_set(d),[1 | i in index_set(d)]),1)
10 else
11 forall (i,j in index_set(d) where i<j) (
12 s[i]+d[i] <= s[j] \/ s[j]+d[j] <= s[i]
13 )
14 endif
15 );