array [1..15] of int: tree_levels = [1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4]; var bool: BOOL____00015 :: is_defined_var :: var_is_introduced; var bool: BOOL____00016 :: is_defined_var :: var_is_introduced; var bool: BOOL____00017 :: is_defined_var :: var_is_introduced; var bool: BOOL____00018 :: is_defined_var :: var_is_introduced; var bool: BOOL____00019 :: is_defined_var :: var_is_introduced; var bool: BOOL____00020 :: is_defined_var :: var_is_introduced; var bool: BOOL____00021 :: is_defined_var :: var_is_introduced; var bool: BOOL____00022 :: is_defined_var :: var_is_introduced; var bool: BOOL____00023 :: is_defined_var :: var_is_introduced; var bool: BOOL____00024 :: is_defined_var :: var_is_introduced; var bool: BOOL____00025 :: is_defined_var :: var_is_introduced; var bool: BOOL____00026 :: is_defined_var :: var_is_introduced; var bool: BOOL____00027 :: is_defined_var :: var_is_introduced; var bool: BOOL____00028 :: is_defined_var :: var_is_introduced; var bool: BOOL____00029 :: is_defined_var :: var_is_introduced; var bool: BOOL____00030 :: is_defined_var :: var_is_introduced; var bool: BOOL____00031 :: is_defined_var :: var_is_introduced; var bool: BOOL____00032 :: is_defined_var :: var_is_introduced; var bool: BOOL____00033 :: is_defined_var :: var_is_introduced; var bool: BOOL____00034 :: is_defined_var :: var_is_introduced; var bool: BOOL____00035 :: is_defined_var :: var_is_introduced; var bool: BOOL____00036 :: is_defined_var :: var_is_introduced; var bool: BOOL____00037 :: is_defined_var :: var_is_introduced; var bool: BOOL____00038 :: is_defined_var :: var_is_introduced; var bool: BOOL____00039 :: is_defined_var :: var_is_introduced; var bool: BOOL____00040 :: is_defined_var :: var_is_introduced; var bool: BOOL____00041 :: is_defined_var :: var_is_introduced; var bool: BOOL____00042 :: is_defined_var :: var_is_introduced; array [1..15] of var 1..15: node_used :: output_array([1..15]); array [1..15] of var int: x :: output_array([1..15]); var int: X____00007 = x[7]; var int: X____00006 = x[6]; var int: X____00005 = x[5]; var int: X____00004 = x[4]; var int: X____00003 = x[3]; var int: X____00002 = x[2]; var int: X____00001 = x[1]; constraint array_var_int_element(node_used[1], x, x[1]); constraint array_var_int_element(node_used[2], x, x[2]); constraint array_var_int_element(node_used[3], x, x[3]); constraint array_var_int_element(node_used[4], x, x[4]); constraint array_var_int_element(node_used[5], x, x[5]); constraint array_var_int_element(node_used[6], x, x[6]); constraint array_var_int_element(node_used[7], x, x[7]); constraint bool_le(BOOL____00015, BOOL____00016); constraint bool_le(BOOL____00017, BOOL____00018); constraint bool_le(BOOL____00019, BOOL____00020); constraint bool_le(BOOL____00021, BOOL____00022); constraint bool_le(BOOL____00023, BOOL____00024); constraint bool_le(BOOL____00025, BOOL____00026); constraint bool_le(BOOL____00027, BOOL____00028); constraint bool_le(BOOL____00029, BOOL____00030); constraint bool_le(BOOL____00031, BOOL____00032); constraint bool_le(BOOL____00033, BOOL____00034); constraint bool_le(BOOL____00035, BOOL____00036); constraint bool_le(BOOL____00037, BOOL____00038); constraint bool_le(BOOL____00039, BOOL____00040); constraint bool_le(BOOL____00041, BOOL____00042); constraint int_eq(node_used[8], 8); constraint int_eq(node_used[9], 9); constraint int_eq(node_used[10], 10); constraint int_eq(node_used[11], 11); constraint int_eq(node_used[12], 12); constraint int_eq(node_used[13], 13); constraint int_eq(node_used[14], 14); constraint int_eq(node_used[15], 15); constraint int_eq(x[8], 1); constraint int_eq(x[9], 2); constraint int_eq(x[10], 3); constraint int_eq(x[11], 4); constraint int_eq(x[12], 5); constraint int_eq(x[13], 6); constraint int_eq(x[14], 7); constraint int_eq(x[15], 8); constraint int_eq_reif(node_used[1], 2, BOOL____00016) :: defines_var(BOOL____00016); constraint int_eq_reif(node_used[1], 3, BOOL____00018) :: defines_var(BOOL____00018); constraint int_eq_reif(node_used[2], 4, BOOL____00020) :: defines_var(BOOL____00020); constraint int_eq_reif(node_used[2], 5, BOOL____00022) :: defines_var(BOOL____00022); constraint int_eq_reif(node_used[3], 6, BOOL____00024) :: defines_var(BOOL____00024); constraint int_eq_reif(node_used[3], 7, BOOL____00026) :: defines_var(BOOL____00026); constraint int_eq_reif(node_used[4], 8, BOOL____00028) :: defines_var(BOOL____00028); constraint int_eq_reif(node_used[4], 9, BOOL____00030) :: defines_var(BOOL____00030); constraint int_eq_reif(node_used[5], 10, BOOL____00032) :: defines_var(BOOL____00032); constraint int_eq_reif(node_used[5], 11, BOOL____00034) :: defines_var(BOOL____00034); constraint int_eq_reif(node_used[6], 12, BOOL____00036) :: defines_var(BOOL____00036); constraint int_eq_reif(node_used[6], 13, BOOL____00038) :: defines_var(BOOL____00038); constraint int_eq_reif(node_used[7], 14, BOOL____00040) :: defines_var(BOOL____00040); constraint int_eq_reif(node_used[7], 15, BOOL____00042) :: defines_var(BOOL____00042); constraint int_le_reif(x[3], x[2], BOOL____00015) :: defines_var(BOOL____00015); constraint int_le_reif(x[9], x[8], BOOL____00027) :: defines_var(BOOL____00027); constraint int_le_reif(x[11], x[10], BOOL____00031) :: defines_var(BOOL____00031); constraint int_le_reif(x[13], x[12], BOOL____00035) :: defines_var(BOOL____00035); constraint int_le_reif(x[15], x[14], BOOL____00039) :: defines_var(BOOL____00039); constraint int_lin_le_reif([-1, 1], [x[4], x[5]], -1, BOOL____00021) :: defines_var(BOOL____00021); constraint int_lin_le_reif([-1, 1], [x[6], x[7]], -1, BOOL____00025) :: defines_var(BOOL____00025); constraint int_lin_le_reif([1, -1], [x[4], x[5]], 0, BOOL____00019) :: defines_var(BOOL____00019); constraint int_lin_le_reif([1, -1], [x[6], x[7]], 0, BOOL____00023) :: defines_var(BOOL____00023); constraint int_lt_reif(x[2], x[3], BOOL____00017) :: defines_var(BOOL____00017); constraint int_lt_reif(x[8], x[9], BOOL____00029) :: defines_var(BOOL____00029); constraint int_lt_reif(x[10], x[11], BOOL____00033) :: defines_var(BOOL____00033); constraint int_lt_reif(x[12], x[13], BOOL____00037) :: defines_var(BOOL____00037); constraint int_lt_reif(x[14], x[15], BOOL____00041) :: defines_var(BOOL____00041); solve satisfy;