1predicate jacop_alldiff(array [int] of var int: x); 2predicate jacop_among(array [int] of var int: x, set of int: v, var int: n); 3predicate jacop_among_var(array [int] of var int: x, array [int] of var int: v, var int: n); 4predicate jacop_assignment(array [int] of var int: f, array [int] of var int: invf, int: index_f, int: index_invf); 5predicate jacop_bin_packing(array [int] of var int: bin, array [int] of var int: cap, array [int] of int: w); 6predicate jacop_circuit(array [int] of var int: x); 7predicate jacop_count(array [int] of var int: x, int: y, var int: c); 8predicate jacop_cumulative(array [int] of var int: s, array [int] of var int: d, array [int] of var int: r, var int: b); 9predicate jacop_diff2(array [int, int] of var int: r); 10predicate jacop_disjoint(var set of int: s1, var set of int: s2); 11predicate jacop_gcc(array [int] of var int: x, array [int] of var int: c, int: index); 12predicate jacop_global_cardinality_closed(array [int] of var int: x, array [int] of int: cover, array [int] of var int: counts); 13predicate jacop_global_cardinality_low_up_closed(array [int] of var int: x, array [int] of int: cover, array [int] of int: lbound, array [int] of int: ubound); 14predicate jacop_lex_less_bool(array [int] of var bool: x, array [int] of var bool: y); 15predicate jacop_lex_less_int(array [int] of var int: x, array [int] of var int: y); 16predicate jacop_lex_lesseq_bool(array [int] of var bool: x, array [int] of var bool: y); 17predicate jacop_lex_lesseq_int(array [int] of var int: x, array [int] of var int: y); 18predicate jacop_list_diff2(array [int] of var int: x, array [int] of var int: y, array [int] of var int: lx, array [int] of var int: ly); 19predicate jacop_maximum(var int: m, array [int] of var int: x); 20predicate jacop_minimum(var int: m, array [int] of var int: x); 21predicate jacop_nvalue(var int: n, array [int] of var int: x); 22predicate jacop_regular(array [int] of var int: x, int: Q, int: S, array [int, int] of int: d, int: q0, set of int: F, int: min_index); 23predicate jacop_table_bool(array [int] of var bool: x, array [int, int] of bool: t); 24predicate jacop_table_int(array [int] of var int: x, array [int, int] of int: t); 25array [1..5] of int: c = [1, 1, 1, 1, 1]; 26array [1..9] of int: d = [2, 4, 1, 3, 3, 2, 5, 7, 7]; 27array [1..45] of int: ia = [1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0]; 28array [1..9] of int: ones = [1, 1, 1, 1, 1, 1, 1, 1, 1]; 29array [1..5] of set of int: s = [{1, 2, 4, 6, 7, 9}, {1, 2, 4, 5, 6, 8}, {1, 2, 7, 8}, {1, 5, 6, 9}, {3, 5, 6, 7, 8}]; 30var -264..76: INT____00001 :: is_defined_var :: var_is_introduced; 31var 2..36: INT____00002 :: is_defined_var :: var_is_introduced; 32var 4..38: INT____00003 :: is_defined_var :: var_is_introduced; 33var 3..37: INT____00004 :: is_defined_var :: var_is_introduced; 34var 2..36: INT____00005 :: is_defined_var :: var_is_introduced; 35var 5..39: INT____00006 :: is_defined_var :: var_is_introduced; 36var 7..41: INT____00007 :: is_defined_var :: var_is_introduced; 37var 3..37: INT____00008 :: is_defined_var :: var_is_introduced; 38var 7..41: INT____00009 :: is_defined_var :: var_is_introduced; 39var 1..35: INT____00010 :: is_defined_var :: var_is_introduced; 40var -264..76: cost :: output_var = INT____00001; 41array [1..5] of var 0..34: finish :: output_array([1..5]); 42array [1..9] of var 0..34: sch; 43array [1..5] of var 0..34: start :: output_array([1..5]); 44constraint int_lin_eq([-1, 1], [INT____00002, sch[1]], -2) :: defines_var(INT____00002); 45constraint int_lin_eq([-1, 1], [INT____00003, sch[2]], -4) :: defines_var(INT____00003); 46constraint int_lin_eq([-1, 1], [INT____00004, sch[4]], -3) :: defines_var(INT____00004); 47constraint int_lin_eq([-1, 1], [INT____00005, sch[6]], -2) :: defines_var(INT____00005); 48constraint int_lin_eq([-1, 1], [INT____00006, sch[7]], -5) :: defines_var(INT____00006); 49constraint int_lin_eq([-1, 1], [INT____00007, sch[9]], -7) :: defines_var(INT____00007); 50constraint int_lin_eq([-1, 1], [INT____00008, sch[5]], -3) :: defines_var(INT____00008); 51constraint int_lin_eq([-1, 1], [INT____00009, sch[8]], -7) :: defines_var(INT____00009); 52constraint int_lin_eq([-1, 1], [INT____00010, sch[3]], -1) :: defines_var(INT____00010); 53constraint int_lin_eq([-1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1], [INT____00001, finish[1], finish[2], finish[3], finish[4], finish[5], start[1], start[2], start[3], start[4], start[5]], 94) :: defines_var(INT____00001); 54constraint int_lt(sch[1], sch[5]); 55constraint jacop_cumulative(sch, d, ones, 1); 56constraint jacop_maximum(finish[1], [INT____00002, INT____00003, INT____00004, INT____00005, INT____00006, INT____00007]); 57constraint jacop_maximum(finish[2], [INT____00002, INT____00003, INT____00004, INT____00008, INT____00005, INT____00009]); 58constraint jacop_maximum(finish[3], [INT____00002, INT____00003, INT____00006, INT____00009]); 59constraint jacop_maximum(finish[4], [INT____00002, INT____00008, INT____00005, INT____00007]); 60constraint jacop_maximum(finish[5], [INT____00010, INT____00008, INT____00005, INT____00006, INT____00009]); 61constraint jacop_minimum(start[1], [sch[1], sch[2], sch[4], sch[6], sch[7], sch[9]]); 62constraint jacop_minimum(start[2], [sch[1], sch[2], sch[4], sch[5], sch[6], sch[8]]); 63constraint jacop_minimum(start[3], [sch[1], sch[2], sch[7], sch[8]]); 64constraint jacop_minimum(start[4], [sch[1], sch[5], sch[6], sch[9]]); 65constraint jacop_minimum(start[5], [sch[3], sch[5], sch[6], sch[7], sch[8]]); 66solve :: int_search(sch, first_fail, indomain_split, complete) minimize INT____00001; 67