git-subtree-dir: software/minizinc git-subtree-split: 4f10c82056ffcb1041d7ffef29d77a7eef92cf76
12 lines
456 B
MiniZinc
12 lines
456 B
MiniZinc
predicate fzn_if_then_else_partiality(array[int] of var bool: c, array[int] of var bool: def, var bool: b) =
|
|
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))
|
|
( (b /\ c[i] /\ d[i] -> def[i])) /\
|
|
forall (i in index_set(c)) (d[i] /\ c[i] /\ def[i] -> b);
|