this repo has no description
1include "fzn_inverse.mzn";
2include "fzn_inverse_reif.mzn";
3include "analyse_all_different.mzn";
4
5/** @group globals.channeling
6 Constrains two arrays of int variables, \a f and \a invf, to represent
7 inverse functions. All the values in each array must be within the index
8 set of the other array.
9*/
10predicate inverse(array[int] of var int: f,
11 array[int] of var int: invf) =
12 analyse_all_different(f) /\
13 analyse_all_different(invf) /\
14 fzn_inverse(f, invf);
15
16predicate inverse_reif(array[int] of var int: f,
17 array[int] of var int: invf,
18 var bool: b) =
19 fzn_inverse_reif(f, invf, b);