int: w1:: global_register(11); array [int] of set of int: courses_of:: global_register(3); int: n_precedences:: global_register(4); int: max_courses:: global_register(7); int: w2:: global_register(12); array [int,int] of int: undesirable:: global_register(10); int: n_curricula:: global_register(2); array [int,int] of int: precedes:: global_register(5); array [int] of int: course_load:: global_register(8); int: n_undesirables:: global_register(9); int: n_periods:: global_register(1); int: min_courses:: global_register(6); int: n_courses:: global_register(0); predicate solve_this(int: mode,var int: objective,array [int] of var int: x,int: varsel,int: valsel); predicate int_plus(var int: a,var int: b,var int: c); predicate int_max(var int: a,var int: b,var int: c); predicate int_minus(var int: x,var int: y,var int: z); predicate gecode_bin_packing_load(array [int] of var int: l,array [int] of var int: bin,array [int] of int: w,int: minIndex); predicate array_int_minimum(var int: m,array [int] of var int: x); predicate int_min(var int: a,var int: b,var int: c); predicate int_lin_le(array [int] of int: as,array [int] of var int: bs,int: c); predicate fzn_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); predicate output_this(array [int] of var int: arr); predicate int_lin_eq_reif(array [int] of int: as,array [int] of var int: bs,int: c,var bool: r); predicate array_int_maximum(var int: m,array [int] of var int: x); predicate int_times(var int: a,var int: b,var int: c); predicate int_sum(array [int] of var int: xs,var int: x); predicate int_lin_eq(array [int] of int: as,array [int] of var int: bs,int: c); predicate clause(array [$T] of var bool: x,array [$T] of var bool: y); predicate clause(array [$T] of bool: x,array [$T] of bool: y); predicate bool_clause(array [int] of var bool: as,array [int] of var bool: bs); predicate bool_not(var bool: a,var bool: b); @@@@@@@@@@ :mk_intvar: 1 :absent: 1 :infinity: 1 :boolean_domain: 0 :infinite_domain: 0 :uniform: 2 :sol: 1 :sort_by: 2 :floor: 1 :ceil: 1 :slice_Xd: 3 :array_Xd: 2 :index_set: 2 :internal_sort: 1 :f_op_not_b:FUN 1 NOT R0 R1 PUSH R1 RET :f_op_not_vb:FUN 1 OPEN_AGGREGATION OTHER BUILTIN boolean_domain POP R1 CALL ROOT mk_intvar 0 R1 POP R2 CALL ROOT bool_not 1 R0 R2 PUSH R2 CLEAR R1 R2 CLOSE_AGGREGATION POP R1 PUSH R1 RET :d_op_not_b:FUN 1 ISPAR R0 R1 JMPIF R1 l0 JMP l1 l0: TCALL FUN f_op_not_b 0 l1: TCALL FUN f_op_not_vb 1 :bool_clause:ROOT 2 :bool_clause_reif:ROOT 3 CALL FUN d_op_not_b 0 R2 POP R3 OPEN_AGGREGATION VEC PUSH R3 CLOSE_AGGREGATION POP R4 OPEN_AGGREGATION VEC ITER_ARRAY R1 l217 l216: ITER_NEXT R6 PUSH R6 JMP l216 l217: ITER_ARRAY R4 l219 l218: ITER_NEXT R7 PUSH R7 JMP l218 l219: CLEAR R6 R7 CLOSE_AGGREGATION POP R5 IMMI 1 R6 BUILTIN index_set R0 R6 POP R7 ITER_ARRAY R7 l221 l220: ITER_NEXT R8 ITER_NEXT R9 ITER_RANGE R8 R9 l223 l222: ITER_NEXT R10 GET_ARRAY 1 R0 R10 R11 R12 OPEN_AGGREGATION OR IMMI 0 R14 JMPIFNOT R12 l224 MOV R11 R14 l224: PUSH R14 PUSH R3 CLEAR R14 R14 CLOSE_AGGREGATION POP R13 POST R13 JMP l222 l223: JMP l220 l221: IMMI 1 R14 BUILTIN index_set R1 R14 POP R15 ITER_ARRAY R15 l226 l225: ITER_NEXT R16 ITER_NEXT R17 ITER_RANGE R16 R17 l228 l227: ITER_NEXT R18 GET_ARRAY 1 R1 R18 R19 R20 IMMI 1 R21 NOT R20 R22 JMPIF R22 l229 OPEN_AGGREGATION OR CALL FUN d_op_not_b 0 R19 POP R23 PUSH R23 PUSH R3 CLEAR R23 R23 CLOSE_AGGREGATION POP R21 l229: POST R21 JMP l227 l228: JMP l225 l226: CALL ROOT d_clause_d1b_d1b 1 R0 R5 RET :int_lin_eq:ROOT 3 :int_lin_eq:FUN 3 OPEN_AGGREGATION OTHER BUILTIN boolean_domain POP R3 CALL ROOT mk_intvar 0 R3 POP R4 CALL ROOT int_lin_eq_reif 1 R0 R1 R2 R4 PUSH R4 CLEAR R3 R4 CLOSE_AGGREGATION POP R3 PUSH R3 RET :f_pre_int_lin_eq_d1i_d1vi_i:ROOT 3 LENGTH R0 R4 IMMI 0 R5 EQI R4 R5 R6 JMPIFNOT R6 l148 EQI R2 R5 R7 MOV R7 R3 JMP l147 l148: CALL ROOT int_lin_eq 1 R0 R1 R2 IMMI 1 R8 MOV R8 R3 l147: POST R3 RET :f_pre_int_lin_eq_d1i_d1vi_i:FUN 3 LENGTH R0 R4 IMMI 0 R5 EQI R4 R5 R6 JMPIFNOT R6 l215 EQI R2 R5 R7 MOV R7 R3 JMP l214 l215: CALL FUN int_lin_eq 1 R0 R1 R2 POP R8 MOV R8 R3 l214: PUSH R3 RET :f_pre_int_lin_eq_d1i_d1vi_i:IMP 3 LENGTH R0 R4 IMMI 0 R5 EQI R4 R5 R6 JMPIFNOT R6 l183 EQI R2 R5 R7 MOV R7 R3 JMP l182 l183: CALL FUN int_lin_eq 1 R0 R1 R2 POP R8 MOV R8 R3 l182: PUSH R3 RET :f_sum_cc_dTvi:FUN 1 OPEN_AGGREGATION OTHER IMMI 0 R2 BUILTIN array_Xd R0 R2 POP R1 BUILTIN infinite_domain POP R3 CALL ROOT mk_intvar 0 R3 POP R4 CALL ROOT int_sum 1 R1 R4 PUSH R4 CLEAR R1 R4 CLOSE_AGGREGATION POP R1 PUSH R1 RET :f_op_times_i_i:FUN 2 MULI R0 R1 R2 PUSH R2 RET :f_op_times_i_vi:FUN 2 IMMI 1 R2 IMMI 1 R4 EQI R0 R2 R5 JMPIFNOT R5 l213 IMMI 0 R4 MOV R1 R3 JMP l212 l213: OPEN_AGGREGATION OTHER BUILTIN infinite_domain POP R6 CALL ROOT mk_intvar 0 R6 POP R7 CALL ROOT int_times 1 R0 R1 R7 PUSH R7 CLEAR R6 R7 CLOSE_AGGREGATION POP R6 IMMI 0 R4 MOV R6 R3 l212: PUSH R3 RET :f_op_times_vi_i:FUN 2 CALL FUN d_op_times_i_i 0 R1 R0 POP R2 PUSH R2 RET :f_op_times_vi_vi:FUN 2 OPEN_AGGREGATION OTHER BUILTIN infinite_domain POP R2 CALL ROOT mk_intvar 0 R2 POP R3 CALL ROOT int_times 1 R0 R1 R3 PUSH R3 CLEAR R2 R3 CLOSE_AGGREGATION POP R2 PUSH R2 RET :d_op_times_i_i:FUN 2 ISPAR R0 R2 JMPIF R2 l69 JMP l70 l69: ISPAR R1 R2 JMPIF R2 l71 JMP l72 l70: ISPAR R1 R2 JMPIF R2 l73 JMP l74 l71: TCALL FUN f_op_times_i_i 0 l72: TCALL FUN f_op_times_i_vi 1 l73: TCALL FUN f_op_times_vi_i 1 l74: TCALL FUN f_op_times_vi_vi 1 :f_LNS_i:ROOT 1 LOAD_GLOBAL 16 R1 BUILTIN sol R1 POP R2 LB R1 R3 UB R2 R4 LTI R3 R4 R3 SIMPLIFY_LIN R1 R2 1 R5 R6 R7 IMMI 0 R9 EQI R0 R9 R10 JMPIFNOT R10 l176 CALL ROOT f_free_period 1 IMMI 1 R11 MOV R11 R8 JMP l175 l176: CALL ROOT f_random_allocation 1 IMMI 1 R12 MOV R12 R8 l175: POST R3 CALL ROOT f_pre_int_lin_le_d1i_d1vi_i 1 R5 R6 R7 POST R8 RET :output_this:ROOT 1 :f_global_cardinality_low_up_closed_d1vi_d1i_d1i_d1i:ROOT 4 CALL ROOT fzn_global_cardinality_low_up_closed 1 R0 R1 R2 R3 RET :f_pre_int_lin_le_d1i_d1vi_i:ROOT 3 LENGTH R0 R4 IMMI 0 R5 EQI R4 R5 R6 JMPIFNOT R6 l174 LEI R5 R2 R7 MOV R7 R3 JMP l173 l174: CALL ROOT int_lin_le 1 R0 R1 R2 IMMI 1 R8 MOV R8 R3 l173: POST R3 RET :f_bin_packing_load_d1vi_d1vi_d1i:ROOT 3 CALL ROOT f_fzn_bin_packing_load_d1vi_d1vi_d1i 1 R0 R1 R2 RET :f_op_minus_i_i:FUN 2 SUBI R0 R1 R2 PUSH R2 RET :f_op_minus_vi_i:FUN 2 IMMI 1 R2 IMMI 1 R4 IMMI 0 R5 EQI R1 R5 R6 JMPIFNOT R6 l152 IMMI 0 R4 MOV R0 R3 JMP l151 l152: OPEN_AGGREGATION OTHER BUILTIN infinite_domain POP R7 CALL ROOT mk_intvar 0 R7 POP R8 CALL ROOT int_minus 1 R0 R1 R8 PUSH R8 CLEAR R7 R8 CLOSE_AGGREGATION POP R7 IMMI 0 R4 MOV R7 R3 l151: PUSH R3 RET :f_op_minus_vi_vi:FUN 2 OPEN_AGGREGATION OTHER BUILTIN infinite_domain POP R2 CALL ROOT mk_intvar 0 R2 POP R3 CALL ROOT int_minus 1 R0 R1 R3 PUSH R3 CLEAR R2 R3 CLOSE_AGGREGATION POP R2 PUSH R2 RET :d_op_minus_i_i:FUN 2 ISPAR R0 R2 JMPIF R2 l130 JMP l131 l130: ISPAR R1 R2 JMPIF R2 l132 JMP l133 l131: ISPAR R1 R2 JMPIF R2 l134 JMP l133 l132: TCALL FUN f_op_minus_i_i 0 l133: TCALL FUN f_op_minus_vi_vi 1 l134: TCALL FUN f_op_minus_vi_i 1 :f_max_t_t:FUN 2 IMMI 1 R2 IMMI 1 R4 LTI R1 R0 R5 JMPIFNOT R5 l150 IMMI 0 R4 MOV R0 R3 JMP l149 l150: IMMI 0 R4 MOV R1 R3 l149: PUSH R3 RET :f_max_vi_vi:FUN 2 OPEN_AGGREGATION OTHER LB R0 R2 LB R1 R3 CALL FUN d_max_i_i 0 R2 R3 POP R4 UB R0 R5 UB R1 R6 CALL FUN d_max_i_i 0 R5 R6 POP R7 OPEN_AGGREGATION VEC PUSH R4 PUSH R7 CLOSE_AGGREGATION POP R8 CALL ROOT mk_intvar 0 R8 POP R9 CALL ROOT int_max 1 R0 R1 R9 PUSH R9 CLEAR R2 R9 CLOSE_AGGREGATION POP R2 PUSH R2 RET :d_max_i_i:FUN 2 ISPAR R0 R2 JMPIF R2 l135 JMP l136 l135: ISPAR R1 R2 JMPIF R2 l137 JMP l138 l136: JMP l138 l137: TCALL FUN f_max_t_t 0 l138: TCALL FUN f_max_vi_vi 1 :f_op_plus_i_i:FUN 2 ADDI R0 R1 R2 PUSH R2 RET :f_op_plus_i_vi:FUN 2 IMMI 1 R2 IMMI 1 R4 IMMI 0 R5 EQI R0 R5 R6 JMPIFNOT R6 l146 IMMI 0 R4 MOV R1 R3 JMP l145 l146: OPEN_AGGREGATION OTHER BUILTIN infinite_domain POP R7 CALL ROOT mk_intvar 0 R7 POP R8 CALL ROOT int_plus 1 R0 R1 R8 PUSH R8 CLEAR R7 R8 CLOSE_AGGREGATION POP R7 IMMI 0 R4 MOV R7 R3 l145: PUSH R3 RET :f_op_plus_vi_i:FUN 2 CALL FUN d_op_plus_i_i 0 R1 R0 POP R2 PUSH R2 RET :f_op_plus_vi_vi:FUN 2 OPEN_AGGREGATION OTHER BUILTIN infinite_domain POP R2 CALL ROOT mk_intvar 0 R2 POP R3 CALL ROOT int_plus 1 R0 R1 R3 PUSH R3 CLEAR R2 R3 CLOSE_AGGREGATION POP R2 PUSH R2 RET :d_op_plus_i_i:FUN 2 ISPAR R0 R2 JMPIF R2 l139 JMP l140 l139: ISPAR R1 R2 JMPIF R2 l141 JMP l142 l140: ISPAR R1 R2 JMPIF R2 l143 JMP l144 l141: TCALL FUN f_op_plus_i_i 0 l142: TCALL FUN f_op_plus_i_vi 1 l143: TCALL FUN f_op_plus_vi_i 1 l144: TCALL FUN f_op_plus_vi_vi 1 :solve_this:ROOT 5 :int_plus:ROOT 3 :int_max:ROOT 3 :int_minus:ROOT 3 :f_fzn_bin_packing_load_d1vi_d1vi_d1i:ROOT 3 IMMI 1 R3 BUILTIN index_set R0 R3 POP R4 CALL FUN d_min_si 0 R4 POP R5 CALL ROOT gecode_bin_packing_load 1 R0 R1 R2 R5 RET :f_min_si:FUN 1 LENGTH R0 R2 IMMI 1 R3 LEI R3 R2 R1 JMPIF R1 l172 ABORT l172: GET_VEC R0 R3 R1 PUSH R1 RET :f_min_dTvi:FUN 1 IMMI 0 R2 BUILTIN array_Xd R0 R2 POP R1 LENGTH R0 R3 IMMI 1 R4 LEI R4 R3 R5 CALL FUN f_min_t_d1vi 1 R1 POP R6 PUSH R6 RET :d_min_si:FUN 1 ISPAR R0 R1 JMPIF R1 l153 JMP l154 l153: TCALL FUN f_min_si 0 l154: TCALL FUN f_min_dTvi 1 :gecode_bin_packing_load:ROOT 4 :f_min_t_d1vi:FUN 1 IMMI 1 R1 IMMI 1 R3 LENGTH R0 R4 IMMI 0 R5 EQI R4 R5 R6 JMPIFNOT R6 l156 IMMI 0 R3 MOV R5 R2 JMP l155 l156: EQI R4 R1 R7 JMPIFNOT R7 l157 GET_ARRAY 1 R0 R1 R8 R9 MOV R9 R3 MOV R8 R2 JMP l155 l157: IMMI 2 R10 EQI R4 R10 R11 JMPIFNOT R11 l158 GET_ARRAY 1 R0 R1 R12 R13 GET_ARRAY 1 R0 R10 R14 R15 CALL FUN d_min_i_i 1 R12 R14 POP R16 IMMI 0 R17 JMPIFNOT R13 l163 MOV R15 R17 l163: MOV R17 R3 MOV R16 R2 JMP l155 l158: OPEN_AGGREGATION OTHER BUILTIN infinity R1 POP R18 ITER_ARRAY R0 l166 l165: ITER_NEXT R21 LB R21 R19 LTI R19 R18 R20 JMPIFNOT R20 l164 MOV R19 R18 l164: JMP l165 l166: BUILTIN infinity R5 POP R22 ITER_ARRAY R0 l169 l168: ITER_NEXT R25 UB R25 R23 LTI R22 R23 R24 JMPIFNOT R24 l167 MOV R23 R22 l167: JMP l168 l169: OPEN_AGGREGATION VEC PUSH R18 PUSH R22 CLOSE_AGGREGATION POP R26 CALL ROOT mk_intvar 0 R26 POP R27 CALL ROOT array_int_minimum 1 R27 R0 PUSH R27 CLEAR R18 R27 CLOSE_AGGREGATION POP R18 IMMI 0 R3 MOV R18 R2 l155: PUSH R2 RET :f_min_t_t:FUN 2 IMMI 1 R2 IMMI 1 R4 LTI R0 R1 R5 JMPIFNOT R5 l171 IMMI 0 R4 MOV R0 R3 JMP l170 l171: IMMI 0 R4 MOV R1 R3 l170: PUSH R3 RET :f_min_vi_vi:FUN 2 OPEN_AGGREGATION OTHER LB R0 R2 LB R1 R3 CALL FUN d_min_i_i 0 R2 R3 POP R4 UB R0 R5 UB R1 R6 CALL FUN d_min_i_i 0 R5 R6 POP R7 OPEN_AGGREGATION VEC PUSH R4 PUSH R7 CLOSE_AGGREGATION POP R8 CALL ROOT mk_intvar 0 R8 POP R9 CALL ROOT int_min 1 R0 R1 R9 PUSH R9 CLEAR R2 R9 CLOSE_AGGREGATION POP R2 PUSH R2 RET :d_min_i_i:FUN 2 ISPAR R0 R2 JMPIF R2 l159 JMP l160 l159: ISPAR R1 R2 JMPIF R2 l161 JMP l162 l160: JMP l162 l161: TCALL FUN f_min_t_t 0 l162: TCALL FUN f_min_vi_vi 1 :array_int_minimum:ROOT 2 :int_min:ROOT 3 :int_lin_le:ROOT 3 :fzn_global_cardinality_low_up_closed:ROOT 4 :f_free_period:ROOT 0 LOAD_GLOBAL 14 R0 CALL FUN f_uniform_set_si 0 R0 POP R1 LOAD_GLOBAL 13 R2 ITER_ARRAY R2 l185 l184: ITER_NEXT R3 ITER_NEXT R4 ITER_RANGE R3 R4 l187 l186: ITER_NEXT R5 LOAD_GLOBAL 15 R7 GET_ARRAY 1 R7 R5 R8 R9 BUILTIN sol R8 POP R6 EQI R6 R1 R10 NOT R10 R10 IMMI 0 R11 JMPIFNOT R9 l188 MOV R10 R11 l188: DOM R8 R12 DOM R6 R13 INTERSECTION R12 R13 R12 ISEMPTY R12 R13 NOT R13 R13 SIMPLIFY_LIN R8 R6 0 R15 R16 R14 IMMI 1 R17 JMPIF R11 l189 NOT R9 R18 JMPIF R18 l189 NOT R13 R19 JMPIF R19 l189 CALL IMP f_pre_int_lin_eq_d1i_d1vi_i 1 R15 R16 R14 POP R20 MOV R20 R17 l189: POST R17 JMP l186 l187: JMP l184 l185: RET :f_random_allocation:ROOT 0 LOAD_GLOBAL 13 R0 ITER_ARRAY R0 l178 l177: ITER_NEXT R1 ITER_NEXT R2 ITER_RANGE R1 R2 l180 l179: ITER_NEXT R3 IMMI 1 R5 IMMI 100 R6 BUILTIN uniform R5 R6 POP R4 IMMI 80 R7 LTI R4 R7 R8 LOAD_GLOBAL 15 R9 GET_ARRAY 1 R9 R3 R10 R11 BUILTIN sol R10 POP R12 DOM R10 R13 DOM R12 R14 INTERSECTION R13 R14 R13 ISEMPTY R13 R14 NOT R14 R14 SIMPLIFY_LIN R10 R12 0 R16 R17 R15 IMMI 1 R18 JMPIF R8 l181 NOT R11 R19 JMPIF R19 l181 NOT R14 R20 JMPIF R20 l181 CALL IMP f_pre_int_lin_eq_d1i_d1vi_i 1 R16 R17 R15 POP R21 MOV R21 R18 l181: POST R18 JMP l179 l180: JMP l177 l178: RET :int_lin_eq_reif:ROOT 4 :f_uniform_set_si:FUN 1 IMMI 1 R1 IMMI 1 R3 IMMI 0 R4 IMMI 1 R5 LENGTH R0 R6 LTI R5 R6 R7 JMPIFNOT R7 l192 l191: INCI R4 GET_VEC R0 R5 R7 SUBI R4 R7 R4 INCI R5 GET_VEC R0 R5 R7 INCI R5 ADDI R4 R7 R4 LTI R5 R6 R7 JMPIF R7 l191 l192: CALL FUN d_max_si 0 R0 POP R8 CALL FUN d_min_si 0 R0 POP R9 SUBI R8 R9 R10 ADDI R10 R1 R11 EQI R4 R11 R12 JMPIFNOT R12 l195 BUILTIN uniform R9 R8 POP R13 IMMI 0 R3 MOV R13 R2 JMP l190 l195: BUILTIN uniform R1 R4 POP R14 OPEN_AGGREGATION VEC ITER_ARRAY R0 l197 l196: ITER_NEXT R15 ITER_NEXT R16 ITER_RANGE R15 R16 l199 l198: ITER_NEXT R17 PUSH R17 JMP l198 l199: JMP l196 l197: CLEAR R15 R17 CLOSE_AGGREGATION POP R15 GET_ARRAY 1 R15 R14 R16 R17 MOV R17 R3 MOV R16 R2 l190: PUSH R2 RET :f_max_si:FUN 1 LENGTH R0 R2 IMMI 0 R3 LEI R3 R2 R1 JMPIF R1 l211 ABORT l211: GET_VEC R0 R2 R1 PUSH R1 RET :f_max_dTvi:FUN 1 IMMI 0 R2 BUILTIN array_Xd R0 R2 POP R1 LENGTH R0 R3 IMMI 1 R4 LEI R4 R3 R5 CALL FUN f_max_t_d1vi 1 R1 POP R6 PUSH R6 RET :d_max_si:FUN 1 ISPAR R0 R1 JMPIF R1 l193 JMP l194 l193: TCALL FUN f_max_si 0 l194: TCALL FUN f_max_dTvi 1 :f_max_t_d1vi:FUN 1 IMMI 1 R1 IMMI 1 R3 LENGTH R0 R4 IMMI 0 R5 EQI R4 R5 R6 JMPIFNOT R6 l201 IMMI 0 R3 MOV R5 R2 JMP l200 l201: EQI R4 R1 R7 JMPIFNOT R7 l202 BUILTIN index_set R0 R1 POP R8 CALL FUN d_min_si 0 R8 POP R9 GET_ARRAY 1 R0 R9 R10 R11 MOV R11 R3 MOV R10 R2 JMP l200 l202: IMMI 2 R12 EQI R4 R12 R13 JMPIFNOT R13 l203 GET_ARRAY 1 R0 R1 R14 R15 GET_ARRAY 1 R0 R12 R16 R17 CALL FUN d_max_i_i 0 R14 R16 POP R18 IMMI 0 R19 JMPIFNOT R15 l204 MOV R17 R19 l204: MOV R19 R3 MOV R18 R2 JMP l200 l203: OPEN_AGGREGATION OTHER BUILTIN infinity R1 POP R20 ITER_ARRAY R0 l207 l206: ITER_NEXT R23 LB R23 R21 LTI R21 R20 R22 JMPIFNOT R22 l205 MOV R21 R20 l205: JMP l206 l207: BUILTIN infinity R5 POP R24 ITER_ARRAY R0 l210 l209: ITER_NEXT R27 UB R27 R25 LTI R24 R25 R26 JMPIFNOT R26 l208 MOV R25 R24 l208: JMP l209 l210: OPEN_AGGREGATION VEC PUSH R20 PUSH R24 CLOSE_AGGREGATION POP R28 CALL ROOT mk_intvar 0 R28 POP R29 CALL ROOT array_int_maximum 1 R29 R0 PUSH R29 CLEAR R20 R29 CLOSE_AGGREGATION POP R20 IMMI 0 R3 MOV R20 R2 l200: PUSH R2 RET :array_int_maximum:ROOT 2 :int_times:ROOT 3 :int_sum:ROOT 2 :clause:ROOT 2 :clause:ROOT 2 :d_clause_d1b_d1b:ROOT 2 ISPAR R0 R2 JMPIF R2 l230 JMP l231 l230: ISPAR R1 R2 JMPIF R2 l232 JMP l233 l231: JMP l233 l232: TCALL ROOT clause 1 l233: TCALL ROOT clause 1 :bool_not:ROOT 2 :main:ROOT 0 OPEN_AGGREGATION OTHER IMMI 1 R0 LOAD_GLOBAL 0 R1 OPEN_AGGREGATION VEC PUSH R0 PUSH R1 CLOSE_AGGREGATION POP R2 STORE_GLOBAL R2 13 LOAD_GLOBAL 1 R3 OPEN_AGGREGATION VEC PUSH R0 PUSH R3 CLOSE_AGGREGATION POP R4 STORE_GLOBAL R4 14 OPEN_AGGREGATION VEC ITER_ARRAY R2 l3 l2: ITER_NEXT R7 ITER_NEXT R8 ITER_RANGE R7 R8 l5 l4: ITER_NEXT R9 CALL ROOT mk_intvar 0 R4 JMP l4 l5: JMP l2 l3: CLEAR R7 R9 CLOSE_AGGREGATION POP R5 OPEN_AGGREGATION VEC GET_VEC R2 R0 R6 PUSH R6 IMMI 2 R7 GET_VEC R2 R7 R6 PUSH R6 CLEAR R7 R7 CLOSE_AGGREGATION POP R6 BUILTIN array_Xd R5 R6 POP R5 STORE_GLOBAL R5 15 BUILTIN infinite_domain POP R7 CALL ROOT mk_intvar 0 R7 POP R8 STORE_GLOBAL R8 16 LOAD_GLOBAL 2 R9 OPEN_AGGREGATION VEC PUSH R0 PUSH R9 CLOSE_AGGREGATION POP R10 STORE_GLOBAL R10 17 LOAD_GLOBAL 4 R11 OPEN_AGGREGATION VEC PUSH R0 PUSH R11 CLOSE_AGGREGATION POP R12 STORE_GLOBAL R12 18 OPEN_AGGREGATION VEC ITER_ARRAY R2 l7 l6: ITER_NEXT R13 ITER_NEXT R14 ITER_RANGE R13 R14 l9 l8: ITER_NEXT R15 LOAD_GLOBAL 8 R16 GET_ARRAY 1 R16 R15 R17 R18 PUSH R17 JMP l8 l9: JMP l6 l7: CLEAR R13 R18 CLOSE_AGGREGATION POP R13 IMMI 0 R14 ITER_ARRAY R13 l11 l10: ITER_NEXT R15 ADDI R14 R15 R14 JMP l10 l11: STORE_GLOBAL R14 19 OPEN_AGGREGATION VEC ITER_ARRAY R10 l13 l12: ITER_NEXT R16 ITER_NEXT R17 ITER_RANGE R16 R17 l15 l14: ITER_NEXT R18 LOAD_GLOBAL 3 R19 GET_ARRAY 1 R19 R18 R20 R21 OPEN_AGGREGATION VEC ITER_ARRAY R20 l17 l16: ITER_NEXT R22 ITER_NEXT R23 ITER_RANGE R22 R23 l19 l18: ITER_NEXT R24 LOAD_GLOBAL 8 R25 GET_ARRAY 1 R25 R24 R26 R27 PUSH R26 JMP l18 l19: JMP l16 l17: CLEAR R22 R27 CLOSE_AGGREGATION POP R22 IMMI 0 R23 ITER_ARRAY R22 l21 l20: ITER_NEXT R24 ADDI R23 R24 R23 JMP l20 l21: PUSH R23 JMP l14 l15: JMP l12 l13: CLEAR R16 R24 CLOSE_AGGREGATION POP R16 STORE_GLOBAL R16 20 OPEN_AGGREGATION VEC ITER_ARRAY R10 l23 l22: ITER_NEXT R17 ITER_NEXT R18 ITER_RANGE R17 R18 l25 l24: ITER_NEXT R19 GET_ARRAY 1 R16 R19 R20 R21 IMMI 0 R23 EQI R3 R23 R22 NOT R22 R22 JMPIFNOT R22 l26 DIVI R20 R3 R24 MOV R24 R23 l26: PUSH R23 JMP l24 l25: JMP l22 l23: CLEAR R17 R24 CLOSE_AGGREGATION POP R17 STORE_GLOBAL R17 21 OPEN_AGGREGATION VEC ITER_ARRAY R10 l28 l27: ITER_NEXT R18 ITER_NEXT R19 ITER_RANGE R18 R19 l30 l29: ITER_NEXT R20 GET_ARRAY 1 R16 R20 R21 R22 IMMI 0 R24 EQI R3 R24 R23 NOT R23 R23 JMPIFNOT R23 l31 DIVI R21 R3 R25 MOV R25 R24 l31: IMMI 1 R27 IMMI 0 R29 EQI R3 R29 R28 NOT R28 R28 JMPIFNOT R28 l33 MODI R21 R3 R30 MOV R30 R29 l33: IMMI 0 R31 IMMI 0 R32 JMPIFNOT R22 l34 MOV R28 R32 l34: EQI R29 R31 R33 IMMI 0 R34 JMPIFNOT R32 l35 MOV R33 R34 l35: JMPIFNOT R34 l36 IMMI 0 R27 MOV R31 R26 JMP l32 l36: IMMI 0 R27 MOV R0 R26 l32: ADDI R24 R26 R35 PUSH R35 JMP l29 l30: JMP l27 l28: CLEAR R18 R35 CLOSE_AGGREGATION POP R18 STORE_GLOBAL R18 22 LOAD_GLOBAL 9 R19 OPEN_AGGREGATION VEC PUSH R0 PUSH R19 CLOSE_AGGREGATION POP R20 STORE_GLOBAL R20 23 IMMI 0 R21 OPEN_AGGREGATION VEC PUSH R21 PUSH R14 CLOSE_AGGREGATION POP R22 OPEN_AGGREGATION VEC ITER_ARRAY R10 l38 l37: ITER_NEXT R25 ITER_NEXT R26 ITER_RANGE R25 R26 l40 l39: ITER_NEXT R27 ITER_ARRAY R4 l42 l41: ITER_NEXT R28 ITER_NEXT R29 ITER_RANGE R28 R29 l44 l43: ITER_NEXT R30 CALL ROOT mk_intvar 0 R22 JMP l43 l44: JMP l41 l42: JMP l39 l40: JMP l37 l38: CLEAR R25 R30 CLOSE_AGGREGATION POP R23 OPEN_AGGREGATION VEC GET_VEC R10 R0 R24 PUSH R24 IMMI 2 R25 GET_VEC R10 R25 R24 PUSH R24 GET_VEC R4 R0 R24 PUSH R24 GET_VEC R4 R25 R24 PUSH R24 CLEAR R25 R25 CLOSE_AGGREGATION POP R24 BUILTIN array_Xd R23 R24 POP R23 STORE_GLOBAL R23 24 OPEN_AGGREGATION VEC ITER_ARRAY R20 l46 l45: ITER_NEXT R25 ITER_NEXT R26 ITER_RANGE R25 R26 l48 l47: ITER_NEXT R27 LOAD_GLOBAL 10 R28 GET_ARRAY 2 R28 R27 R0 R29 R30 GET_ARRAY 1 R5 R29 R31 R32 IMMI 2 R33 GET_ARRAY 2 R28 R27 R33 R34 R35 DOM R31 R36 DOM R34 R37 INTERSECTION R36 R37 R36 ISEMPTY R36 R37 NOT R37 R37 SIMPLIFY_LIN R31 R34 0 R39 R40 R38 IMMI 0 R41 JMPIFNOT R30 l49 JMPIFNOT R32 l49 JMPIFNOT R35 l49 JMPIFNOT R37 l49 CALL FUN f_pre_int_lin_eq_d1i_d1vi_i 1 R39 R40 R38 POP R42 MOV R42 R41 l49: PUSH R41 JMP l47 l48: JMP l45 l46: CLEAR R25 R42 CLOSE_AGGREGATION POP R25 LENGTH R25 R26 JMPIFNOT R26 l50 EQI R0 R26 R27 JMPIF R27 l51 CALL FUN f_sum_cc_dTvi 1 R25 POP R27 JMP l52 l50: IMMI 0 R27 JMP l52 l51: GET_VEC R25 R0 R27 l52: OPEN_AGGREGATION VEC PUSH R21 PUSH R19 CLOSE_AGGREGATION POP R28 INTERSECT_DOMAIN R27 R28 R29 STORE_GLOBAL R27 25 OPEN_AGGREGATION VEC ITER_ARRAY R10 l54 l53: ITER_NEXT R32 ITER_NEXT R33 ITER_RANGE R32 R33 l56 l55: ITER_NEXT R34 ITER_ARRAY R4 l58 l57: ITER_NEXT R35 ITER_NEXT R36 ITER_RANGE R35 R36 l60 l59: ITER_NEXT R37 CALL ROOT mk_intvar 0 R22 JMP l59 l60: JMP l57 l58: JMP l55 l56: JMP l53 l54: CLEAR R32 R37 CLOSE_AGGREGATION POP R30 OPEN_AGGREGATION VEC GET_VEC R10 R0 R31 PUSH R31 IMMI 2 R32 GET_VEC R10 R32 R31 PUSH R31 GET_VEC R4 R0 R31 PUSH R31 GET_VEC R4 R32 R31 PUSH R31 CLEAR R32 R32 CLOSE_AGGREGATION POP R31 BUILTIN array_Xd R30 R31 POP R30 STORE_GLOBAL R30 26 OPEN_AGGREGATION VEC ITER_ARRAY R10 l62 l61: ITER_NEXT R32 ITER_NEXT R33 ITER_RANGE R32 R33 l64 l63: ITER_NEXT R34 ITER_ARRAY R4 l66 l65: ITER_NEXT R35 ITER_NEXT R36 ITER_RANGE R35 R36 l68 l67: ITER_NEXT R37 GET_ARRAY 2 R30 R34 R37 R38 R39 CALL FUN d_op_times_i_i 1 R38 R38 POP R40 PUSH R40 JMP l67 l68: JMP l65 l66: JMP l63 l64: JMP l61 l62: CLEAR R32 R40 CLOSE_AGGREGATION POP R32 LENGTH R32 R33 JMPIFNOT R33 l75 EQI R0 R33 R34 JMPIF R34 l76 CALL FUN f_sum_cc_dTvi 1 R32 POP R34 JMP l77 l75: IMMI 0 R34 JMP l77 l76: GET_VEC R32 R0 R34 l77: STORE_GLOBAL R34 27 OPEN_AGGREGATION VEC PUSH R8 CLOSE_AGGREGATION POP R35 OPEN_AGGREGATION VEC ITER_ARRAY R35 l79 l78: ITER_NEXT R37 PUSH R37 JMP l78 l79: ITER_ARRAY R5 l81 l80: ITER_NEXT R38 PUSH R38 JMP l80 l81: CLEAR R37 R38 CLOSE_AGGREGATION POP R36 CALL ROOT output_this 1 R36 ITER_ARRAY R10 l83 l82: ITER_NEXT R37 ITER_NEXT R38 ITER_RANGE R37 R38 l85 l84: ITER_NEXT R39 LOAD_GLOBAL 3 R40 GET_ARRAY 1 R40 R39 R41 R42 OPEN_AGGREGATION VEC ITER_ARRAY R41 l87 l86: ITER_NEXT R43 ITER_NEXT R44 ITER_RANGE R43 R44 l89 l88: ITER_NEXT R45 GET_ARRAY 1 R5 R45 R46 R47 PUSH R46 JMP l88 l89: JMP l86 l87: CLEAR R43 R47 CLOSE_AGGREGATION POP R43 OPEN_AGGREGATION VEC ITER_ARRAY R4 l91 l90: ITER_NEXT R44 ITER_NEXT R45 ITER_RANGE R44 R45 l93 l92: ITER_NEXT R46 PUSH R46 JMP l92 l93: JMP l90 l91: CLEAR R44 R46 CLOSE_AGGREGATION POP R44 OPEN_AGGREGATION VEC ITER_ARRAY R4 l95 l94: ITER_NEXT R45 ITER_NEXT R46 ITER_RANGE R45 R46 l97 l96: ITER_NEXT R47 LOAD_GLOBAL 6 R48 PUSH R48 JMP l96 l97: JMP l94 l95: CLEAR R45 R48 CLOSE_AGGREGATION POP R45 OPEN_AGGREGATION VEC ITER_ARRAY R4 l99 l98: ITER_NEXT R46 ITER_NEXT R47 ITER_RANGE R46 R47 l101 l100: ITER_NEXT R48 LOAD_GLOBAL 7 R49 PUSH R49 JMP l100 l101: JMP l98 l99: CLEAR R46 R49 CLOSE_AGGREGATION POP R46 CALL ROOT f_global_cardinality_low_up_closed_d1vi_d1i_d1i_d1i 1 R43 R44 R45 R46 JMP l84 l85: JMP l82 l83: ITER_ARRAY R12 l103 l102: ITER_NEXT R47 ITER_NEXT R48 ITER_RANGE R47 R48 l105 l104: ITER_NEXT R49 LOAD_GLOBAL 5 R50 GET_ARRAY 2 R50 R49 R0 R51 R52 GET_ARRAY 1 R5 R51 R53 R54 IMMI 2 R55 GET_ARRAY 2 R50 R49 R55 R56 R57 GET_ARRAY 1 R5 R56 R58 R59 LB R53 R60 UB R58 R61 LTI R60 R61 R60 SIMPLIFY_LIN R53 R58 1 R62 R63 R64 POST R52 POST R54 POST R57 POST R59 POST R60 CALL ROOT f_pre_int_lin_le_d1i_d1vi_i 1 R62 R63 R64 JMP l104 l105: JMP l102 l103: ITER_ARRAY R10 l107 l106: ITER_NEXT R65 ITER_NEXT R66 ITER_RANGE R65 R66 l109 l108: ITER_NEXT R67 OPEN_AGGREGATION VEC ITER_ARRAY R4 l111 l110: ITER_NEXT R68 ITER_NEXT R69 ITER_RANGE R68 R69 l113 l112: ITER_NEXT R70 GET_ARRAY 2 R23 R67 R70 R71 R72 PUSH R71 JMP l112 l113: JMP l110 l111: CLEAR R68 R72 CLOSE_AGGREGATION POP R68 LOAD_GLOBAL 3 R69 GET_ARRAY 1 R69 R67 R70 R71 OPEN_AGGREGATION VEC ITER_ARRAY R70 l115 l114: ITER_NEXT R72 ITER_NEXT R73 ITER_RANGE R72 R73 l117 l116: ITER_NEXT R74 GET_ARRAY 1 R5 R74 R75 R76 PUSH R75 JMP l116 l117: JMP l114 l115: CLEAR R72 R76 CLOSE_AGGREGATION POP R72 OPEN_AGGREGATION VEC ITER_ARRAY R70 l119 l118: ITER_NEXT R73 ITER_NEXT R74 ITER_RANGE R73 R74 l121 l120: ITER_NEXT R75 LOAD_GLOBAL 8 R76 GET_ARRAY 1 R76 R75 R77 R78 PUSH R77 JMP l120 l121: JMP l118 l119: CLEAR R73 R78 CLOSE_AGGREGATION POP R73 CALL ROOT f_bin_packing_load_d1vi_d1vi_d1i 1 R68 R72 R73 JMP l108 l109: JMP l106 l107: ITER_ARRAY R10 l123 l122: ITER_NEXT R74 ITER_NEXT R75 ITER_RANGE R74 R75 l125 l124: ITER_NEXT R76 ITER_ARRAY R4 l127 l126: ITER_NEXT R77 ITER_NEXT R78 ITER_RANGE R77 R78 l129 l128: ITER_NEXT R79 GET_ARRAY 2 R30 R76 R79 R80 R81 GET_ARRAY 2 R23 R76 R79 R82 R83 GET_ARRAY 1 R18 R76 R84 R85 CALL FUN d_op_minus_i_i 1 R82 R84 POP R86 GET_ARRAY 1 R17 R76 R87 R88 CALL FUN d_op_minus_i_i 0 R87 R82 POP R89 CALL FUN d_max_i_i 1 R86 R89 POP R90 DOM R80 R91 DOM R90 R92 INTERSECTION R91 R92 R91 ISEMPTY R91 R92 NOT R92 R92 SIMPLIFY_LIN R80 R90 0 R94 R95 R93 POST R81 POST R83 POST R85 POST R88 POST R92 CALL ROOT f_pre_int_lin_eq_d1i_d1vi_i 1 R94 R95 R93 JMP l128 l129: JMP l126 l127: JMP l124 l125: JMP l122 l123: LOAD_GLOBAL 11 R96 CALL FUN d_op_times_i_i 0 R96 R34 POP R97 LOAD_GLOBAL 12 R98 CALL FUN d_op_times_i_i 0 R98 R27 POP R99 CALL FUN d_op_plus_i_i 1 R97 R99 POP R100 DOM R8 R101 DOM R100 R102 INTERSECTION R101 R102 R101 ISEMPTY R101 R102 NOT R102 R102 SIMPLIFY_LIN R8 R100 0 R104 R105 R103 POST R102 CALL ROOT f_pre_int_lin_eq_d1i_d1vi_i 1 R104 R105 R103 IMMI 2 R106 CALL ROOT solve_this 1 R21 R21 R5 R106 R0 CLEAR R0 R106 RET