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____00012 :: is_defined_var :: var_is_introduced; var bool: BOOL____00014 :: is_defined_var :: var_is_introduced; var bool: BOOL____00016 :: is_defined_var :: var_is_introduced; var bool: BOOL____00018 :: is_defined_var :: var_is_introduced; var bool: BOOL____00020 :: is_defined_var :: var_is_introduced; var bool: BOOL____00022 :: is_defined_var :: var_is_introduced; var bool: BOOL____00029 :: is_defined_var :: var_is_introduced; var bool: BOOL____00031 :: is_defined_var :: var_is_introduced; var bool: BOOL____00033 :: is_defined_var :: var_is_introduced; var bool: BOOL____00035 :: is_defined_var :: var_is_introduced; var bool: BOOL____00037 :: is_defined_var :: var_is_introduced; var bool: BOOL____00039 :: is_defined_var :: var_is_introduced; var bool: BOOL____00041 :: is_defined_var :: var_is_introduced; var bool: BOOL____00043 :: is_defined_var :: var_is_introduced; var bool: BOOL____00045 :: is_defined_var :: var_is_introduced; var bool: BOOL____00047 :: is_defined_var :: var_is_introduced; var bool: BOOL____00049 :: is_defined_var :: var_is_introduced; var bool: BOOL____00051 :: is_defined_var :: var_is_introduced; var bool: BOOL____00053 :: is_defined_var :: var_is_introduced; var bool: BOOL____00055 :: is_defined_var :: var_is_introduced; var bool: BOOL____00057 :: is_defined_var :: var_is_introduced; var bool: BOOL____00059 :: is_defined_var :: var_is_introduced; var bool: BOOL____00061 :: is_defined_var :: var_is_introduced; var bool: BOOL____00063 :: is_defined_var :: var_is_introduced; var bool: BOOL____00067 :: is_defined_var :: var_is_introduced; var bool: BOOL____00069 :: is_defined_var :: var_is_introduced; var bool: BOOL____00071 :: is_defined_var :: var_is_introduced; var bool: BOOL____00073 :: 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____00079 :: is_defined_var :: var_is_introduced; var bool: BOOL____00081 :: is_defined_var :: var_is_introduced; var bool: BOOL____00083 :: 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____00089 :: is_defined_var :: var_is_introduced; var bool: BOOL____00091 :: is_defined_var :: var_is_introduced; var bool: BOOL____00093 :: 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____00099 :: is_defined_var :: var_is_introduced; var bool: BOOL____00101 :: is_defined_var :: var_is_introduced; var bool: BOOL____00108 :: is_defined_var :: var_is_introduced; var bool: BOOL____00110 :: is_defined_var :: var_is_introduced; var bool: BOOL____00112 :: is_defined_var :: var_is_introduced; var bool: BOOL____00114 :: is_defined_var :: var_is_introduced; var bool: BOOL____00116 :: is_defined_var :: var_is_introduced; var bool: BOOL____00118 :: is_defined_var :: var_is_introduced; var bool: BOOL____00120 :: is_defined_var :: var_is_introduced; var bool: BOOL____00122 :: is_defined_var :: var_is_introduced; var -5..7: INT____00001 :: is_defined_var :: var_is_introduced; var -2..7: INT____00003 :: is_defined_var :: var_is_introduced; var -6..7: INT____00005 :: is_defined_var :: var_is_introduced; var -7..2: INT____00007 :: is_defined_var :: var_is_introduced; var 1..8: adrienne; var 3..8: allison; var 6..8: belinda; var 1..7: benito; var 2..8: cheri; var 1..8: crawford; var 1..3: daryl; var 1..8: don; array [1..8] of var 1..8: all :: output_array([1..8]) = [allison, belinda, adrienne, benito, cheri, crawford, daryl, don]; array [1..8] of var 1..8: houses :: output_array([1..8]); constraint all_different_int(all); constraint int_abs(INT____00001, 1); constraint int_abs(INT____00003, 2); constraint int_abs(INT____00005, 3); constraint int_abs(INT____00007, 4); constraint int_eq_reif(adrienne, 1, BOOL____00035); constraint int_eq_reif(adrienne, 2, BOOL____00037); constraint int_eq_reif(adrienne, 3, BOOL____00039); constraint int_eq_reif(adrienne, 4, BOOL____00041); constraint int_eq_reif(adrienne, 5, BOOL____00043); constraint int_eq_reif(adrienne, 6, BOOL____00045); constraint int_eq_reif(adrienne, 7, BOOL____00047); constraint int_eq_reif(adrienne, 8, BOOL____00049); constraint int_eq_reif(allison, 3, BOOL____00012); constraint int_eq_reif(allison, 4, BOOL____00014); constraint int_eq_reif(allison, 5, BOOL____00016); constraint int_eq_reif(allison, 6, BOOL____00018); constraint int_eq_reif(allison, 7, BOOL____00020); constraint int_eq_reif(allison, 8, BOOL____00022); constraint int_eq_reif(belinda, 6, BOOL____00029); constraint int_eq_reif(belinda, 7, BOOL____00031); constraint int_eq_reif(belinda, 8, BOOL____00033); constraint int_eq_reif(benito, 1, BOOL____00051); constraint int_eq_reif(benito, 2, BOOL____00053); constraint int_eq_reif(benito, 3, BOOL____00055); constraint int_eq_reif(benito, 4, BOOL____00057); constraint int_eq_reif(benito, 5, BOOL____00059); constraint int_eq_reif(benito, 6, BOOL____00061); constraint int_eq_reif(benito, 7, BOOL____00063); constraint int_eq_reif(cheri, 2, BOOL____00067); constraint int_eq_reif(cheri, 3, BOOL____00069); constraint int_eq_reif(cheri, 4, BOOL____00071); constraint int_eq_reif(cheri, 5, BOOL____00073); constraint int_eq_reif(cheri, 6, BOOL____00075); constraint int_eq_reif(cheri, 7, BOOL____00077); constraint int_eq_reif(cheri, 8, BOOL____00079); constraint int_eq_reif(crawford, 1, BOOL____00081); constraint int_eq_reif(crawford, 2, BOOL____00083); constraint int_eq_reif(crawford, 3, BOOL____00085); constraint int_eq_reif(crawford, 4, BOOL____00087); constraint int_eq_reif(crawford, 5, BOOL____00089); constraint int_eq_reif(crawford, 6, BOOL____00091); constraint int_eq_reif(crawford, 7, BOOL____00093); constraint int_eq_reif(crawford, 8, BOOL____00095); constraint int_eq_reif(daryl, 1, BOOL____00097); constraint int_eq_reif(daryl, 2, BOOL____00099); constraint int_eq_reif(daryl, 3, BOOL____00101); constraint int_eq_reif(don, 1, BOOL____00108); constraint int_eq_reif(don, 2, BOOL____00110); constraint int_eq_reif(don, 3, BOOL____00112); constraint int_eq_reif(don, 4, BOOL____00114); constraint int_eq_reif(don, 5, BOOL____00116); constraint int_eq_reif(don, 6, BOOL____00118); constraint int_eq_reif(don, 7, BOOL____00120); constraint int_eq_reif(don, 8, BOOL____00122); constraint int_eq_reif(houses[1], 1, false); constraint int_eq_reif(houses[1], 2, false); constraint int_eq_reif(houses[1], 3, BOOL____00035) :: defines_var(BOOL____00035); constraint int_eq_reif(houses[1], 4, BOOL____00051) :: defines_var(BOOL____00051); constraint int_eq_reif(houses[1], 5, false); constraint int_eq_reif(houses[1], 6, BOOL____00081) :: defines_var(BOOL____00081); constraint int_eq_reif(houses[1], 7, BOOL____00097) :: defines_var(BOOL____00097); constraint int_eq_reif(houses[1], 8, BOOL____00108) :: defines_var(BOOL____00108); constraint int_eq_reif(houses[2], 1, false); constraint int_eq_reif(houses[2], 2, false); constraint int_eq_reif(houses[2], 3, BOOL____00037) :: defines_var(BOOL____00037); constraint int_eq_reif(houses[2], 4, BOOL____00053) :: defines_var(BOOL____00053); constraint int_eq_reif(houses[2], 5, BOOL____00067) :: defines_var(BOOL____00067); constraint int_eq_reif(houses[2], 6, BOOL____00083) :: defines_var(BOOL____00083); constraint int_eq_reif(houses[2], 7, BOOL____00099) :: defines_var(BOOL____00099); constraint int_eq_reif(houses[2], 8, BOOL____00110) :: defines_var(BOOL____00110); constraint int_eq_reif(houses[3], 1, BOOL____00012) :: defines_var(BOOL____00012); constraint int_eq_reif(houses[3], 2, false); constraint int_eq_reif(houses[3], 3, BOOL____00039) :: defines_var(BOOL____00039); constraint int_eq_reif(houses[3], 4, BOOL____00055) :: defines_var(BOOL____00055); constraint int_eq_reif(houses[3], 5, BOOL____00069) :: defines_var(BOOL____00069); constraint int_eq_reif(houses[3], 6, BOOL____00085) :: defines_var(BOOL____00085); constraint int_eq_reif(houses[3], 7, BOOL____00101) :: defines_var(BOOL____00101); constraint int_eq_reif(houses[3], 8, BOOL____00112) :: defines_var(BOOL____00112); constraint int_eq_reif(houses[4], 1, BOOL____00014) :: defines_var(BOOL____00014); constraint int_eq_reif(houses[4], 2, false); constraint int_eq_reif(houses[4], 3, BOOL____00041) :: defines_var(BOOL____00041); constraint int_eq_reif(houses[4], 4, BOOL____00057) :: defines_var(BOOL____00057); constraint int_eq_reif(houses[4], 5, BOOL____00071) :: defines_var(BOOL____00071); constraint int_eq_reif(houses[4], 6, BOOL____00087) :: defines_var(BOOL____00087); constraint int_eq_reif(houses[4], 7, false); constraint int_eq_reif(houses[4], 8, BOOL____00114) :: defines_var(BOOL____00114); constraint int_eq_reif(houses[5], 1, BOOL____00016) :: defines_var(BOOL____00016); constraint int_eq_reif(houses[5], 2, false); constraint int_eq_reif(houses[5], 3, BOOL____00043) :: defines_var(BOOL____00043); constraint int_eq_reif(houses[5], 4, BOOL____00059) :: defines_var(BOOL____00059); constraint int_eq_reif(houses[5], 5, BOOL____00073) :: defines_var(BOOL____00073); constraint int_eq_reif(houses[5], 6, BOOL____00089) :: defines_var(BOOL____00089); constraint int_eq_reif(houses[5], 7, false); constraint int_eq_reif(houses[5], 8, BOOL____00116) :: defines_var(BOOL____00116); constraint int_eq_reif(houses[6], 1, BOOL____00018) :: defines_var(BOOL____00018); constraint int_eq_reif(houses[6], 2, BOOL____00029) :: defines_var(BOOL____00029); constraint int_eq_reif(houses[6], 3, BOOL____00045) :: defines_var(BOOL____00045); constraint int_eq_reif(houses[6], 4, BOOL____00061) :: defines_var(BOOL____00061); constraint int_eq_reif(houses[6], 5, BOOL____00075) :: defines_var(BOOL____00075); constraint int_eq_reif(houses[6], 6, BOOL____00091) :: defines_var(BOOL____00091); constraint int_eq_reif(houses[6], 7, false); constraint int_eq_reif(houses[6], 8, BOOL____00118) :: defines_var(BOOL____00118); constraint int_eq_reif(houses[7], 1, BOOL____00020) :: defines_var(BOOL____00020); constraint int_eq_reif(houses[7], 2, BOOL____00031) :: defines_var(BOOL____00031); constraint int_eq_reif(houses[7], 3, BOOL____00047) :: defines_var(BOOL____00047); constraint int_eq_reif(houses[7], 4, BOOL____00063) :: defines_var(BOOL____00063); constraint int_eq_reif(houses[7], 5, BOOL____00077) :: defines_var(BOOL____00077); constraint int_eq_reif(houses[7], 6, BOOL____00093) :: defines_var(BOOL____00093); constraint int_eq_reif(houses[7], 7, false); constraint int_eq_reif(houses[7], 8, BOOL____00120) :: defines_var(BOOL____00120); constraint int_eq_reif(houses[8], 1, BOOL____00022) :: defines_var(BOOL____00022); constraint int_eq_reif(houses[8], 2, BOOL____00033) :: defines_var(BOOL____00033); constraint int_eq_reif(houses[8], 3, BOOL____00049) :: defines_var(BOOL____00049); constraint int_eq_reif(houses[8], 4, false); constraint int_eq_reif(houses[8], 5, BOOL____00079) :: defines_var(BOOL____00079); constraint int_eq_reif(houses[8], 6, BOOL____00095) :: defines_var(BOOL____00095); constraint int_eq_reif(houses[8], 7, false); constraint int_eq_reif(houses[8], 8, BOOL____00122) :: defines_var(BOOL____00122); constraint int_lin_eq([-1, -1, 1], [INT____00001, adrienne, allison], 0) :: defines_var(INT____00001); constraint int_lt(benito, cheri); constraint int_plus(INT____00003, benito, belinda) :: defines_var(INT____00003); constraint int_plus(INT____00005, crawford, cheri) :: defines_var(INT____00005); constraint int_plus(INT____00007, don, daryl) :: defines_var(INT____00007); solve satisfy;