predicate all_different_int(array [int] of var int: x); predicate count(array [int] of var int: x, var int: y, var int: c); predicate fixed_cumulative(array [int] of var int: s, array [int] of int: d, array [int] of int: r, int: b); predicate global_cardinality(array [int] of var int: x, array [int] of int: cover, array [int] of var int: counts); predicate maximum_int(var int: m, array [int] of var int: x); predicate minimum_int(var int: m, array [int] of var int: x); predicate sliding_sum(int: low, int: up, int: seq, array [int] of var int: vs); predicate sort(array [int] of var int: x, array [int] of var int: y); predicate table_bool(array [int] of var bool: x, array [int, int] of bool: t); predicate table_int(array [int] of var int: x, array [int, int] of int: t); predicate var_cumulative(array [int] of var int: s, array [int] of int: d, array [int] of int: r, var int: b); var 40..9998: INT____00008 :: is_defined_var :: var_is_introduced; var 40..9998: INT____00017 :: is_defined_var :: var_is_introduced; array [1..4] of var 0..9: a1____00002; array [1..4] of var 0..9: a1____00011; array [1..4] of var 0..9: a2____00003; array [1..4] of var 0..9: a2____00012; var 40..9998: n1 :: output_var = INT____00008; var 40..9998: n2 :: output_var = INT____00017; var 41..9999: x2____00001; var 41..9999: x2____00010; constraint int_eq(a2____00003[1], a1____00002[4]); constraint int_eq(a2____00003[2], a1____00002[3]); constraint int_eq(a2____00003[3], a1____00002[2]); constraint int_eq(a2____00003[4], a1____00002[1]); constraint int_eq(a2____00012[1], a1____00011[4]); constraint int_eq(a2____00012[2], a1____00011[3]); constraint int_eq(a2____00012[3], a1____00011[2]); constraint int_eq(a2____00012[4], a1____00011[1]); constraint int_lin_eq([-1, 1000, 100, 10, 1], [INT____00008, a1____00002[1], a1____00002[2], a1____00002[3], a1____00002[4]], 0) :: defines_var(INT____00008); constraint int_lin_eq([-1, 1000, 100, 10, 1], [INT____00017, a1____00011[1], a1____00011[2], a1____00011[3], a1____00011[4]], 0) :: defines_var(INT____00017); constraint int_lin_eq([-1, 1000, 100, 10, 1], [x2____00001, a2____00003[1], a2____00003[2], a2____00003[3], a2____00003[4]], 0); constraint int_lin_eq([-1, 1000, 100, 10, 1], [x2____00010, a2____00012[1], a2____00012[2], a2____00012[3], a2____00012[4]], 0); constraint int_lt(0, a1____00002[1]); constraint int_lt(0, a1____00011[1]); constraint int_lt(0, a2____00003[1]); constraint int_lt(0, a2____00012[1]); constraint int_lt(n1, x2____00001); constraint int_lt(n2, x2____00010); constraint int_mod(n1, 11, 0); constraint int_mod(n1, 13, 0); constraint int_mod(n2, 17, 0); constraint int_mod(n2, 19, 0); constraint int_mod(x2____00001, 11, 0); constraint int_mod(x2____00001, 13, 0); constraint int_mod(x2____00010, 17, 0); constraint int_mod(x2____00010, 19, 0); solve :: int_search([INT____00008, INT____00017], first_fail, indomain_min, complete) satisfy;