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 bool: BOOL____00057 :: is_defined_var :: var_is_introduced; var bool: BOOL____00058 :: is_defined_var :: var_is_introduced; var bool: BOOL____00059 :: is_defined_var :: var_is_introduced; var bool: BOOL____00060 :: is_defined_var :: var_is_introduced; var bool: BOOL____00061 :: is_defined_var :: var_is_introduced; var bool: BOOL____00062 :: is_defined_var :: var_is_introduced; var bool: BOOL____00063 :: is_defined_var :: var_is_introduced; var bool: BOOL____00064 :: is_defined_var :: var_is_introduced; var bool: BOOL____00065 :: is_defined_var :: var_is_introduced; var bool: BOOL____00067 :: is_defined_var :: var_is_introduced; var bool: BOOL____00068 :: is_defined_var :: var_is_introduced; var bool: BOOL____00069 :: is_defined_var :: var_is_introduced; var bool: BOOL____00070 :: is_defined_var :: var_is_introduced; var bool: BOOL____00071 :: is_defined_var :: var_is_introduced; var bool: BOOL____00072 :: is_defined_var :: var_is_introduced; var bool: BOOL____00073 :: is_defined_var :: var_is_introduced; var bool: BOOL____00074 :: is_defined_var :: var_is_introduced; var bool: BOOL____00075 :: is_defined_var :: var_is_introduced; var bool: BOOL____00077 :: is_defined_var :: var_is_introduced; var bool: BOOL____00078 :: is_defined_var :: var_is_introduced; var bool: BOOL____00079 :: is_defined_var :: var_is_introduced; var bool: BOOL____00080 :: is_defined_var :: var_is_introduced; var bool: BOOL____00081 :: is_defined_var :: var_is_introduced; var bool: BOOL____00082 :: is_defined_var :: var_is_introduced; var bool: BOOL____00083 :: is_defined_var :: var_is_introduced; var bool: BOOL____00084 :: is_defined_var :: var_is_introduced; var bool: BOOL____00085 :: is_defined_var :: var_is_introduced; var bool: BOOL____00087 :: is_defined_var :: var_is_introduced; var bool: BOOL____00088 :: is_defined_var :: var_is_introduced; var bool: BOOL____00089 :: is_defined_var :: var_is_introduced; var bool: BOOL____00090 :: is_defined_var :: var_is_introduced; var bool: BOOL____00091 :: is_defined_var :: var_is_introduced; var bool: BOOL____00092 :: is_defined_var :: var_is_introduced; var bool: BOOL____00093 :: is_defined_var :: var_is_introduced; var bool: BOOL____00094 :: is_defined_var :: var_is_introduced; var bool: BOOL____00095 :: is_defined_var :: var_is_introduced; var bool: BOOL____00097 :: is_defined_var :: var_is_introduced; var bool: BOOL____00098 :: is_defined_var :: var_is_introduced; var bool: BOOL____00099 :: is_defined_var :: var_is_introduced; var bool: BOOL____00100 :: is_defined_var :: var_is_introduced; var bool: BOOL____00101 :: is_defined_var :: var_is_introduced; var bool: BOOL____00102 :: is_defined_var :: var_is_introduced; var bool: BOOL____00103 :: is_defined_var :: var_is_introduced; var bool: BOOL____00104 :: is_defined_var :: var_is_introduced; var bool: BOOL____00105 :: is_defined_var :: var_is_introduced; var bool: BOOL____00107 :: is_defined_var :: var_is_introduced; var bool: BOOL____00108 :: is_defined_var :: var_is_introduced; var bool: BOOL____00109 :: is_defined_var :: var_is_introduced; var bool: BOOL____00110 :: is_defined_var :: var_is_introduced; var bool: BOOL____00111 :: is_defined_var :: var_is_introduced; var bool: BOOL____00112 :: is_defined_var :: var_is_introduced; var bool: BOOL____00113 :: is_defined_var :: var_is_introduced; var bool: BOOL____00114 :: is_defined_var :: var_is_introduced; var bool: BOOL____00115 :: is_defined_var :: var_is_introduced; var bool: BOOL____00117 :: is_defined_var :: var_is_introduced; var bool: BOOL____00118 :: is_defined_var :: var_is_introduced; var bool: BOOL____00119 :: is_defined_var :: var_is_introduced; var bool: BOOL____00120 :: is_defined_var :: var_is_introduced; var bool: BOOL____00121 :: is_defined_var :: var_is_introduced; var bool: BOOL____00122 :: is_defined_var :: var_is_introduced; var bool: BOOL____00123 :: is_defined_var :: var_is_introduced; var bool: BOOL____00124 :: is_defined_var :: var_is_introduced; var bool: BOOL____00125 :: is_defined_var :: var_is_introduced; var bool: BOOL____00127 :: is_defined_var :: var_is_introduced; var bool: BOOL____00128 :: is_defined_var :: var_is_introduced; var bool: BOOL____00129 :: is_defined_var :: var_is_introduced; var bool: BOOL____00130 :: is_defined_var :: var_is_introduced; var bool: BOOL____00131 :: is_defined_var :: var_is_introduced; var bool: BOOL____00132 :: is_defined_var :: var_is_introduced; var bool: BOOL____00133 :: is_defined_var :: var_is_introduced; var bool: BOOL____00134 :: is_defined_var :: var_is_introduced; var bool: BOOL____00135 :: is_defined_var :: var_is_introduced; var 0..1: INT____00066 :: is_defined_var :: var_is_introduced; var 0..1: INT____00076 :: is_defined_var :: var_is_introduced; var 0..1: INT____00086 :: is_defined_var :: var_is_introduced; var 0..1: INT____00096 :: is_defined_var :: var_is_introduced; var 0..1: INT____00106 :: is_defined_var :: var_is_introduced; var 0..1: INT____00116 :: is_defined_var :: var_is_introduced; var 0..1: INT____00126 :: is_defined_var :: var_is_introduced; var 0..1: INT____00136 :: is_defined_var :: var_is_introduced; var 1..8: INT____00137 :: is_defined_var :: var_is_introduced; var 1..8: num_trees :: output_var = INT____00137; array [1..64] of var 1..8: parents :: output_array([1..8, 1..8]); array [1..8] of var 1..8: tree :: output_array([1..8]); constraint array_bool_or([BOOL____00064, BOOL____00063, BOOL____00062, BOOL____00061, BOOL____00060, BOOL____00059, BOOL____00058, BOOL____00057], BOOL____00065) :: defines_var(BOOL____00065); constraint array_bool_or([BOOL____00074, BOOL____00073, BOOL____00072, BOOL____00071, BOOL____00070, BOOL____00069, BOOL____00068, BOOL____00067], BOOL____00075) :: defines_var(BOOL____00075); constraint array_bool_or([BOOL____00084, BOOL____00083, BOOL____00082, BOOL____00081, BOOL____00080, BOOL____00079, BOOL____00078, BOOL____00077], BOOL____00085) :: defines_var(BOOL____00085); constraint array_bool_or([BOOL____00094, BOOL____00093, BOOL____00092, BOOL____00091, BOOL____00090, BOOL____00089, BOOL____00088, BOOL____00087], BOOL____00095) :: defines_var(BOOL____00095); constraint array_bool_or([BOOL____00104, BOOL____00103, BOOL____00102, BOOL____00101, BOOL____00100, BOOL____00099, BOOL____00098, BOOL____00097], BOOL____00105) :: defines_var(BOOL____00105); constraint array_bool_or([BOOL____00114, BOOL____00113, BOOL____00112, BOOL____00111, BOOL____00110, BOOL____00109, BOOL____00108, BOOL____00107], BOOL____00115) :: defines_var(BOOL____00115); constraint array_bool_or([BOOL____00124, BOOL____00123, BOOL____00122, BOOL____00121, BOOL____00120, BOOL____00119, BOOL____00118, BOOL____00117], BOOL____00125) :: defines_var(BOOL____00125); constraint array_bool_or([BOOL____00134, BOOL____00133, BOOL____00132, BOOL____00131, BOOL____00130, BOOL____00129, BOOL____00128, BOOL____00127], BOOL____00135) :: defines_var(BOOL____00135); constraint array_var_int_element(parents[1], tree, parents[9]); constraint array_var_int_element(parents[2], tree, parents[10]); constraint array_var_int_element(parents[3], tree, parents[11]); constraint array_var_int_element(parents[4], tree, parents[12]); constraint array_var_int_element(parents[5], tree, parents[13]); constraint array_var_int_element(parents[6], tree, parents[14]); constraint array_var_int_element(parents[7], tree, parents[15]); constraint array_var_int_element(parents[8], tree, parents[16]); constraint array_var_int_element(parents[9], tree, parents[17]); constraint array_var_int_element(parents[10], tree, parents[18]); constraint array_var_int_element(parents[11], tree, parents[19]); constraint array_var_int_element(parents[12], tree, parents[20]); constraint array_var_int_element(parents[13], tree, parents[21]); constraint array_var_int_element(parents[14], tree, parents[22]); constraint array_var_int_element(parents[15], tree, parents[23]); constraint array_var_int_element(parents[16], tree, parents[24]); constraint array_var_int_element(parents[17], tree, parents[25]); constraint array_var_int_element(parents[18], tree, parents[26]); constraint array_var_int_element(parents[19], tree, parents[27]); constraint array_var_int_element(parents[20], tree, parents[28]); constraint array_var_int_element(parents[21], tree, parents[29]); constraint array_var_int_element(parents[22], tree, parents[30]); constraint array_var_int_element(parents[23], tree, parents[31]); constraint array_var_int_element(parents[24], tree, parents[32]); constraint array_var_int_element(parents[25], tree, parents[33]); constraint array_var_int_element(parents[26], tree, parents[34]); constraint array_var_int_element(parents[27], tree, parents[35]); constraint array_var_int_element(parents[28], tree, parents[36]); constraint array_var_int_element(parents[29], tree, parents[37]); constraint array_var_int_element(parents[30], tree, parents[38]); constraint array_var_int_element(parents[31], tree, parents[39]); constraint array_var_int_element(parents[32], tree, parents[40]); constraint array_var_int_element(parents[33], tree, parents[41]); constraint array_var_int_element(parents[34], tree, parents[42]); constraint array_var_int_element(parents[35], tree, parents[43]); constraint array_var_int_element(parents[36], tree, parents[44]); constraint array_var_int_element(parents[37], tree, parents[45]); constraint array_var_int_element(parents[38], tree, parents[46]); constraint array_var_int_element(parents[39], tree, parents[47]); constraint array_var_int_element(parents[40], tree, parents[48]); constraint array_var_int_element(parents[41], tree, parents[49]); constraint array_var_int_element(parents[42], tree, parents[50]); constraint array_var_int_element(parents[43], tree, parents[51]); constraint array_var_int_element(parents[44], tree, parents[52]); constraint array_var_int_element(parents[45], tree, parents[53]); constraint array_var_int_element(parents[46], tree, parents[54]); constraint array_var_int_element(parents[47], tree, parents[55]); constraint array_var_int_element(parents[48], tree, parents[56]); constraint array_var_int_element(parents[49], tree, parents[57]); constraint array_var_int_element(parents[50], tree, parents[58]); constraint array_var_int_element(parents[51], tree, parents[59]); constraint array_var_int_element(parents[52], tree, parents[60]); constraint array_var_int_element(parents[53], tree, parents[61]); constraint array_var_int_element(parents[54], tree, parents[62]); constraint array_var_int_element(parents[55], tree, parents[63]); constraint array_var_int_element(parents[56], tree, parents[64]); constraint bool2int(BOOL____00065, INT____00066) :: defines_var(INT____00066); constraint bool2int(BOOL____00075, INT____00076) :: defines_var(INT____00076); constraint bool2int(BOOL____00085, INT____00086) :: defines_var(INT____00086); constraint bool2int(BOOL____00095, INT____00096) :: defines_var(INT____00096); constraint bool2int(BOOL____00105, INT____00106) :: defines_var(INT____00106); constraint bool2int(BOOL____00115, INT____00116) :: defines_var(INT____00116); constraint bool2int(BOOL____00125, INT____00126) :: defines_var(INT____00126); constraint bool2int(BOOL____00135, INT____00136) :: defines_var(INT____00136); constraint int_eq(1, tree[1]); constraint int_eq(1, tree[5]); constraint int_eq(3, tree[2]); constraint int_eq(3, tree[6]); constraint int_eq(5, tree[3]); constraint int_eq(5, tree[8]); constraint int_eq(7, tree[4]); constraint int_eq(7, tree[7]); constraint int_eq(parents[1], tree[1]); constraint int_eq(parents[2], tree[2]); constraint int_eq(parents[3], tree[3]); constraint int_eq(parents[4], tree[4]); constraint int_eq(parents[5], tree[5]); constraint int_eq(parents[6], tree[6]); constraint int_eq(parents[7], tree[7]); constraint int_eq(parents[8], tree[8]); constraint int_eq_reif(parents[57], 1, BOOL____00057) :: defines_var(BOOL____00057); constraint int_eq_reif(parents[57], 2, BOOL____00067) :: defines_var(BOOL____00067); constraint int_eq_reif(parents[57], 3, BOOL____00077) :: defines_var(BOOL____00077); constraint int_eq_reif(parents[57], 4, BOOL____00087) :: defines_var(BOOL____00087); constraint int_eq_reif(parents[57], 5, BOOL____00097) :: defines_var(BOOL____00097); constraint int_eq_reif(parents[57], 6, BOOL____00107) :: defines_var(BOOL____00107); constraint int_eq_reif(parents[57], 7, BOOL____00117) :: defines_var(BOOL____00117); constraint int_eq_reif(parents[57], 8, BOOL____00127) :: defines_var(BOOL____00127); constraint int_eq_reif(parents[58], 1, BOOL____00058) :: defines_var(BOOL____00058); constraint int_eq_reif(parents[58], 2, BOOL____00068) :: defines_var(BOOL____00068); constraint int_eq_reif(parents[58], 3, BOOL____00078) :: defines_var(BOOL____00078); constraint int_eq_reif(parents[58], 4, BOOL____00088) :: defines_var(BOOL____00088); constraint int_eq_reif(parents[58], 5, BOOL____00098) :: defines_var(BOOL____00098); constraint int_eq_reif(parents[58], 6, BOOL____00108) :: defines_var(BOOL____00108); constraint int_eq_reif(parents[58], 7, BOOL____00118) :: defines_var(BOOL____00118); constraint int_eq_reif(parents[58], 8, BOOL____00128) :: defines_var(BOOL____00128); constraint int_eq_reif(parents[59], 1, BOOL____00059) :: defines_var(BOOL____00059); constraint int_eq_reif(parents[59], 2, BOOL____00069) :: defines_var(BOOL____00069); constraint int_eq_reif(parents[59], 3, BOOL____00079) :: defines_var(BOOL____00079); constraint int_eq_reif(parents[59], 4, BOOL____00089) :: defines_var(BOOL____00089); constraint int_eq_reif(parents[59], 5, BOOL____00099) :: defines_var(BOOL____00099); constraint int_eq_reif(parents[59], 6, BOOL____00109) :: defines_var(BOOL____00109); constraint int_eq_reif(parents[59], 7, BOOL____00119) :: defines_var(BOOL____00119); constraint int_eq_reif(parents[59], 8, BOOL____00129) :: defines_var(BOOL____00129); constraint int_eq_reif(parents[60], 1, BOOL____00060) :: defines_var(BOOL____00060); constraint int_eq_reif(parents[60], 2, BOOL____00070) :: defines_var(BOOL____00070); constraint int_eq_reif(parents[60], 3, BOOL____00080) :: defines_var(BOOL____00080); constraint int_eq_reif(parents[60], 4, BOOL____00090) :: defines_var(BOOL____00090); constraint int_eq_reif(parents[60], 5, BOOL____00100) :: defines_var(BOOL____00100); constraint int_eq_reif(parents[60], 6, BOOL____00110) :: defines_var(BOOL____00110); constraint int_eq_reif(parents[60], 7, BOOL____00120) :: defines_var(BOOL____00120); constraint int_eq_reif(parents[60], 8, BOOL____00130) :: defines_var(BOOL____00130); constraint int_eq_reif(parents[61], 1, BOOL____00061) :: defines_var(BOOL____00061); constraint int_eq_reif(parents[61], 2, BOOL____00071) :: defines_var(BOOL____00071); constraint int_eq_reif(parents[61], 3, BOOL____00081) :: defines_var(BOOL____00081); constraint int_eq_reif(parents[61], 4, BOOL____00091) :: defines_var(BOOL____00091); constraint int_eq_reif(parents[61], 5, BOOL____00101) :: defines_var(BOOL____00101); constraint int_eq_reif(parents[61], 6, BOOL____00111) :: defines_var(BOOL____00111); constraint int_eq_reif(parents[61], 7, BOOL____00121) :: defines_var(BOOL____00121); constraint int_eq_reif(parents[61], 8, BOOL____00131) :: defines_var(BOOL____00131); constraint int_eq_reif(parents[62], 1, BOOL____00062) :: defines_var(BOOL____00062); constraint int_eq_reif(parents[62], 2, BOOL____00072) :: defines_var(BOOL____00072); constraint int_eq_reif(parents[62], 3, BOOL____00082) :: defines_var(BOOL____00082); constraint int_eq_reif(parents[62], 4, BOOL____00092) :: defines_var(BOOL____00092); constraint int_eq_reif(parents[62], 5, BOOL____00102) :: defines_var(BOOL____00102); constraint int_eq_reif(parents[62], 6, BOOL____00112) :: defines_var(BOOL____00112); constraint int_eq_reif(parents[62], 7, BOOL____00122) :: defines_var(BOOL____00122); constraint int_eq_reif(parents[62], 8, BOOL____00132) :: defines_var(BOOL____00132); constraint int_eq_reif(parents[63], 1, BOOL____00063) :: defines_var(BOOL____00063); constraint int_eq_reif(parents[63], 2, BOOL____00073) :: defines_var(BOOL____00073); constraint int_eq_reif(parents[63], 3, BOOL____00083) :: defines_var(BOOL____00083); constraint int_eq_reif(parents[63], 4, BOOL____00093) :: defines_var(BOOL____00093); constraint int_eq_reif(parents[63], 5, BOOL____00103) :: defines_var(BOOL____00103); constraint int_eq_reif(parents[63], 6, BOOL____00113) :: defines_var(BOOL____00113); constraint int_eq_reif(parents[63], 7, BOOL____00123) :: defines_var(BOOL____00123); constraint int_eq_reif(parents[63], 8, BOOL____00133) :: defines_var(BOOL____00133); constraint int_eq_reif(parents[64], 1, BOOL____00064) :: defines_var(BOOL____00064); constraint int_eq_reif(parents[64], 2, BOOL____00074) :: defines_var(BOOL____00074); constraint int_eq_reif(parents[64], 3, BOOL____00084) :: defines_var(BOOL____00084); constraint int_eq_reif(parents[64], 4, BOOL____00094) :: defines_var(BOOL____00094); constraint int_eq_reif(parents[64], 5, BOOL____00104) :: defines_var(BOOL____00104); constraint int_eq_reif(parents[64], 6, BOOL____00114) :: defines_var(BOOL____00114); constraint int_eq_reif(parents[64], 7, BOOL____00124) :: defines_var(BOOL____00124); constraint int_eq_reif(parents[64], 8, BOOL____00134) :: defines_var(BOOL____00134); constraint int_lin_eq([-1, 1, 1, 1, 1, 1, 1, 1, 1], [INT____00137, INT____00066, INT____00076, INT____00086, INT____00096, INT____00106, INT____00116, INT____00126, INT____00136], 0) :: defines_var(INT____00137); solve :: int_search([parents[1], parents[2], parents[3], parents[4], parents[5], parents[6], parents[7], parents[8], parents[9], parents[10], parents[11], parents[12], parents[13], parents[14], parents[15], parents[16], parents[17], parents[18], parents[19], parents[20], parents[21], parents[22], parents[23], parents[24], parents[25], parents[26], parents[27], parents[28], parents[29], parents[30], parents[31], parents[32], parents[33], parents[34], parents[35], parents[36], parents[37], parents[38], parents[39], parents[40], parents[41], parents[42], parents[43], parents[44], parents[45], parents[46], parents[47], parents[48], parents[49], parents[50], parents[51], parents[52], parents[53], parents[54], parents[55], parents[56], parents[57], parents[58], parents[59], parents[60], parents[61], parents[62], parents[63], parents[64], tree[1], tree[2], tree[3], tree[4], tree[5], tree[6], tree[7], tree[8], INT____00137], first_fail, indomain_min, complete) satisfy;