diff --git a/examples/tests/issue139.fzn b/examples/tests/issue139.fzn new file mode 100644 index 0000000000..eb098a4607 --- /dev/null +++ b/examples/tests/issue139.fzn @@ -0,0 +1,243 @@ +predicate inverse(array [int] of var int: f,array [int] of var int: invf); +predicate array_int_maximum(var int: m,array [int] of var int: x); +array [1..2] of int: X_INTRODUCED_54 = [1,-1]; +array [1..2] of int: X_INTRODUCED_81 = [-1,1]; +array [1..3] of int: X_INTRODUCED_96 = [1,-2,-2]; +array [1..2] of int: X_INTRODUCED_127 = [1,-2]; +array [1..4] of int: X_INTRODUCED_158 = [1,-2,-2,-2]; +var 1..18: X_INTRODUCED_0; +var 1..18: X_INTRODUCED_1; +var 1..18: X_INTRODUCED_2; +var 1..18: X_INTRODUCED_3; +var 1..18: X_INTRODUCED_4; +var 1..18: X_INTRODUCED_5; +var 1..18: X_INTRODUCED_6; +var 1..18: X_INTRODUCED_7; +var 1..18: X_INTRODUCED_8; +var 1..18: X_INTRODUCED_9; +var 1..18: X_INTRODUCED_10; +var 1..18: X_INTRODUCED_11; +var 1..18: X_INTRODUCED_12; +var 1..18: X_INTRODUCED_13; +var 1..18: X_INTRODUCED_14; +var 1..18: X_INTRODUCED_15; +var 1..18: X_INTRODUCED_16; +var 1..18: X_INTRODUCED_17; +var bool: X_INTRODUCED_55 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_56 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_57 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_58 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_59 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_60 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_61 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_62 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_63 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_64 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_65 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_66 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_67 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_68 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_69 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_70 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_71 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_72 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_73 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_74 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_75 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_76 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_77 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_78 ::var_is_introduced :: is_defined_var; +var int: X_INTRODUCED_80 ::var_is_introduced ; +var bool: X_INTRODUCED_82 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_83 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_84 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_85 ::var_is_introduced :: is_defined_var; +var 1..18: X_INTRODUCED_90 ::var_is_introduced ; +var bool: X_INTRODUCED_91 ::var_is_introduced :: is_defined_var; +var 1..18: X_INTRODUCED_93 ::var_is_introduced ; +var bool: X_INTRODUCED_94 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_95 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_97 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_98 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_99 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_100 ::var_is_introduced :: is_defined_var; +var int: X_INTRODUCED_101 ::var_is_introduced ; +var bool: X_INTRODUCED_102 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_103 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_104 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_105 ::var_is_introduced :: is_defined_var; +var 1..18: X_INTRODUCED_109 ::var_is_introduced ; +var bool: X_INTRODUCED_110 ::var_is_introduced :: is_defined_var; +var 1..18: X_INTRODUCED_112 ::var_is_introduced ; +var bool: X_INTRODUCED_113 ::var_is_introduced :: is_defined_var; +var 1..18: X_INTRODUCED_115 ::var_is_introduced ; +var bool: X_INTRODUCED_116 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_117 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_118 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_119 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_120 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_121 ::var_is_introduced :: is_defined_var; +var int: X_INTRODUCED_122 ::var_is_introduced ; +var bool: X_INTRODUCED_123 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_124 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_126 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_128 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_129 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_130 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_131 ::var_is_introduced :: is_defined_var; +var int: X_INTRODUCED_132 ::var_is_introduced ; +var bool: X_INTRODUCED_133 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_134 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_135 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_136 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_139 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_140 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_141 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_142 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_143 ::var_is_introduced :: is_defined_var; +var int: X_INTRODUCED_144 ::var_is_introduced ; +var bool: X_INTRODUCED_145 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_146 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_147 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_148 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_149 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_150 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_153 ::var_is_introduced :: is_defined_var; +var 1..18: X_INTRODUCED_155 ::var_is_introduced ; +var bool: X_INTRODUCED_156 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_157 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_159 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_160 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_161 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_162 ::var_is_introduced :: is_defined_var; +var int: X_INTRODUCED_163 ::var_is_introduced ; +var bool: X_INTRODUCED_164 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_165 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_166 ::var_is_introduced :: is_defined_var; +var 0..1: X_INTRODUCED_167 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_170 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_171 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_172 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_173 ::var_is_introduced :: is_defined_var; +var bool: X_INTRODUCED_174 ::var_is_introduced :: is_defined_var; +var int: X_INTRODUCED_178 ::var_is_introduced :: is_defined_var; +array [1..18] of var int: interview = [X_INTRODUCED_0,X_INTRODUCED_1,X_INTRODUCED_2,X_INTRODUCED_3,X_INTRODUCED_4,X_INTRODUCED_5,X_INTRODUCED_6,X_INTRODUCED_7,X_INTRODUCED_8,X_INTRODUCED_9,X_INTRODUCED_10,X_INTRODUCED_11,X_INTRODUCED_12,X_INTRODUCED_13,X_INTRODUCED_14,X_INTRODUCED_15,X_INTRODUCED_16,X_INTRODUCED_17]; +array [1..18] of var int: order:: output_array([1..18]) = [18,8,17,3,16,7,12,4,15,6,14,5,13,9,1,11,2,10]; +array [1..18] of var int: points:: output_array([1..18]) = [X_INTRODUCED_80,X_INTRODUCED_56,X_INTRODUCED_58,X_INTRODUCED_101,X_INTRODUCED_60,X_INTRODUCED_62,X_INTRODUCED_122,X_INTRODUCED_64,X_INTRODUCED_132,X_INTRODUCED_66,X_INTRODUCED_68,X_INTRODUCED_144,X_INTRODUCED_70,X_INTRODUCED_72,X_INTRODUCED_74,X_INTRODUCED_163,X_INTRODUCED_76,X_INTRODUCED_78]; +array [1..3] of var int: X_INTRODUCED_89 ::var_is_introduced = [X_INTRODUCED_3,X_INTRODUCED_4,X_INTRODUCED_5]; +array [1..4] of var int: X_INTRODUCED_92 ::var_is_introduced = [X_INTRODUCED_11,X_INTRODUCED_12,X_INTRODUCED_13,X_INTRODUCED_14]; +array [1..3] of var int: X_INTRODUCED_108 ::var_is_introduced = [X_INTRODUCED_0,X_INTRODUCED_1,X_INTRODUCED_2]; +array [1..3] of var int: X_INTRODUCED_114 ::var_is_introduced = [X_INTRODUCED_8,X_INTRODUCED_9,X_INTRODUCED_10]; +array [1..3] of var int: X_INTRODUCED_154 ::var_is_introduced = [X_INTRODUCED_15,X_INTRODUCED_16,X_INTRODUCED_17]; +constraint inverse(interview,order); +constraint array_int_maximum(X_INTRODUCED_90,X_INTRODUCED_89); +constraint array_int_maximum(X_INTRODUCED_93,X_INTRODUCED_92); +constraint bool_clause([X_INTRODUCED_97],[X_INTRODUCED_95]); +constraint bool_clause([X_INTRODUCED_95,X_INTRODUCED_99],[X_INTRODUCED_98]); +constraint array_bool_or([X_INTRODUCED_95,X_INTRODUCED_98,X_INTRODUCED_100],true); +constraint array_int_maximum(X_INTRODUCED_109,X_INTRODUCED_108); +constraint int_max(X_INTRODUCED_6,X_INTRODUCED_7,X_INTRODUCED_112); +constraint array_int_maximum(X_INTRODUCED_115,X_INTRODUCED_114); +constraint bool_clause([X_INTRODUCED_118],[X_INTRODUCED_117]); +constraint bool_clause([X_INTRODUCED_117,X_INTRODUCED_120],[X_INTRODUCED_119]); +constraint array_bool_or([X_INTRODUCED_117,X_INTRODUCED_119,X_INTRODUCED_121],true); +constraint bool_clause([X_INTRODUCED_128],[X_INTRODUCED_126]); +constraint bool_clause([X_INTRODUCED_126,X_INTRODUCED_130],[X_INTRODUCED_129]); +constraint array_bool_or([X_INTRODUCED_126,X_INTRODUCED_129,X_INTRODUCED_131],true); +constraint bool_clause([X_INTRODUCED_140],[X_INTRODUCED_139]); +constraint bool_clause([X_INTRODUCED_139,X_INTRODUCED_142],[X_INTRODUCED_141]); +constraint array_bool_or([X_INTRODUCED_139,X_INTRODUCED_141,X_INTRODUCED_143],true); +constraint array_int_maximum(X_INTRODUCED_155,X_INTRODUCED_154); +constraint bool_clause([X_INTRODUCED_159],[X_INTRODUCED_157]); +constraint bool_clause([X_INTRODUCED_157,X_INTRODUCED_161],[X_INTRODUCED_160]); +constraint array_bool_or([X_INTRODUCED_157,X_INTRODUCED_160,X_INTRODUCED_162],true); +constraint bool_clause([X_INTRODUCED_171],[X_INTRODUCED_170]); +constraint bool_clause([X_INTRODUCED_170,X_INTRODUCED_173],[X_INTRODUCED_172]); +constraint array_bool_or([X_INTRODUCED_170,X_INTRODUCED_172,X_INTRODUCED_174],true); +constraint int_lin_le_reif(X_INTRODUCED_54,[X_INTRODUCED_1,X_INTRODUCED_0],-1,X_INTRODUCED_55):: defines_var(X_INTRODUCED_55); +constraint bool2int(X_INTRODUCED_55,X_INTRODUCED_56):: defines_var(X_INTRODUCED_56); +constraint int_lin_le_reif(X_INTRODUCED_54,[X_INTRODUCED_2,X_INTRODUCED_0],-1,X_INTRODUCED_57):: defines_var(X_INTRODUCED_57); +constraint bool2int(X_INTRODUCED_57,X_INTRODUCED_58):: defines_var(X_INTRODUCED_58); +constraint int_lin_le_reif(X_INTRODUCED_54,[X_INTRODUCED_4,X_INTRODUCED_3],-1,X_INTRODUCED_59):: defines_var(X_INTRODUCED_59); +constraint bool2int(X_INTRODUCED_59,X_INTRODUCED_60):: defines_var(X_INTRODUCED_60); +constraint int_lin_le_reif(X_INTRODUCED_54,[X_INTRODUCED_5,X_INTRODUCED_3],-1,X_INTRODUCED_61):: defines_var(X_INTRODUCED_61); +constraint bool2int(X_INTRODUCED_61,X_INTRODUCED_62):: defines_var(X_INTRODUCED_62); +constraint int_lin_le_reif(X_INTRODUCED_54,[X_INTRODUCED_7,X_INTRODUCED_6],-1,X_INTRODUCED_63):: defines_var(X_INTRODUCED_63); +constraint bool2int(X_INTRODUCED_63,X_INTRODUCED_64):: defines_var(X_INTRODUCED_64); +constraint int_lin_le_reif(X_INTRODUCED_54,[X_INTRODUCED_9,X_INTRODUCED_8],-1,X_INTRODUCED_65):: defines_var(X_INTRODUCED_65); +constraint bool2int(X_INTRODUCED_65,X_INTRODUCED_66):: defines_var(X_INTRODUCED_66); +constraint int_lin_le_reif(X_INTRODUCED_54,[X_INTRODUCED_10,X_INTRODUCED_8],-1,X_INTRODUCED_67):: defines_var(X_INTRODUCED_67); +constraint bool2int(X_INTRODUCED_67,X_INTRODUCED_68):: defines_var(X_INTRODUCED_68); +constraint int_lin_le_reif(X_INTRODUCED_54,[X_INTRODUCED_12,X_INTRODUCED_11],-1,X_INTRODUCED_69):: defines_var(X_INTRODUCED_69); +constraint bool2int(X_INTRODUCED_69,X_INTRODUCED_70):: defines_var(X_INTRODUCED_70); +constraint int_lin_le_reif(X_INTRODUCED_54,[X_INTRODUCED_13,X_INTRODUCED_11],-1,X_INTRODUCED_71):: defines_var(X_INTRODUCED_71); +constraint bool2int(X_INTRODUCED_71,X_INTRODUCED_72):: defines_var(X_INTRODUCED_72); +constraint int_lin_le_reif(X_INTRODUCED_54,[X_INTRODUCED_14,X_INTRODUCED_11],-1,X_INTRODUCED_73):: defines_var(X_INTRODUCED_73); +constraint bool2int(X_INTRODUCED_73,X_INTRODUCED_74):: defines_var(X_INTRODUCED_74); +constraint int_lin_le_reif(X_INTRODUCED_54,[X_INTRODUCED_16,X_INTRODUCED_15],-1,X_INTRODUCED_75):: defines_var(X_INTRODUCED_75); +constraint bool2int(X_INTRODUCED_75,X_INTRODUCED_76):: defines_var(X_INTRODUCED_76); +constraint int_lin_le_reif(X_INTRODUCED_54,[X_INTRODUCED_17,X_INTRODUCED_15],-1,X_INTRODUCED_77):: defines_var(X_INTRODUCED_77); +constraint bool2int(X_INTRODUCED_77,X_INTRODUCED_78):: defines_var(X_INTRODUCED_78); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_1,X_INTRODUCED_0],-1,X_INTRODUCED_82):: defines_var(X_INTRODUCED_82); +constraint bool2int(X_INTRODUCED_82,X_INTRODUCED_83):: defines_var(X_INTRODUCED_83); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_2,X_INTRODUCED_0],-1,X_INTRODUCED_84):: defines_var(X_INTRODUCED_84); +constraint bool2int(X_INTRODUCED_84,X_INTRODUCED_85):: defines_var(X_INTRODUCED_85); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_0,X_INTRODUCED_90],-1,X_INTRODUCED_91):: defines_var(X_INTRODUCED_91); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_0,X_INTRODUCED_93],-1,X_INTRODUCED_94):: defines_var(X_INTRODUCED_94); +constraint array_bool_or([X_INTRODUCED_91,X_INTRODUCED_94],X_INTRODUCED_95):: defines_var(X_INTRODUCED_95); +constraint int_lin_eq_reif(X_INTRODUCED_96,[X_INTRODUCED_80,X_INTRODUCED_83,X_INTRODUCED_85],3,X_INTRODUCED_97):: defines_var(X_INTRODUCED_97); +constraint int_le_reif(X_INTRODUCED_0,8,X_INTRODUCED_98):: defines_var(X_INTRODUCED_98); +constraint int_eq_reif(X_INTRODUCED_80,3,X_INTRODUCED_99):: defines_var(X_INTRODUCED_99); +constraint int_eq_reif(X_INTRODUCED_80,0,X_INTRODUCED_100):: defines_var(X_INTRODUCED_100); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_4,X_INTRODUCED_3],-1,X_INTRODUCED_102):: defines_var(X_INTRODUCED_102); +constraint bool2int(X_INTRODUCED_102,X_INTRODUCED_103):: defines_var(X_INTRODUCED_103); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_5,X_INTRODUCED_3],-1,X_INTRODUCED_104):: defines_var(X_INTRODUCED_104); +constraint bool2int(X_INTRODUCED_104,X_INTRODUCED_105):: defines_var(X_INTRODUCED_105); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_3,X_INTRODUCED_109],-1,X_INTRODUCED_110):: defines_var(X_INTRODUCED_110); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_3,X_INTRODUCED_112],-1,X_INTRODUCED_113):: defines_var(X_INTRODUCED_113); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_3,X_INTRODUCED_115],-1,X_INTRODUCED_116):: defines_var(X_INTRODUCED_116); +constraint array_bool_or([X_INTRODUCED_110,X_INTRODUCED_113,X_INTRODUCED_116],X_INTRODUCED_117):: defines_var(X_INTRODUCED_117); +constraint int_lin_eq_reif(X_INTRODUCED_96,[X_INTRODUCED_101,X_INTRODUCED_103,X_INTRODUCED_105],3,X_INTRODUCED_118):: defines_var(X_INTRODUCED_118); +constraint int_le_reif(X_INTRODUCED_3,8,X_INTRODUCED_119):: defines_var(X_INTRODUCED_119); +constraint int_eq_reif(X_INTRODUCED_101,3,X_INTRODUCED_120):: defines_var(X_INTRODUCED_120); +constraint int_eq_reif(X_INTRODUCED_101,0,X_INTRODUCED_121):: defines_var(X_INTRODUCED_121); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_7,X_INTRODUCED_6],-1,X_INTRODUCED_123):: defines_var(X_INTRODUCED_123); +constraint bool2int(X_INTRODUCED_123,X_INTRODUCED_124):: defines_var(X_INTRODUCED_124); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_6,X_INTRODUCED_90],-1,X_INTRODUCED_126):: defines_var(X_INTRODUCED_126); +constraint int_lin_eq_reif(X_INTRODUCED_127,[X_INTRODUCED_122,X_INTRODUCED_124],3,X_INTRODUCED_128):: defines_var(X_INTRODUCED_128); +constraint int_le_reif(X_INTRODUCED_6,8,X_INTRODUCED_129):: defines_var(X_INTRODUCED_129); +constraint int_eq_reif(X_INTRODUCED_122,3,X_INTRODUCED_130):: defines_var(X_INTRODUCED_130); +constraint int_eq_reif(X_INTRODUCED_122,0,X_INTRODUCED_131):: defines_var(X_INTRODUCED_131); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_9,X_INTRODUCED_8],-1,X_INTRODUCED_133):: defines_var(X_INTRODUCED_133); +constraint bool2int(X_INTRODUCED_133,X_INTRODUCED_134):: defines_var(X_INTRODUCED_134); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_10,X_INTRODUCED_8],-1,X_INTRODUCED_135):: defines_var(X_INTRODUCED_135); +constraint bool2int(X_INTRODUCED_135,X_INTRODUCED_136):: defines_var(X_INTRODUCED_136); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_8,X_INTRODUCED_90],-1,X_INTRODUCED_139):: defines_var(X_INTRODUCED_139); +constraint int_lin_eq_reif(X_INTRODUCED_96,[X_INTRODUCED_132,X_INTRODUCED_134,X_INTRODUCED_136],3,X_INTRODUCED_140):: defines_var(X_INTRODUCED_140); +constraint int_le_reif(X_INTRODUCED_8,8,X_INTRODUCED_141):: defines_var(X_INTRODUCED_141); +constraint int_eq_reif(X_INTRODUCED_132,3,X_INTRODUCED_142):: defines_var(X_INTRODUCED_142); +constraint int_eq_reif(X_INTRODUCED_132,0,X_INTRODUCED_143):: defines_var(X_INTRODUCED_143); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_12,X_INTRODUCED_11],-1,X_INTRODUCED_145):: defines_var(X_INTRODUCED_145); +constraint bool2int(X_INTRODUCED_145,X_INTRODUCED_146):: defines_var(X_INTRODUCED_146); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_13,X_INTRODUCED_11],-1,X_INTRODUCED_147):: defines_var(X_INTRODUCED_147); +constraint bool2int(X_INTRODUCED_147,X_INTRODUCED_148):: defines_var(X_INTRODUCED_148); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_14,X_INTRODUCED_11],-1,X_INTRODUCED_149):: defines_var(X_INTRODUCED_149); +constraint bool2int(X_INTRODUCED_149,X_INTRODUCED_150):: defines_var(X_INTRODUCED_150); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_11,X_INTRODUCED_109],-1,X_INTRODUCED_153):: defines_var(X_INTRODUCED_153); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_11,X_INTRODUCED_155],-1,X_INTRODUCED_156):: defines_var(X_INTRODUCED_156); +constraint array_bool_or([X_INTRODUCED_153,X_INTRODUCED_156],X_INTRODUCED_157):: defines_var(X_INTRODUCED_157); +constraint int_lin_eq_reif(X_INTRODUCED_158,[X_INTRODUCED_144,X_INTRODUCED_146,X_INTRODUCED_148,X_INTRODUCED_150],3,X_INTRODUCED_159):: defines_var(X_INTRODUCED_159); +constraint int_le_reif(X_INTRODUCED_11,8,X_INTRODUCED_160):: defines_var(X_INTRODUCED_160); +constraint int_eq_reif(X_INTRODUCED_144,3,X_INTRODUCED_161):: defines_var(X_INTRODUCED_161); +constraint int_eq_reif(X_INTRODUCED_144,0,X_INTRODUCED_162):: defines_var(X_INTRODUCED_162); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_16,X_INTRODUCED_15],-1,X_INTRODUCED_164):: defines_var(X_INTRODUCED_164); +constraint bool2int(X_INTRODUCED_164,X_INTRODUCED_165):: defines_var(X_INTRODUCED_165); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_17,X_INTRODUCED_15],-1,X_INTRODUCED_166):: defines_var(X_INTRODUCED_166); +constraint bool2int(X_INTRODUCED_166,X_INTRODUCED_167):: defines_var(X_INTRODUCED_167); +constraint int_lin_le_reif(X_INTRODUCED_81,[X_INTRODUCED_15,X_INTRODUCED_93],-1,X_INTRODUCED_170):: defines_var(X_INTRODUCED_170); +constraint int_lin_eq_reif(X_INTRODUCED_96,[X_INTRODUCED_163,X_INTRODUCED_165,X_INTRODUCED_167],3,X_INTRODUCED_171):: defines_var(X_INTRODUCED_171); +constraint int_le_reif(X_INTRODUCED_15,8,X_INTRODUCED_172):: defines_var(X_INTRODUCED_172); +constraint int_eq_reif(X_INTRODUCED_163,3,X_INTRODUCED_173):: defines_var(X_INTRODUCED_173); +constraint int_eq_reif(X_INTRODUCED_163,0,X_INTRODUCED_174):: defines_var(X_INTRODUCED_174); +constraint int_lin_eq([1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-1],[X_INTRODUCED_80,X_INTRODUCED_56,X_INTRODUCED_58,X_INTRODUCED_101,X_INTRODUCED_60,X_INTRODUCED_62,X_INTRODUCED_122,X_INTRODUCED_64,X_INTRODUCED_132,X_INTRODUCED_66,X_INTRODUCED_68,X_INTRODUCED_144,X_INTRODUCED_70,X_INTRODUCED_72,X_INTRODUCED_74,X_INTRODUCED_163,X_INTRODUCED_76,X_INTRODUCED_78,X_INTRODUCED_178],0):: defines_var(X_INTRODUCED_178); +solve maximize X_INTRODUCED_178;