array [1..49] of int: game = [-1, -1, -1, -1, -1, -1, -1, -1, 2, 3, 4, 3, 5, -1, -1, 1, -1, -1, -1, 3, -1, -1, -1, -1, 5, -1, -1, -1, -1, 1, -1, -1, -1, 3, -1, -1, 1, 2, 2, 3, 4, -1, -1, -1, -1, -1, -1, -1, -1]; var bool: BOOL____00001 :: is_defined_var :: var_is_introduced; var bool: BOOL____00002 :: is_defined_var :: var_is_introduced; var bool: BOOL____00003 :: is_defined_var :: var_is_introduced; var bool: BOOL____00004 :: is_defined_var :: var_is_introduced; var bool: BOOL____00005 :: is_defined_var :: var_is_introduced; var bool: BOOL____00006 :: is_defined_var :: var_is_introduced; var bool: BOOL____00007 :: is_defined_var :: var_is_introduced; var bool: BOOL____00008 :: is_defined_var :: var_is_introduced; var bool: BOOL____00009 :: is_defined_var :: var_is_introduced; var bool: BOOL____00010 :: is_defined_var :: var_is_introduced; var bool: BOOL____00011 :: is_defined_var :: var_is_introduced; var bool: BOOL____00012 :: is_defined_var :: var_is_introduced; var bool: BOOL____00013 :: is_defined_var :: var_is_introduced; var bool: BOOL____00014 :: is_defined_var :: var_is_introduced; var bool: BOOL____00015 :: is_defined_var :: var_is_introduced; var bool: BOOL____00016 :: 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____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; var bool: BOOL____00043 :: is_defined_var :: var_is_introduced; var bool: BOOL____00044 :: is_defined_var :: var_is_introduced; var bool: BOOL____00048 :: is_defined_var :: var_is_introduced; var bool: BOOL____00049 :: is_defined_var :: var_is_introduced; var bool: BOOL____00050 :: is_defined_var :: var_is_introduced; var bool: BOOL____00051 :: is_defined_var :: var_is_introduced; var bool: BOOL____00052 :: is_defined_var :: var_is_introduced; var bool: BOOL____00053 :: is_defined_var :: var_is_introduced; var bool: BOOL____00054 :: is_defined_var :: var_is_introduced; var bool: BOOL____00055 :: 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____00066 :: 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____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____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____00106 :: 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; array [1..49] of var 0..1: mines :: output_array([1..7, 1..7]); constraint int_eq_reif(mines[1], 0, BOOL____00001) :: defines_var(BOOL____00001); constraint int_eq_reif(mines[1], 1, BOOL____00002) :: defines_var(BOOL____00002); constraint int_eq_reif(mines[2], 0, BOOL____00003) :: defines_var(BOOL____00003); constraint int_eq_reif(mines[2], 1, BOOL____00004) :: defines_var(BOOL____00004); constraint int_eq_reif(mines[3], 0, BOOL____00005) :: defines_var(BOOL____00005); constraint int_eq_reif(mines[3], 1, BOOL____00006) :: defines_var(BOOL____00006); constraint int_eq_reif(mines[4], 0, BOOL____00007) :: defines_var(BOOL____00007); constraint int_eq_reif(mines[4], 1, BOOL____00008) :: defines_var(BOOL____00008); constraint int_eq_reif(mines[5], 0, BOOL____00009) :: defines_var(BOOL____00009); constraint int_eq_reif(mines[5], 1, BOOL____00010) :: defines_var(BOOL____00010); constraint int_eq_reif(mines[6], 0, BOOL____00011) :: defines_var(BOOL____00011); constraint int_eq_reif(mines[6], 1, BOOL____00012) :: defines_var(BOOL____00012); constraint int_eq_reif(mines[7], 0, BOOL____00013) :: defines_var(BOOL____00013); constraint int_eq_reif(mines[7], 1, BOOL____00014) :: defines_var(BOOL____00014); constraint int_eq_reif(mines[8], 0, BOOL____00015) :: defines_var(BOOL____00015); constraint int_eq_reif(mines[8], 1, BOOL____00016) :: defines_var(BOOL____00016); constraint int_eq_reif(mines[9], 0, true); constraint int_eq_reif(mines[9], 1, false); constraint int_eq_reif(mines[10], 0, true); constraint int_eq_reif(mines[10], 1, false); constraint int_eq_reif(mines[11], 0, true); constraint int_eq_reif(mines[11], 1, false); constraint int_eq_reif(mines[12], 0, true); constraint int_eq_reif(mines[12], 1, false); constraint int_eq_reif(mines[13], 0, true); constraint int_eq_reif(mines[13], 1, false); constraint int_eq_reif(mines[14], 0, BOOL____00032) :: defines_var(BOOL____00032); constraint int_eq_reif(mines[14], 1, BOOL____00033) :: defines_var(BOOL____00033); constraint int_eq_reif(mines[15], 0, BOOL____00034) :: defines_var(BOOL____00034); constraint int_eq_reif(mines[15], 1, BOOL____00035) :: defines_var(BOOL____00035); constraint int_eq_reif(mines[16], 0, true); constraint int_eq_reif(mines[16], 1, false); constraint int_eq_reif(mines[17], 0, BOOL____00039) :: defines_var(BOOL____00039); constraint int_eq_reif(mines[17], 1, BOOL____00040) :: defines_var(BOOL____00040); constraint int_eq_reif(mines[18], 0, BOOL____00041) :: defines_var(BOOL____00041); constraint int_eq_reif(mines[18], 1, BOOL____00042) :: defines_var(BOOL____00042); constraint int_eq_reif(mines[19], 0, BOOL____00043) :: defines_var(BOOL____00043); constraint int_eq_reif(mines[19], 1, BOOL____00044) :: defines_var(BOOL____00044); constraint int_eq_reif(mines[20], 0, true); constraint int_eq_reif(mines[20], 1, false); constraint int_eq_reif(mines[21], 0, BOOL____00048) :: defines_var(BOOL____00048); constraint int_eq_reif(mines[21], 1, BOOL____00049) :: defines_var(BOOL____00049); constraint int_eq_reif(mines[22], 0, BOOL____00050) :: defines_var(BOOL____00050); constraint int_eq_reif(mines[22], 1, BOOL____00051) :: defines_var(BOOL____00051); constraint int_eq_reif(mines[23], 0, BOOL____00052) :: defines_var(BOOL____00052); constraint int_eq_reif(mines[23], 1, BOOL____00053) :: defines_var(BOOL____00053); constraint int_eq_reif(mines[24], 0, BOOL____00054) :: defines_var(BOOL____00054); constraint int_eq_reif(mines[24], 1, BOOL____00055) :: defines_var(BOOL____00055); constraint int_eq_reif(mines[25], 0, true); constraint int_eq_reif(mines[25], 1, false); constraint int_eq_reif(mines[26], 0, BOOL____00059) :: defines_var(BOOL____00059); constraint int_eq_reif(mines[26], 1, BOOL____00060) :: defines_var(BOOL____00060); constraint int_eq_reif(mines[27], 0, BOOL____00061) :: defines_var(BOOL____00061); constraint int_eq_reif(mines[27], 1, BOOL____00062) :: defines_var(BOOL____00062); constraint int_eq_reif(mines[28], 0, BOOL____00063) :: defines_var(BOOL____00063); constraint int_eq_reif(mines[28], 1, BOOL____00064) :: defines_var(BOOL____00064); constraint int_eq_reif(mines[29], 0, BOOL____00065) :: defines_var(BOOL____00065); constraint int_eq_reif(mines[29], 1, BOOL____00066) :: defines_var(BOOL____00066); constraint int_eq_reif(mines[30], 0, true); constraint int_eq_reif(mines[30], 1, false); constraint int_eq_reif(mines[31], 0, BOOL____00070) :: defines_var(BOOL____00070); constraint int_eq_reif(mines[31], 1, BOOL____00071) :: defines_var(BOOL____00071); constraint int_eq_reif(mines[32], 0, BOOL____00072) :: defines_var(BOOL____00072); constraint int_eq_reif(mines[32], 1, BOOL____00073) :: defines_var(BOOL____00073); constraint int_eq_reif(mines[33], 0, BOOL____00074) :: defines_var(BOOL____00074); constraint int_eq_reif(mines[33], 1, BOOL____00075) :: defines_var(BOOL____00075); constraint int_eq_reif(mines[34], 0, true); constraint int_eq_reif(mines[34], 1, false); constraint int_eq_reif(mines[35], 0, BOOL____00079) :: defines_var(BOOL____00079); constraint int_eq_reif(mines[35], 1, BOOL____00080) :: defines_var(BOOL____00080); constraint int_eq_reif(mines[36], 0, BOOL____00081) :: defines_var(BOOL____00081); constraint int_eq_reif(mines[36], 1, BOOL____00082) :: defines_var(BOOL____00082); constraint int_eq_reif(mines[37], 0, true); constraint int_eq_reif(mines[37], 1, false); constraint int_eq_reif(mines[38], 0, true); constraint int_eq_reif(mines[38], 1, false); constraint int_eq_reif(mines[39], 0, true); constraint int_eq_reif(mines[39], 1, false); constraint int_eq_reif(mines[40], 0, true); constraint int_eq_reif(mines[40], 1, false); constraint int_eq_reif(mines[41], 0, true); constraint int_eq_reif(mines[41], 1, false); constraint int_eq_reif(mines[42], 0, BOOL____00098) :: defines_var(BOOL____00098); constraint int_eq_reif(mines[42], 1, BOOL____00099) :: defines_var(BOOL____00099); constraint int_eq_reif(mines[43], 0, BOOL____00100) :: defines_var(BOOL____00100); constraint int_eq_reif(mines[43], 1, BOOL____00101) :: defines_var(BOOL____00101); constraint int_eq_reif(mines[44], 0, BOOL____00102) :: defines_var(BOOL____00102); constraint int_eq_reif(mines[44], 1, BOOL____00103) :: defines_var(BOOL____00103); constraint int_eq_reif(mines[45], 0, BOOL____00104) :: defines_var(BOOL____00104); constraint int_eq_reif(mines[45], 1, BOOL____00105) :: defines_var(BOOL____00105); constraint int_eq_reif(mines[46], 0, BOOL____00106) :: defines_var(BOOL____00106); constraint int_eq_reif(mines[46], 1, BOOL____00107) :: defines_var(BOOL____00107); constraint int_eq_reif(mines[47], 0, BOOL____00108) :: defines_var(BOOL____00108); constraint int_eq_reif(mines[47], 1, BOOL____00109) :: defines_var(BOOL____00109); constraint int_eq_reif(mines[48], 0, BOOL____00110) :: defines_var(BOOL____00110); constraint int_eq_reif(mines[48], 1, BOOL____00111) :: defines_var(BOOL____00111); constraint int_eq_reif(mines[49], 0, BOOL____00112) :: defines_var(BOOL____00112); constraint int_eq_reif(mines[49], 1, BOOL____00113) :: defines_var(BOOL____00113); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[1], mines[2], mines[3], mines[8], mines[9], mines[10], mines[15], mines[16], mines[17]], -2, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[2], mines[3], mines[4], mines[9], mines[10], mines[11], mines[16], mines[17], mines[18]], -3, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[3], mines[4], mines[5], mines[10], mines[11], mines[12], mines[17], mines[18], mines[19]], -4, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[4], mines[5], mines[6], mines[11], mines[12], mines[13], mines[18], mines[19], mines[20]], -3, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[5], mines[6], mines[7], mines[12], mines[13], mines[14], mines[19], mines[20], mines[21]], -5, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[8], mines[9], mines[10], mines[15], mines[16], mines[17], mines[22], mines[23], mines[24]], -1, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[12], mines[13], mines[14], mines[19], mines[20], mines[21], mines[26], mines[27], mines[28]], -3, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[17], mines[18], mines[19], mines[24], mines[25], mines[26], mines[31], mines[32], mines[33]], -5, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[22], mines[23], mines[24], mines[29], mines[30], mines[31], mines[36], mines[37], mines[38]], -1, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[26], mines[27], mines[28], mines[33], mines[34], mines[35], mines[40], mines[41], mines[42]], -3, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[29], mines[30], mines[31], mines[36], mines[37], mines[38], mines[43], mines[44], mines[45]], -1, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[30], mines[31], mines[32], mines[37], mines[38], mines[39], mines[44], mines[45], mines[46]], -2, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[31], mines[32], mines[33], mines[38], mines[39], mines[40], mines[45], mines[46], mines[47]], -2, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[32], mines[33], mines[34], mines[39], mines[40], mines[41], mines[46], mines[47], mines[48]], -3, true); constraint int_lin_eq_reif([-1, -1, -1, -1, -1, -1, -1, -1, -1], [mines[33], mines[34], mines[35], mines[40], mines[41], mines[42], mines[47], mines[48], mines[49]], -4, true); solve :: int_search([mines[1], mines[2], mines[3], mines[4], mines[5], mines[6], mines[7], mines[8], mines[9], mines[10], mines[11], mines[12], mines[13], mines[14], mines[15], mines[16], mines[17], mines[18], mines[19], mines[20], mines[21], mines[22], mines[23], mines[24], mines[25], mines[26], mines[27], mines[28], mines[29], mines[30], mines[31], mines[32], mines[33], mines[34], mines[35], mines[36], mines[37], mines[38], mines[39], mines[40], mines[41], mines[42], mines[43], mines[44], mines[45], mines[46], mines[47], mines[48], mines[49]], first_fail, indomain, complete) satisfy;