Files
ortools-clone/examples/flatzinc/number_puzzle.fzn

342 lines
22 KiB
MiniZinc

predicate fzn_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_fzn_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_fzn_cumulative(array [int] of var int: s, array [int] of int: d, array [int] of int: r, var int: b);
var 10000..99999: INT____00001 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00002 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00003 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00004 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00005 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00006 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00007 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00008 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00009 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00010 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00011 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00012 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00013 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00014 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00015 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00016 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00017 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00018 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00019 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00020 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00021 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00022 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00023 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00024 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00025 :: is_defined_var :: var_is_introduced;
var 10000..99999: INT____00026 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00027 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00028 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00029 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00030 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00031 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00032 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00033 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00034 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00035 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00036 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00037 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00038 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00039 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00040 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00041 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00042 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00043 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00044 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00045 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00046 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00047 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00048 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00049 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00050 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00051 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00052 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00053 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00054 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00055 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00056 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00057 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00058 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00059 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00060 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00061 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00062 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00063 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00064 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00065 :: is_defined_var :: var_is_introduced;
var 10000..18999: INT____00066 :: is_defined_var :: var_is_introduced;
var 10000..99999: a :: output_var = INT____00001;
var 1..9: a1 :: output_var;
var 0..9: a2 :: output_var;
var 0..9: a3 :: output_var;
var 0..9: a4 :: output_var;
var 0..9: a5 :: output_var;
var 10000..99999: b :: output_var = INT____00002;
var 1..9: b1 :: output_var;
var 0..9: b2 :: output_var;
var 0..9: b3 :: output_var;
var 0..9: b4 :: output_var;
var 0..9: b5 :: output_var;
var 10000..99999: c :: output_var = INT____00003;
var 1..9: c1 :: output_var;
var 0..9: c2 :: output_var;
var 0..9: c3 :: output_var;
var 0..9: c4 :: output_var;
var 0..9: c5 :: output_var;
var 10000..99999: d :: output_var = INT____00004;
var 1..9: d1 :: output_var;
var 0..9: d2 :: output_var;
var 0..9: d3 :: output_var;
var 0..9: d4 :: output_var;
var 0..9: d5 :: output_var;
var 10000..99999: e :: output_var = INT____00005;
var 1..9: e1 :: output_var;
var 0..9: e2 :: output_var;
var 0..9: e3 :: output_var;
var 0..9: e4 :: output_var;
var 0..9: e5 :: output_var;
var 10000..99999: f :: output_var = INT____00006;
var 1..9: f1 :: output_var;
var 0..9: f2 :: output_var;
var 0..9: f3 :: output_var;
var 0..9: f4 :: output_var;
var 0..9: f5 :: output_var;
var 10000..99999: g :: output_var = INT____00007;
var 1..9: g1 :: output_var;
var 0..9: g2 :: output_var;
var 0..9: g3 :: output_var;
var 0..9: g4 :: output_var;
var 0..9: g5 :: output_var;
var 10000..99999: h :: output_var = INT____00008;
var 1..9: h1 :: output_var;
var 0..9: h2 :: output_var;
var 0..9: h3 :: output_var;
var 0..9: h4 :: output_var;
var 0..9: h5 :: output_var;
var 10000..99999: i :: output_var = INT____00009;
var 1..9: i1 :: output_var;
var 0..9: i2 :: output_var;
var 0..9: i3 :: output_var;
var 0..9: i4 :: output_var;
var 0..9: i5 :: output_var;
var 10000..99999: j :: output_var = INT____00010;
var 1..9: j1 :: output_var;
var 0..9: j2 :: output_var;
var 0..9: j3 :: output_var;
var 0..9: j4 :: output_var;
var 0..9: j5 :: output_var;
var 10000..99999: k :: output_var = INT____00011;
var 1..9: k1 :: output_var;
var 0..9: k2 :: output_var;
var 0..9: k3 :: output_var;
var 0..9: k4 :: output_var;
var 0..9: k5 :: output_var;
var 10000..99999: l :: output_var = INT____00012;
var 1..9: l1 :: output_var;
var 0..9: l2 :: output_var;
var 0..9: l3 :: output_var;
var 0..9: l4 :: output_var;
var 0..9: l5 :: output_var;
var 10000..99999: m :: output_var = INT____00013;
var 1..9: m1 :: output_var;
var 0..9: m2 :: output_var;
var 0..9: m3 :: output_var;
var 0..9: m4 :: output_var;
var 0..9: m5 :: output_var;
var 10000..99999: n :: output_var = INT____00014;
var 1..9: n1 :: output_var;
var 0..9: n2 :: output_var;
var 0..9: n3 :: output_var;
var 0..9: n4 :: output_var;
var 0..9: n5 :: output_var;
var 10000..99999: o :: output_var = INT____00015;
var 1..9: o1 :: output_var;
var 0..9: o2 :: output_var;
var 0..9: o3 :: output_var;
var 0..9: o4 :: output_var;
var 0..9: o5 :: output_var;
var 10000..99999: p :: output_var = INT____00016;
var 1..9: p1 :: output_var;
var 0..9: p2 :: output_var;
var 0..9: p3 :: output_var;
var 0..9: p4 :: output_var;
var 0..9: p5 :: output_var;
var 10000..99999: q :: output_var = INT____00017;
var 1..9: q1 :: output_var;
var 0..9: q2 :: output_var;
var 0..9: q3 :: output_var;
var 0..9: q4 :: output_var;
var 0..9: q5 :: output_var;
var 10000..99999: r :: output_var = INT____00018;
var 1..9: r1 :: output_var;
var 0..9: r2 :: output_var;
var 0..9: r3 :: output_var;
var 0..9: r4 :: output_var;
var 0..9: r5 :: output_var;
var 1..18999: rad01 :: output_var = INT____00027;
var 1001..18999: rad02 :: output_var = INT____00028;
var 1001..18999: rad03 :: output_var = INT____00029;
var 1..18999: rad04 :: output_var = INT____00030;
var 10..18999: rad05 :: output_var = INT____00031;
var 10..18999: rad06 :: output_var = INT____00032;
var 1000..18999: rad07 :: output_var = INT____00033;
var 1000..18999: rad08 :: output_var = INT____00034;
var 100..18999: rad09 :: output_var = INT____00035;
var 100..18999: rad10 :: output_var = INT____00036;
var 0..18999: rad11 :: output_var = INT____00037;
var 1000..18999: rad12 :: output_var = INT____00038;
var 1000..18999: rad13 :: output_var = INT____00039;
var 0..18999: rad14 :: output_var = INT____00040;
var 10..18999: rad15 :: output_var = INT____00041;
var 10..18999: rad16 :: output_var = INT____00042;
var 1000..18999: rad17 :: output_var = INT____00043;
var 1000..18999: rad18 :: output_var = INT____00044;
var 100..18999: rad19 :: output_var = INT____00045;
var 100..18999: rad20 :: output_var = INT____00046;
var 1..18999: rad21 :: output_var = INT____00047;
var 1001..18999: rad22 :: output_var = INT____00048;
var 1001..18999: rad23 :: output_var = INT____00049;
var 1..18999: rad24 :: output_var = INT____00050;
var 10..18999: rad25 :: output_var = INT____00051;
var 10..18999: rad26 :: output_var = INT____00052;
var 1000..18999: rad27 :: output_var = INT____00053;
var 1000..18999: rad28 :: output_var = INT____00054;
var 100..18999: rad29 :: output_var = INT____00055;
var 100..18999: rad30 :: output_var = INT____00056;
var 0..18999: rad31 :: output_var = INT____00057;
var 1000..18999: rad32 :: output_var = INT____00058;
var 1000..18999: rad33 :: output_var = INT____00059;
var 0..18999: rad34 :: output_var = INT____00060;
var 10..18999: rad35 :: output_var = INT____00061;
var 10..18999: rad36 :: output_var = INT____00062;
var 1000..18999: rad37 :: output_var = INT____00063;
var 1000..18999: rad38 :: output_var = INT____00064;
var 100..18999: rad39 :: output_var = INT____00065;
var 100..18999: rad40 :: output_var = INT____00066;
var 10000..99999: s :: output_var = INT____00019;
var 1..9: s1 :: output_var;
var 0..9: s2 :: output_var;
var 0..9: s3 :: output_var;
var 0..9: s4 :: output_var;
var 0..9: s5 :: output_var;
var 10000..99999: t :: output_var = INT____00020;
var 1..9: t1 :: output_var;
var 0..9: t2 :: output_var;
var 0..9: t3 :: output_var;
var 0..9: t4 :: output_var;
var 0..9: t5 :: output_var;
var 10000..99999: u :: output_var = INT____00021;
var 1..9: u1 :: output_var;
var 0..9: u2 :: output_var;
var 0..9: u3 :: output_var;
var 0..9: u4 :: output_var;
var 0..9: u5 :: output_var;
var 10000..99999: v :: output_var = INT____00022;
var 1..9: v1 :: output_var;
var 0..9: v2 :: output_var;
var 0..9: v3 :: output_var;
var 0..9: v4 :: output_var;
var 0..9: v5 :: output_var;
var 10000..99999: w :: output_var = INT____00023;
var 1..9: w1 :: output_var;
var 0..9: w2 :: output_var;
var 0..9: w3 :: output_var;
var 0..9: w4 :: output_var;
var 0..9: w5 :: output_var;
var 10000..99999: x :: output_var = INT____00024;
var 1..9: x1 :: output_var;
var 0..9: x2 :: output_var;
var 0..9: x3 :: output_var;
var 0..9: x4 :: output_var;
var 0..9: x5 :: output_var;
var 10000..99999: y :: output_var = INT____00025;
var 1..9: y1 :: output_var;
var 0..9: y2 :: output_var;
var 0..9: y3 :: output_var;
var 0..9: y4 :: output_var;
var 0..9: y5 :: output_var;
var 10000..99999: z :: output_var = INT____00026;
var 1..9: z1 :: output_var;
var 0..9: z2 :: output_var;
var 0..9: z3 :: output_var;
var 0..9: z4 :: output_var;
var 0..9: z5 :: output_var;
constraint fzn_all_different_int([INT____00001, INT____00002, INT____00003, INT____00004, INT____00005, INT____00006, INT____00007, INT____00008, INT____00009, INT____00010, INT____00011, INT____00012, INT____00013, INT____00014, INT____00015, INT____00016, INT____00017, INT____00018, INT____00019, INT____00020, INT____00021, INT____00022, INT____00023, INT____00024, INT____00025, INT____00026, INT____00027, INT____00028, INT____00029, INT____00030, INT____00031, INT____00032, INT____00033, INT____00034, INT____00035, INT____00036, INT____00037, INT____00038, INT____00039, INT____00040, INT____00041, INT____00042, INT____00043, INT____00044, INT____00045, INT____00046, INT____00047, INT____00048, INT____00049, INT____00050, INT____00051, INT____00052, INT____00053, INT____00054, INT____00055, INT____00056, INT____00057, INT____00058, INT____00059, INT____00060, INT____00061, INT____00062, INT____00063, INT____00064, INT____00065, INT____00066]);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00027, h5, i4, q2, u4, y1], 0) :: defines_var(INT____00027);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00028, a1, i5, q2, u4, y1], 0) :: defines_var(INT____00028);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00029, a2, j1, q3, u5, y1], 0) :: defines_var(INT____00029);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00030, a3, j2, q3, u5, y1], 0) :: defines_var(INT____00030);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00031, a4, j3, q4, v1, y2], 0) :: defines_var(INT____00031);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00032, a5, j4, q4, v1, y2], 0) :: defines_var(INT____00032);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00033, b1, j5, q5, v2, y2], 0) :: defines_var(INT____00033);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00034, b2, k1, q5, v2, y2], 0) :: defines_var(INT____00034);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00035, b3, k2, r1, v3, y3], 0) :: defines_var(INT____00035);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00036, b4, k3, r1, v3, y3], 0) :: defines_var(INT____00036);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00037, b5, k4, r2, v4, y3], 0) :: defines_var(INT____00037);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00038, c1, k5, r2, v4, y3], 0) :: defines_var(INT____00038);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00039, c2, l1, r3, v5, y4], 0) :: defines_var(INT____00039);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00040, c3, l2, r3, v5, y4], 0) :: defines_var(INT____00040);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00041, c4, l3, r4, w1, y4], 0) :: defines_var(INT____00041);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00042, c5, l4, r4, w1, y4], 0) :: defines_var(INT____00042);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00043, d1, l5, r5, w2, y5], 0) :: defines_var(INT____00043);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00044, d2, m1, r5, w2, y5], 0) :: defines_var(INT____00044);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00045, d3, m2, s1, w3, y5], 0) :: defines_var(INT____00045);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00046, d4, m3, s1, w3, y5], 0) :: defines_var(INT____00046);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00047, d5, m4, s2, w4, z1], 0) :: defines_var(INT____00047);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00048, e1, m5, s2, w4, z1], 0) :: defines_var(INT____00048);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00049, e2, n1, s3, w5, z1], 0) :: defines_var(INT____00049);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00050, e3, n2, s3, w5, z1], 0) :: defines_var(INT____00050);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00051, e4, n3, s4, x1, z2], 0) :: defines_var(INT____00051);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00052, e5, n4, s4, x1, z2], 0) :: defines_var(INT____00052);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00053, f1, n5, s5, x2, z2], 0) :: defines_var(INT____00053);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00054, f2, o1, s5, x2, z2], 0) :: defines_var(INT____00054);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00055, f3, o2, t1, x3, z3], 0) :: defines_var(INT____00055);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00056, f4, o3, t1, x3, z3], 0) :: defines_var(INT____00056);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00057, f5, o4, t2, x4, z3], 0) :: defines_var(INT____00057);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00058, g1, o5, t2, x4, z3], 0) :: defines_var(INT____00058);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00059, g2, p1, t3, x5, z4], 0) :: defines_var(INT____00059);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00060, g3, p2, t3, x5, z4], 0) :: defines_var(INT____00060);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00061, g4, p3, t4, u1, z4], 0) :: defines_var(INT____00061);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00062, g5, p4, t4, u1, z4], 0) :: defines_var(INT____00062);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00063, h1, p5, t5, u2, z5], 0) :: defines_var(INT____00063);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00064, h2, i1, t5, u2, z5], 0) :: defines_var(INT____00064);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00065, h3, i2, q1, u3, z5], 0) :: defines_var(INT____00065);
constraint int_lin_eq([-1, 1000, 1000, 100, 10, 1], [INT____00066, h4, i3, q1, u3, z5], 0) :: defines_var(INT____00066);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00001, a1, a2, a3, a4, a5], 0) :: defines_var(INT____00001);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00002, b1, b2, b3, b4, b5], 0) :: defines_var(INT____00002);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00003, c1, c2, c3, c4, c5], 0) :: defines_var(INT____00003);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00004, d1, d2, d3, d4, d5], 0) :: defines_var(INT____00004);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00005, e1, e2, e3, e4, e5], 0) :: defines_var(INT____00005);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00006, f1, f2, f3, f4, f5], 0) :: defines_var(INT____00006);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00007, g1, g2, g3, g4, g5], 0) :: defines_var(INT____00007);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00008, h1, h2, h3, h4, h5], 0) :: defines_var(INT____00008);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00009, i1, i2, i3, i4, i5], 0) :: defines_var(INT____00009);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00010, j1, j2, j3, j4, j5], 0) :: defines_var(INT____00010);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00011, k1, k2, k3, k4, k5], 0) :: defines_var(INT____00011);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00012, l1, l2, l3, l4, l5], 0) :: defines_var(INT____00012);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00013, m1, m2, m3, m4, m5], 0) :: defines_var(INT____00013);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00014, n1, n2, n3, n4, n5], 0) :: defines_var(INT____00014);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00015, o1, o2, o3, o4, o5], 0) :: defines_var(INT____00015);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00016, p1, p2, p3, p4, p5], 0) :: defines_var(INT____00016);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00017, q1, q2, q3, q4, q5], 0) :: defines_var(INT____00017);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00018, r1, r2, r3, r4, r5], 0) :: defines_var(INT____00018);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00019, s1, s2, s3, s4, s5], 0) :: defines_var(INT____00019);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00020, t1, t2, t3, t4, t5], 0) :: defines_var(INT____00020);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00021, u1, u2, u3, u4, u5], 0) :: defines_var(INT____00021);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00022, v1, v2, v3, v4, v5], 0) :: defines_var(INT____00022);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00023, w1, w2, w3, w4, w5], 0) :: defines_var(INT____00023);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00024, x1, x2, x3, x4, x5], 0) :: defines_var(INT____00024);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00025, y1, y2, y3, y4, y5], 0) :: defines_var(INT____00025);
constraint int_lin_eq([-1, 10000, 1000, 100, 10, 1], [INT____00026, z1, z2, z3, z4, z5], 0) :: defines_var(INT____00026);
solve :: int_search([INT____00001, INT____00002, INT____00003, INT____00004, INT____00005, INT____00006, INT____00007, INT____00008, INT____00009, INT____00010, INT____00011, INT____00012, INT____00013, INT____00014, INT____00015, INT____00016, INT____00017, INT____00018, INT____00019, INT____00020, INT____00021, INT____00022, INT____00023, INT____00024, INT____00025, INT____00026, INT____00027, INT____00028, INT____00029, INT____00030, INT____00031, INT____00032, INT____00033, INT____00034, INT____00035, INT____00036, INT____00037, INT____00038, INT____00039, INT____00040, INT____00041, INT____00042, INT____00043, INT____00044, INT____00045, INT____00046, INT____00047, INT____00048, INT____00049, INT____00050, INT____00051, INT____00052, INT____00053, INT____00054, INT____00055, INT____00056, INT____00057, INT____00058, INT____00059, INT____00060, INT____00061, INT____00062, INT____00063, INT____00064, INT____00065, INT____00066, a1, a2, a3, a4, a5, b1, b2, b3, b4, b5, c1, c2, c3, c4, c5, d1, d2, d3, d4, d5, e1, e2, e3, e4, e5, f1, f2, f3, f4, f5, g1, g2, g3, g4, g5, h1, h2, h3, h4, h5, i1, i2, i3, i4, i5, j1, j2, j3, j4, j5, k1, k2, k3, k4, k5, l1, l2, l3, l4, l5, m1, m2, m3, m4, m5, n1, n2, n3, n4, n5, o1, o2, o3, o4, o5, p1, p2, p3, p4, p5, q1, q2, q3, q4, q5, r1, r2, r3, r4, r5, s1, s2, s3, s4, s5, t1, t2, t3, t4, t5, u1, u2, u3, u4, u5, v1, v2, v3, v4, v5, w1, w2, w3, w4, w5, x1, x2, x3, x4, x5, y1, y2, y3, y4, y5, z1, z2, z3, z4, z5], first_fail, indomain, complete) satisfy;