1predicate fzn_all_different_int(array [int] of var int: x); 2predicate count(array [int] of var int: x, var int: y, var int: c); 3predicate fixed_fzn_cumulative(array [int] of var int: s, array [int] of int: d, array [int] of int: r, int: b); 4predicate global_cardinality(array [int] of var int: x, array [int] of int: cover, array [int] of var int: counts); 5predicate maximum_int(var int: m, array [int] of var int: x); 6predicate minimum_int(var int: m, array [int] of var int: x); 7predicate sliding_sum(int: low, int: up, int: seq, array [int] of var int: vs); 8predicate sort(array [int] of var int: x, array [int] of var int: y); 9predicate table_bool(array [int] of var bool: x, array [int, int] of bool: t); 10predicate table_int(array [int] of var int: x, array [int, int] of int: t); 11predicate var_fzn_cumulative(array [int] of var int: s, array [int] of int: d, array [int] of int: r, var int: b); 12var bool: BOOL____00002 :: is_defined_var :: var_is_introduced; 13var bool: BOOL____00004 :: is_defined_var :: var_is_introduced; 14var bool: BOOL____00006 :: is_defined_var :: var_is_introduced; 15var bool: BOOL____00008 :: is_defined_var :: var_is_introduced; 16var 0..1: INT____00009 :: is_defined_var :: var_is_introduced; 17var 0..1: INT____00010 :: is_defined_var :: var_is_introduced; 18var 0..1: INT____00011 :: is_defined_var :: var_is_introduced; 19var 0..1: INT____00012 :: is_defined_var :: var_is_introduced; 20array [1..4] of var 0..1: c_pos :: output_array([1..4]); 21var 0..4: num_changes :: output_var = 2; 22array [1..5] of var int: x :: output_array([1..5]); 23constraint bool2int(BOOL____00002, INT____00009) :: defines_var(INT____00009); 24constraint bool2int(BOOL____00004, INT____00010) :: defines_var(INT____00010); 25constraint bool2int(BOOL____00006, INT____00011) :: defines_var(INT____00011); 26constraint bool2int(BOOL____00008, INT____00012) :: defines_var(INT____00012); 27constraint int_eq_reif(c_pos[1], 1, BOOL____00002); 28constraint int_eq_reif(c_pos[2], 1, BOOL____00004); 29constraint int_eq_reif(c_pos[3], 1, BOOL____00006); 30constraint int_eq_reif(c_pos[4], 1, BOOL____00008); 31constraint int_le(1, x[1]); 32constraint int_le(1, x[2]); 33constraint int_le(1, x[3]); 34constraint int_le(1, x[4]); 35constraint int_le(1, x[5]); 36constraint int_le(x[1], 5); 37constraint int_le(x[2], 5); 38constraint int_le(x[3], 5); 39constraint int_le(x[4], 5); 40constraint int_le(x[5], 5); 41constraint int_lin_eq([-1, 1, 1, 1, 1], [2, INT____00009, INT____00010, INT____00011, INT____00012], 0); 42constraint int_ne_reif(x[1], x[2], BOOL____00002) :: defines_var(BOOL____00002); 43constraint int_ne_reif(x[2], x[3], BOOL____00004) :: defines_var(BOOL____00004); 44constraint int_ne_reif(x[3], x[4], BOOL____00006) :: defines_var(BOOL____00006); 45constraint int_ne_reif(x[4], x[5], BOOL____00008) :: defines_var(BOOL____00008); 46solve satisfy; 47