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 1..12: INT____00004 :: is_defined_var :: var_is_introduced; var 1..31: INT____00005 :: is_defined_var :: var_is_introduced; var 0..99: INT____00006 :: is_defined_var :: var_is_introduced; var 1..31: day :: output_var = INT____00005; var 1..999999: day_month_year; var 1..999999: INT____00010 :: var_is_introduced = day_month_year; array [1..6] of var 0..9: day_month_year_a; var 1..12: month :: output_var = INT____00004; var 1..999999: month_day_year; var 1..999999: INT____00009 :: var_is_introduced = month_day_year; array [1..6] of var 0..9: month_day_year_a; var int: y1; var int: y2; var 0..99: year :: output_var = INT____00006; constraint int_le(1, y1); constraint int_le(1, y2); constraint int_le(day_month_year_a[1], 9); constraint int_le(day_month_year_a[2], 9); constraint int_le(day_month_year_a[3], 9); constraint int_le(day_month_year_a[4], 9); constraint int_le(day_month_year_a[5], 9); constraint int_le(day_month_year_a[6], 9); constraint int_le(month_day_year_a[1], 9); constraint int_le(month_day_year_a[2], 9); constraint int_le(month_day_year_a[3], 9); constraint int_le(month_day_year_a[4], 9); constraint int_le(month_day_year_a[5], 9); constraint int_le(month_day_year_a[6], 9); constraint int_lin_eq([-1, 10, 1], [INT____00004, day_month_year_a[3], day_month_year_a[4]], 0); constraint int_lin_eq([-1, 10, 1], [INT____00004, month_day_year_a[1], month_day_year_a[2]], 0) :: defines_var(INT____00004); constraint int_lin_eq([-1, 10, 1], [INT____00005, day_month_year_a[1], day_month_year_a[2]], 0); constraint int_lin_eq([-1, 10, 1], [INT____00005, month_day_year_a[3], month_day_year_a[4]], 0) :: defines_var(INT____00005); constraint int_lin_eq([-1, 10, 1], [INT____00006, day_month_year_a[5], day_month_year_a[6]], 0); constraint int_lin_eq([-1, 10, 1], [INT____00006, month_day_year_a[5], month_day_year_a[6]], 0) :: defines_var(INT____00006); constraint int_lin_eq([-1, 100000, 10000, 1000, 100, 10, 1], [day_month_year, day_month_year_a[1], day_month_year_a[2], day_month_year_a[3], day_month_year_a[4], day_month_year_a[5], day_month_year_a[6]], 0); constraint int_lin_eq([-1, 100000, 10000, 1000, 100, 10, 1], [month_day_year, month_day_year_a[1], month_day_year_a[2], month_day_year_a[3], month_day_year_a[4], month_day_year_a[5], month_day_year_a[6]], 0); constraint int_ne(INT____00004, INT____00005); constraint int_times(y1, y1, INT____00009); constraint int_times(y2, y2, INT____00010); solve :: int_search([day_month_year_a[1], day_month_year_a[2], day_month_year_a[3], day_month_year_a[4], day_month_year_a[5], day_month_year_a[6], month_day_year_a[1], month_day_year_a[2], month_day_year_a[3], month_day_year_a[4], month_day_year_a[5], month_day_year_a[6]], first_fail, indomain_max, complete) satisfy;