git-subtree-dir: software/mza git-subtree-split: f970a59b177c13ca3dd8aaef8cc6681d83b7e813
10 lines
386 B
MiniZinc
10 lines
386 B
MiniZinc
predicate fzn_if_then_else_var_set(array[int] of var bool: c, array[int] of var set of int: x, var set of int: y) =
|
|
let { array[index_set(c)] of var bool: d; } in
|
|
forall(i in index_set(c))
|
|
(if i > min(index_set(c)) then
|
|
d[i] = (not c[i-1] /\ d[i-1])
|
|
else
|
|
d[i] = true
|
|
endif) /\
|
|
forall (i in index_set(c)) (c[i] /\ d[i] -> y=x[i]);
|