git-subtree-dir: software/minizinc git-subtree-split: 4f10c82056ffcb1041d7ffef29d77a7eef92cf76
17 lines
811 B
MiniZinc
17 lines
811 B
MiniZinc
include "fzn_inverse_in_range.mzn";
|
|
include "fzn_inverse_in_range_reif.mzn";
|
|
|
|
/** @group globals.channeling
|
|
If the \a i th variable of the collection \a X is assigned to \a j and if \a j is in the index set of \a Y then the \a j th variable of the collection \a Y is assigned to \a i.
|
|
|
|
Conversely, if the \a j th variable of the collection \a Y is assigned to \a i and if \a i is in the index set of \a X then the \a i th variable of the collection \a X is assigned to \a j.
|
|
*/
|
|
predicate inverse_in_range(array[int] of var int: f,
|
|
array[int] of var int: invf) =
|
|
fzn_inverse_in_range(f, invf);
|
|
|
|
predicate inverse_in_range_reif(array[int] of var int: f,
|
|
array[int] of var int: invf,
|
|
var bool: b) =
|
|
fzn_inverse_in_range_reif(f, invf, b);
|