1 2%%% The following code has been produced by the CHR compiler 3 4 5:- ( current_module(chr) -> true ; use_module(library(chr)) ). 6 7:- get_flag(variable_names, Val), setval(variable_names_flag, Val), set_flag(variable_names, off). 8card(_11752, _11751, _11750) :- length(_11750, _11749), _11752 =< _11751, 0 =< _11751, _11752 =< _11749, card(_11752, _11751, _11750, _11749). 9set_to_ones([]). 10set_to_ones([1|_12539]) :- set_to_ones(_12539). 11set_to_zeros([]). 12set_to_zeros([0|_12565]) :- set_to_zeros(_12565). 13:- op(100, fy, ~~). 14:- op(100, xfy, #). 15solve_bool(_12634, _12633) :- var(_12634), !, _12634 = _12633. 16solve_bool(_12660, _12659) :- atomic(_12660), !, _12660 = _12659. 17solve_bool(_12699 * _12695, _12689) ?- !, solve_bool(_12699, _12691), solve_bool(_12695, _12690), and(_12691, _12690, _12689). 18solve_bool(_12739 + _12735, _12729) ?- !, solve_bool(_12739, _12731), solve_bool(_12735, _12730), or(_12731, _12730, _12729). 19solve_bool(#(_12779, _12775), _12769) ?- !, solve_bool(_12779, _12771), solve_bool(_12775, _12770), exor(_12771, _12770, _12769). 20solve_bool(~~(_12810), _12805) ?- !, solve_bool(_12810, _12806), neg(_12806, _12805). 21solve_bool(_12854 -> _12850, _12841) ?- !, solve_bool(_12854, _12846), solve_bool(_12850, _12845), imp(_12846, _12845), _12841 = 1. 22solve_bool(_12899 = _12895, _12886) ?- !, solve_bool(_12899, _12891), solve_bool(_12895, _12890), _12891 = _12890, _12886 = 1. 23bool_portray(and(_12930, _12929, _12925), _12931) ?- !, _12931 = (_12930 * _12929 = _12925). 24bool_portray(or(_12963, _12962, _12958), _12964) ?- !, _12964 = (_12963 + _12962 = _12958). 25bool_portray(exor(_12996, _12995, _12991), _12997) ?- !, _12997 = (#(_12996, _12995) = _12991). 26bool_portray(neg(_13027, _13026), _13028) ?- !, _13028 = (_13027 = ~~(_13026)). 27bool_portray(imp(_13055, _13054), _13056) ?- !, _13056 = (_13055 -> _13054). 28bool_portray(card(_13085, _13084, _13083, _13095), _13086) ?- !, _13086 = card(_13085, _13084, _13083). 29:- define_macro(type(compound), bool_portray / 2, [write]). 30label_bool([]). 31label_bool([_13147|_13140]) :- (_13147 = 0 ; _13147 = 1), label_bool(_13140). 32 33 34 35%%% Callables for boolean / 1 36 37'CHRlabel_with'(boolean(A), B, C) ?- 38 coca(try_clause(C, boolean(A), boolean(D), true)), 39 coca(clause_fired(C)), 40 'CHR='(B, clause_boolean(A)). 41 42 43 44%%% Callables for and / 3 45 46'CHRlabel_with'(and(A, B, C), D, E) ?- 47 coca(try_clause(E, and(A, B, C), and(F, G, H), true)), 48 coca(clause_fired(E)), 49 'CHR='(D, clause_and(A, B, C)). 50 51 52 53%%% Callables for or / 3 54 55'CHRlabel_with'(or(A, B, C), D, E) ?- 56 coca(try_clause(E, or(A, B, C), or(F, G, H), true)), 57 coca(clause_fired(E)), 58 'CHR='(D, clause_or(A, B, C)). 59'CHRlabel_with'(or(A, B, C), D, E) ?- 60 coca(try_clause(E, or(A, B, C), or(F, G, H), true)), 61 coca(clause_fired(E)), 62 'CHR='(D, clause_or(A, B, C)). 63 64 65 66%%% Callables for neg / 2 67 68'CHRlabel_with'(neg(A, B), C, D) ?- 69 coca(try_clause(D, neg(A, B), neg(E, F), true)), 70 coca(clause_fired(D)), 71 'CHR='(C, clause_neg(A, B)). 72 73 74 75%%% Callables for imp / 2 76 77'CHRlabel_with'(imp(A, B), C, D) ?- 78 coca(try_clause(D, imp(A, B), imp(E, F), true)), 79 coca(clause_fired(D)), 80 'CHR='(C, clause_imp(A, B)). 81 82 83 84%%% Callables for card / 4 85 86'CHRlabel_with'(card(A, B, C, D), E, F) ?- 87 coca(try_clause(F, card(A, B, C, D), card(G, H, I, J), true)), 88 coca(clause_fired(F)), 89 'CHR='(E, clause_card(A, B, C, D)). 90 91 92 93%%% Prolog clauses for boolean / 1 94 95clause_boolean(0). 96clause_boolean(1). 97:- current_macro(clause_boolean / 1, _14192, _14193, _14194) -> true ; define_macro(clause_boolean / 1, tr_chr / 2, [write]). 98boolean(A) :- 99 'CHRgen_num'(B), 100 coca(add_one_constraint(B, boolean(A))), 101 'CHRboolean_1'(boolean(A), C, D, B). 102 103 104 105%%% Rules handling for boolean / 1 106 107'CHRboolean_1'(boolean(A), B, C, D) :- 108 ( 109 'CHRnonvar'(B) 110 ; 111 'CHRalready_in'('CHRboolean_1'(boolean(A), B, C, D)), 112 coca(already_in) 113 ), 114 !. 115'CHRboolean_1'(boolean(0), A, B, C) ?- 116 coca(try_rule(C, boolean(0), anonymous("0"), boolean(0), replacement, true, true)), 117 !, 118 'CHRkill'(A), 119 coca(fired_rule(anonymous("0"))). 120'CHRboolean_1'(boolean(1), A, B, C) ?- 121 coca(try_rule(C, boolean(1), anonymous("1"), boolean(1), replacement, true, true)), 122 !, 123 'CHRkill'(A), 124 coca(fired_rule(anonymous("1"))). 125'CHRboolean_1'(boolean(A), B, C, D) :- 126 'CHRboolean_1__60'(boolean(A), B, C, D). 127:- set_flag('CHRboolean_1' / 4, leash, notrace). 128:- current_macro('CHRboolean_1' / 4, _14790, _14791, _14792) -> true ; define_macro('CHRboolean_1' / 4, tr_chr / 2, [write]). 129'CHRboolean_1__60'(A, B, C, D) :- 130 'CHRboolean_1__61'(A, B, C, D). 131:- set_flag('CHRboolean_1__60' / 4, leash, notrace). 132'CHRboolean_1__61'(boolean(A), B, C, D) :- 133 ( 134 'CHRvar'(B) 135 -> 136 'CHRdelay'([B, boolean(A)], 'CHRboolean_1'(boolean(A), B, C, D)) 137 ; 138 true 139 ). 140:- set_flag('CHRboolean_1__61' / 4, leash, notrace). 141 142 143 144%%% Prolog clauses for and / 3 145 146clause_and(0, A, 0). 147clause_and(1, A, A). 148:- current_macro(clause_and / 3, _15139, _15140, _15141) -> true ; define_macro(clause_and / 3, tr_chr / 2, [write]). 149and(A, B, C) :- 150 'CHRgen_num'(D), 151 coca(add_one_constraint(D, and(A, B, C))), 152 'CHRand_3'(and(A, B, C), E, F, D). 153 154 155 156%%% Rules handling for and / 3 157 158'CHRand_3'(and(A, B, C), D, E, F) :- 159 ( 160 'CHRnonvar'(D) 161 ; 162 'CHRalready_in'('CHRand_3'(and(A, B, C), D, E, F)), 163 coca(already_in) 164 ), 165 !. 166'CHRand_3'(and(0, A, B), C, D, E) ?- 167 coca(try_rule(E, and(0, A, B), anonymous("2"), and(0, F, G), replacement, true, G = 0)), 168 !, 169 'CHRkill'(C), 170 coca(fired_rule(anonymous("2"))), 171 B = 0. 172'CHRand_3'(and(A, 0, B), C, D, E) ?- 173 coca(try_rule(E, and(A, 0, B), anonymous("3"), and(F, 0, G), replacement, true, G = 0)), 174 !, 175 'CHRkill'(C), 176 coca(fired_rule(anonymous("3"))), 177 B = 0. 178'CHRand_3'(and(1, A, B), C, D, E) ?- 179 coca(try_rule(E, and(1, A, B), anonymous("4"), and(1, F, G), replacement, true, G = F)), 180 !, 181 'CHRkill'(C), 182 coca(fired_rule(anonymous("4"))), 183 B = A. 184'CHRand_3'(and(A, 1, B), C, D, E) ?- 185 coca(try_rule(E, and(A, 1, B), anonymous("5"), and(F, 1, G), replacement, true, G = F)), 186 !, 187 'CHRkill'(C), 188 coca(fired_rule(anonymous("5"))), 189 B = A. 190'CHRand_3'(and(A, B, 1), C, D, E) ?- 191 coca(try_rule(E, and(A, B, 1), anonymous("6"), and(F, G, 1), replacement, true, (F = 1, G = 1))), 192 !, 193 'CHRkill'(C), 194 coca(fired_rule(anonymous("6"))), 195 [A, B] = [1, 1]. 196'CHRand_3'(and(A, A, B), C, D, E) ?- 197 coca(try_rule(E, and(A, A, B), anonymous("7"), and(F, F, G), replacement, true, F = G)), 198 !, 199 'CHRkill'(C), 200 coca(fired_rule(anonymous("7"))), 201 A = B. 202'CHRand_3'(and(A, B, C), D, E, F) ?- 203 'CHRget_delayed_goals'(C, G), 204 'CHRand_3__63'(G, [C, A], [], H), 205 coca(try_double(F, and(A, B, C), H, neg(A, C), and(I, J, K), neg(I, K), replacement, true, (I = 1, J = 0, K = 0), anonymous("36"))), 206 !, 207 'CHRkill'(D), 208 coca(fired_rule(anonymous("36"))), 209 [A, [B, C]] = [1, [0, 0]]. 210'CHRand_3'(and(A, B, C), D, E, F) ?- 211 'CHRget_delayed_goals'(C, G), 212 'CHRand_3__64'(G, [C, A], [], H), 213 coca(try_double(F, and(A, B, C), H, neg(C, A), and(I, J, K), neg(K, I), replacement, true, (I = 1, J = 0, K = 0), anonymous("37"))), 214 !, 215 'CHRkill'(D), 216 coca(fired_rule(anonymous("37"))), 217 [A, [B, C]] = [1, [0, 0]]. 218'CHRand_3'(and(A, B, C), D, E, F) ?- 219 'CHRget_delayed_goals'(C, G), 220 'CHRand_3__65'(G, [C, B], [], H), 221 coca(try_double(F, and(A, B, C), H, neg(B, C), and(I, J, K), neg(J, K), replacement, true, (I = 0, J = 1, K = 0), anonymous("38"))), 222 !, 223 'CHRkill'(D), 224 coca(fired_rule(anonymous("38"))), 225 [A, [B, C]] = [0, [1, 0]]. 226'CHRand_3'(and(A, B, C), D, E, F) ?- 227 'CHRget_delayed_goals'(C, G), 228 'CHRand_3__66'(G, [C, B], [], H), 229 coca(try_double(F, and(A, B, C), H, neg(C, B), and(I, J, K), neg(K, J), replacement, true, (I = 0, J = 1, K = 0), anonymous("39"))), 230 !, 231 'CHRkill'(D), 232 coca(fired_rule(anonymous("39"))), 233 [A, [B, C]] = [0, [1, 0]]. 234'CHRand_3'(and(A, B, C), D, E, F) ?- 235 'CHRget_delayed_goals'(B, G), 236 'CHRand_3__67'(G, [B, A], [H], I), 237 coca(try_double(F, and(A, B, C), I, and(A, B, H), and(J, K, L), and(J, K, M), keep_second, true, M = L, anonymous("8"))), 238 !, 239 'CHRkill'(D), 240 coca(fired_rule(anonymous("8"))), 241 H = C. 242'CHRand_3'(and(A, B, C), D, E, F) ?- 243 'CHRget_delayed_goals'(B, G), 244 'CHRand_3__68'(G, [B, A], [H], I), 245 coca(try_double(F, and(A, B, C), I, and(B, A, H), and(J, K, L), and(K, J, M), keep_second, true, M = L, anonymous("9"))), 246 !, 247 'CHRkill'(D), 248 coca(fired_rule(anonymous("9"))), 249 H = C. 250'CHRand_3'(and(A, B, C), D, E, F) ?- 251 'CHRget_delayed_goals'(B, G), 252 'CHRand_3__69'(G, [B, A], [], H), 253 coca(try_double(F, and(A, B, C), H, neg(A, B), and(I, J, K), neg(I, J), keep_second, true, K = 0, anonymous("34"))), 254 !, 255 'CHRkill'(D), 256 coca(fired_rule(anonymous("34"))), 257 C = 0. 258'CHRand_3'(and(A, B, C), D, E, F) ?- 259 'CHRget_delayed_goals'(B, G), 260 'CHRand_3__70'(G, [B, A], [], H), 261 coca(try_double(F, and(A, B, C), H, neg(B, A), and(I, J, K), neg(J, I), keep_second, true, K = 0, anonymous("35"))), 262 !, 263 'CHRkill'(D), 264 coca(fired_rule(anonymous("35"))), 265 C = 0. 266'CHRand_3'(and(A, B, C), D, E, F) :- 267 'CHRand_3__62'(and(A, B, C), D, E, F). 268'CHRand_3__63'(['CHRneg_2'(neg(A, B), C, D, E)|F], [B, A], [], G) ?- 269 'CHRvar'(C), 270 'CHRkill'(C), 271 'CHR='([], []), 272 'CHR='(E, G). 273'CHRand_3__63'([A|B], C, D, E) :- 274 'CHRand_3__63'(B, C, D, E). 275:- set_flag('CHRand_3__63' / 4, leash, notrace). 276'CHRand_3__64'(['CHRneg_2'(neg(A, B), C, D, E)|F], [A, B], [], G) ?- 277 'CHRvar'(C), 278 'CHRkill'(C), 279 'CHR='([], []), 280 'CHR='(E, G). 281'CHRand_3__64'([A|B], C, D, E) :- 282 'CHRand_3__64'(B, C, D, E). 283:- set_flag('CHRand_3__64' / 4, leash, notrace). 284'CHRand_3__65'(['CHRneg_2'(neg(A, B), C, D, E)|F], [B, A], [], G) ?- 285 'CHRvar'(C), 286 'CHRkill'(C), 287 'CHR='([], []), 288 'CHR='(E, G). 289'CHRand_3__65'([A|B], C, D, E) :- 290 'CHRand_3__65'(B, C, D, E). 291:- set_flag('CHRand_3__65' / 4, leash, notrace). 292'CHRand_3__66'(['CHRneg_2'(neg(A, B), C, D, E)|F], [A, B], [], G) ?- 293 'CHRvar'(C), 294 'CHRkill'(C), 295 'CHR='([], []), 296 'CHR='(E, G). 297'CHRand_3__66'([A|B], C, D, E) :- 298 'CHRand_3__66'(B, C, D, E). 299:- set_flag('CHRand_3__66' / 4, leash, notrace). 300'CHRand_3__67'(['CHRand_3'(and(A, B, C), D, E, F)|G], [B, A], [H], I) ?- 301 'CHRvar'(D), 302 'CHR='([C], [H]), 303 'CHR='(F, I). 304'CHRand_3__67'([A|B], C, D, E) :- 305 'CHRand_3__67'(B, C, D, E). 306:- set_flag('CHRand_3__67' / 4, leash, notrace). 307'CHRand_3__68'(['CHRand_3'(and(A, B, C), D, E, F)|G], [A, B], [H], I) ?- 308 'CHRvar'(D), 309 'CHR='([C], [H]), 310 'CHR='(F, I). 311'CHRand_3__68'([A|B], C, D, E) :- 312 'CHRand_3__68'(B, C, D, E). 313:- set_flag('CHRand_3__68' / 4, leash, notrace). 314'CHRand_3__69'(['CHRneg_2'(neg(A, B), C, D, E)|F], [B, A], [], G) ?- 315 'CHRvar'(C), 316 'CHR='([], []), 317 'CHR='(E, G). 318'CHRand_3__69'([A|B], C, D, E) :- 319 'CHRand_3__69'(B, C, D, E). 320:- set_flag('CHRand_3__69' / 4, leash, notrace). 321'CHRand_3__70'(['CHRneg_2'(neg(A, B), C, D, E)|F], [A, B], [], G) ?- 322 'CHRvar'(C), 323 'CHR='([], []), 324 'CHR='(E, G). 325'CHRand_3__70'([A|B], C, D, E) :- 326 'CHRand_3__70'(B, C, D, E). 327:- set_flag('CHRand_3__70' / 4, leash, notrace). 328:- set_flag('CHRand_3' / 4, leash, notrace). 329:- current_macro('CHRand_3' / 4, _20401, _20402, _20403) -> true ; define_macro('CHRand_3' / 4, tr_chr / 2, [write]). 330'CHRand_3__62'(A, B, C, D) :- 331 'CHRand_3__71'(A, B, C, D). 332:- set_flag('CHRand_3__62' / 4, leash, notrace). 333'CHRand_3__71'(and(A, B, C), D, E, F) ?- 334 'CHRvar'(D), 335 !, 336 'CHRget_delayed_goals'(B, G), 337 'CHRand_3__71__72'(G, D, and(A, B, C), E, F). 338'CHRand_3__71'(and(A, B, C), D, E, F) :- 339 'CHRand_3__71__73'(and(A, B, C), D, E, F). 340:- set_flag('CHRand_3__71' / 4, leash, notrace). 341'CHRand_3__71__72'(['CHRand_3'(and(A, B, C), D, E, F)|G], H, and(A, B, I), J, K) ?- 342 'CHRvar'(D), 343 coca(try_double(K, and(A, B, I), F, and(A, B, C), and(L, M, N), and(L, M, O), keep_first, true, N = O, anonymous("8"))), 344 !, 345 'CHRkill'(D), 346 coca(fired_rule(anonymous("8"))), 347 'CHRand_3__71__72'(G, H, and(A, B, I), J, K), 348 I = C. 349'CHRand_3__71__72'([A|B], C, D, E, F) :- 350 'CHRand_3__71__72'(B, C, D, E, F). 351'CHRand_3__71__72'([], A, B, C, D) :- 352 'CHRand_3__71__73'(B, A, C, D). 353:- set_flag('CHRand_3__71__72' / 5, leash, notrace). 354'CHRand_3__71__73'(and(A, B, C), D, E, F) ?- 355 'CHRvar'(D), 356 !, 357 'CHRget_delayed_goals'(B, G), 358 'CHRand_3__71__73__74'(G, D, and(A, B, C), E, F). 359'CHRand_3__71__73'(and(A, B, C), D, E, F) :- 360 'CHRand_3__71__73__75'(and(A, B, C), D, E, F). 361:- set_flag('CHRand_3__71__73' / 4, leash, notrace). 362'CHRand_3__71__73__74'(['CHRand_3'(and(A, B, C), D, E, F)|G], H, and(B, A, I), J, K) ?- 363 'CHRvar'(D), 364 coca(try_double(K, and(B, A, I), F, and(A, B, C), and(L, M, N), and(M, L, O), keep_first, true, N = O, anonymous("9"))), 365 !, 366 'CHRkill'(D), 367 coca(fired_rule(anonymous("9"))), 368 'CHRand_3__71__73__74'(G, H, and(B, A, I), J, K), 369 I = C. 370'CHRand_3__71__73__74'([A|B], C, D, E, F) :- 371 'CHRand_3__71__73__74'(B, C, D, E, F). 372'CHRand_3__71__73__74'([], A, B, C, D) :- 373 'CHRand_3__71__73__75'(B, A, C, D). 374:- set_flag('CHRand_3__71__73__74' / 5, leash, notrace). 375'CHRand_3__71__73__75'(and(A, B, C), D, E, F) :- 376 ( 377 'CHRvar'(D) 378 -> 379 'CHRdelay'([D, and(A, B, C)], 'CHRand_3'(and(A, B, C), D, E, F)) 380 ; 381 true 382 ). 383:- set_flag('CHRand_3__71__73__75' / 4, leash, notrace). 384 385 386 387%%% Prolog clauses for or / 3 388 389clause_or(0, A, A). 390clause_or(1, A, 1). 391:- current_macro(clause_or / 3, _21932, _21933, _21934) -> true ; define_macro(clause_or / 3, tr_chr / 2, [write]). 392or(A, B, C) :- 393 'CHRgen_num'(D), 394 coca(add_one_constraint(D, or(A, B, C))), 395 'CHRor_3'(or(A, B, C), E, F, D). 396 397 398 399%%% Rules handling for or / 3 400 401'CHRor_3'(or(A, B, C), D, E, F) :- 402 ( 403 'CHRnonvar'(D) 404 ; 405 'CHRalready_in'('CHRor_3'(or(A, B, C), D, E, F)), 406 coca(already_in) 407 ), 408 !. 409'CHRor_3'(or(0, A, B), C, D, E) ?- 410 coca(try_rule(E, or(0, A, B), anonymous("10"), or(0, F, G), replacement, true, G = F)), 411 !, 412 'CHRkill'(C), 413 coca(fired_rule(anonymous("10"))), 414 B = A. 415'CHRor_3'(or(A, 0, B), C, D, E) ?- 416 coca(try_rule(E, or(A, 0, B), anonymous("11"), or(F, 0, G), replacement, true, G = F)), 417 !, 418 'CHRkill'(C), 419 coca(fired_rule(anonymous("11"))), 420 B = A. 421'CHRor_3'(or(A, B, 0), C, D, E) ?- 422 coca(try_rule(E, or(A, B, 0), anonymous("12"), or(F, G, 0), replacement, true, (F = 0, G = 0))), 423 !, 424 'CHRkill'(C), 425 coca(fired_rule(anonymous("12"))), 426 [A, B] = [0, 0]. 427'CHRor_3'(or(1, A, B), C, D, E) ?- 428 coca(try_rule(E, or(1, A, B), anonymous("13"), or(1, F, G), replacement, true, G = 1)), 429 !, 430 'CHRkill'(C), 431 coca(fired_rule(anonymous("13"))), 432 B = 1. 433'CHRor_3'(or(A, 1, B), C, D, E) ?- 434 coca(try_rule(E, or(A, 1, B), anonymous("14"), or(F, 1, G), replacement, true, G = 1)), 435 !, 436 'CHRkill'(C), 437 coca(fired_rule(anonymous("14"))), 438 B = 1. 439'CHRor_3'(or(A, A, B), C, D, E) ?- 440 coca(try_rule(E, or(A, A, B), anonymous("15"), or(F, F, G), replacement, true, F = G)), 441 !, 442 'CHRkill'(C), 443 coca(fired_rule(anonymous("15"))), 444 A = B. 445'CHRor_3'(or(A, B, C), D, E, F) ?- 446 'CHRget_delayed_goals'(C, G), 447 'CHRor_3__77'(G, [C, A], [], H), 448 coca(try_double(F, or(A, B, C), H, neg(A, C), or(I, J, K), neg(I, K), replacement, true, (I = 0, J = 1, K = 1), anonymous("42"))), 449 !, 450 'CHRkill'(D), 451 coca(fired_rule(anonymous("42"))), 452 [A, [B, C]] = [0, [1, 1]]. 453'CHRor_3'(or(A, B, C), D, E, F) ?- 454 'CHRget_delayed_goals'(C, G), 455 'CHRor_3__78'(G, [C, A], [], H), 456 coca(try_double(F, or(A, B, C), H, neg(C, A), or(I, J, K), neg(K, I), replacement, true, (I = 0, J = 1, K = 1), anonymous("43"))), 457 !, 458 'CHRkill'(D), 459 coca(fired_rule(anonymous("43"))), 460 [A, [B, C]] = [0, [1, 1]]. 461'CHRor_3'(or(A, B, C), D, E, F) ?- 462 'CHRget_delayed_goals'(C, G), 463 'CHRor_3__79'(G, [C, B], [], H), 464 coca(try_double(F, or(A, B, C), H, neg(B, C), or(I, J, K), neg(J, K), replacement, true, (I = 1, J = 0, K = 1), anonymous("44"))), 465 !, 466 'CHRkill'(D), 467 coca(fired_rule(anonymous("44"))), 468 [A, [B, C]] = [1, [0, 1]]. 469'CHRor_3'(or(A, B, C), D, E, F) ?- 470 'CHRget_delayed_goals'(C, G), 471 'CHRor_3__80'(G, [C, B], [], H), 472 coca(try_double(F, or(A, B, C), H, neg(C, B), or(I, J, K), neg(K, J), replacement, true, (I = 1, J = 0, K = 1), anonymous("45"))), 473 !, 474 'CHRkill'(D), 475 coca(fired_rule(anonymous("45"))), 476 [A, [B, C]] = [1, [0, 1]]. 477'CHRor_3'(or(A, B, C), D, E, F) ?- 478 'CHRget_delayed_goals'(B, G), 479 'CHRor_3__81'(G, [B, A], [H], I), 480 coca(try_double(F, or(A, B, C), I, or(A, B, H), or(J, K, L), or(J, K, M), keep_second, true, M = L, anonymous("16"))), 481 !, 482 'CHRkill'(D), 483 coca(fired_rule(anonymous("16"))), 484 H = C. 485'CHRor_3'(or(A, B, C), D, E, F) ?- 486 'CHRget_delayed_goals'(B, G), 487 'CHRor_3__82'(G, [B, A], [H], I), 488 coca(try_double(F, or(A, B, C), I, or(B, A, H), or(J, K, L), or(K, J, M), keep_second, true, M = L, anonymous("17"))), 489 !, 490 'CHRkill'(D), 491 coca(fired_rule(anonymous("17"))), 492 H = C. 493'CHRor_3'(or(A, B, C), D, E, F) ?- 494 'CHRget_delayed_goals'(B, G), 495 'CHRor_3__83'(G, [B, A], [], H), 496 coca(try_double(F, or(A, B, C), H, neg(A, B), or(I, J, K), neg(I, J), keep_second, true, K = 1, anonymous("40"))), 497 !, 498 'CHRkill'(D), 499 coca(fired_rule(anonymous("40"))), 500 C = 1. 501'CHRor_3'(or(A, B, C), D, E, F) ?- 502 'CHRget_delayed_goals'(B, G), 503 'CHRor_3__84'(G, [B, A], [], H), 504 coca(try_double(F, or(A, B, C), H, neg(B, A), or(I, J, K), neg(J, I), keep_second, true, K = 1, anonymous("41"))), 505 !, 506 'CHRkill'(D), 507 coca(fired_rule(anonymous("41"))), 508 C = 1. 509'CHRor_3'(or(A, B, C), D, E, F) :- 510 'CHRor_3__76'(or(A, B, C), D, E, F). 511'CHRor_3__77'(['CHRneg_2'(neg(A, B), C, D, E)|F], [B, A], [], G) ?- 512 'CHRvar'(C), 513 'CHRkill'(C), 514 'CHR='([], []), 515 'CHR='(E, G). 516'CHRor_3__77'([A|B], C, D, E) :- 517 'CHRor_3__77'(B, C, D, E). 518:- set_flag('CHRor_3__77' / 4, leash, notrace). 519'CHRor_3__78'(['CHRneg_2'(neg(A, B), C, D, E)|F], [A, B], [], G) ?- 520 'CHRvar'(C), 521 'CHRkill'(C), 522 'CHR='([], []), 523 'CHR='(E, G). 524'CHRor_3__78'([A|B], C, D, E) :- 525 'CHRor_3__78'(B, C, D, E). 526:- set_flag('CHRor_3__78' / 4, leash, notrace). 527'CHRor_3__79'(['CHRneg_2'(neg(A, B), C, D, E)|F], [B, A], [], G) ?- 528 'CHRvar'(C), 529 'CHRkill'(C), 530 'CHR='([], []), 531 'CHR='(E, G). 532'CHRor_3__79'([A|B], C, D, E) :- 533 'CHRor_3__79'(B, C, D, E). 534:- set_flag('CHRor_3__79' / 4, leash, notrace). 535'CHRor_3__80'(['CHRneg_2'(neg(A, B), C, D, E)|F], [A, B], [], G) ?- 536 'CHRvar'(C), 537 'CHRkill'(C), 538 'CHR='([], []), 539 'CHR='(E, G). 540'CHRor_3__80'([A|B], C, D, E) :- 541 'CHRor_3__80'(B, C, D, E). 542:- set_flag('CHRor_3__80' / 4, leash, notrace). 543'CHRor_3__81'(['CHRor_3'(or(A, B, C), D, E, F)|G], [B, A], [H], I) ?- 544 'CHRvar'(D), 545 'CHR='([C], [H]), 546 'CHR='(F, I). 547'CHRor_3__81'([A|B], C, D, E) :- 548 'CHRor_3__81'(B, C, D, E). 549:- set_flag('CHRor_3__81' / 4, leash, notrace). 550'CHRor_3__82'(['CHRor_3'(or(A, B, C), D, E, F)|G], [A, B], [H], I) ?- 551 'CHRvar'(D), 552 'CHR='([C], [H]), 553 'CHR='(F, I). 554'CHRor_3__82'([A|B], C, D, E) :- 555 'CHRor_3__82'(B, C, D, E). 556:- set_flag('CHRor_3__82' / 4, leash, notrace). 557'CHRor_3__83'(['CHRneg_2'(neg(A, B), C, D, E)|F], [B, A], [], G) ?- 558 'CHRvar'(C), 559 'CHR='([], []), 560 'CHR='(E, G). 561'CHRor_3__83'([A|B], C, D, E) :- 562 'CHRor_3__83'(B, C, D, E). 563:- set_flag('CHRor_3__83' / 4, leash, notrace). 564'CHRor_3__84'(['CHRneg_2'(neg(A, B), C, D, E)|F], [A, B], [], G) ?- 565 'CHRvar'(C), 566 'CHR='([], []), 567 'CHR='(E, G). 568'CHRor_3__84'([A|B], C, D, E) :- 569 'CHRor_3__84'(B, C, D, E). 570:- set_flag('CHRor_3__84' / 4, leash, notrace). 571:- set_flag('CHRor_3' / 4, leash, notrace). 572:- current_macro('CHRor_3' / 4, _27194, _27195, _27196) -> true ; define_macro('CHRor_3' / 4, tr_chr / 2, [write]). 573'CHRor_3__76'(A, B, C, D) :- 574 'CHRor_3__85'(A, B, C, D). 575:- set_flag('CHRor_3__76' / 4, leash, notrace). 576'CHRor_3__85'(or(A, B, C), D, E, F) ?- 577 'CHRvar'(D), 578 !, 579 'CHRget_delayed_goals'(B, G), 580 'CHRor_3__85__86'(G, D, or(A, B, C), E, F). 581'CHRor_3__85'(or(A, B, C), D, E, F) :- 582 'CHRor_3__85__87'(or(A, B, C), D, E, F). 583:- set_flag('CHRor_3__85' / 4, leash, notrace). 584'CHRor_3__85__86'(['CHRor_3'(or(A, B, C), D, E, F)|G], H, or(A, B, I), J, K) ?- 585 'CHRvar'(D), 586 coca(try_double(K, or(A, B, I), F, or(A, B, C), or(L, M, N), or(L, M, O), keep_first, true, N = O, anonymous("16"))), 587 !, 588 'CHRkill'(D), 589 coca(fired_rule(anonymous("16"))), 590 'CHRor_3__85__86'(G, H, or(A, B, I), J, K), 591 I = C. 592'CHRor_3__85__86'([A|B], C, D, E, F) :- 593 'CHRor_3__85__86'(B, C, D, E, F). 594'CHRor_3__85__86'([], A, B, C, D) :- 595 'CHRor_3__85__87'(B, A, C, D). 596:- set_flag('CHRor_3__85__86' / 5, leash, notrace). 597'CHRor_3__85__87'(or(A, B, C), D, E, F) ?- 598 'CHRvar'(D), 599 !, 600 'CHRget_delayed_goals'(B, G), 601 'CHRor_3__85__87__88'(G, D, or(A, B, C), E, F). 602'CHRor_3__85__87'(or(A, B, C), D, E, F) :- 603 'CHRor_3__85__87__89'(or(A, B, C), D, E, F). 604:- set_flag('CHRor_3__85__87' / 4, leash, notrace). 605'CHRor_3__85__87__88'(['CHRor_3'(or(A, B, C), D, E, F)|G], H, or(B, A, I), J, K) ?- 606 'CHRvar'(D), 607 coca(try_double(K, or(B, A, I), F, or(A, B, C), or(L, M, N), or(M, L, O), keep_first, true, N = O, anonymous("17"))), 608 !, 609 'CHRkill'(D), 610 coca(fired_rule(anonymous("17"))), 611 'CHRor_3__85__87__88'(G, H, or(B, A, I), J, K), 612 I = C. 613'CHRor_3__85__87__88'([A|B], C, D, E, F) :- 614 'CHRor_3__85__87__88'(B, C, D, E, F). 615'CHRor_3__85__87__88'([], A, B, C, D) :- 616 'CHRor_3__85__87__89'(B, A, C, D). 617:- set_flag('CHRor_3__85__87__88' / 5, leash, notrace). 618'CHRor_3__85__87__89'(or(A, B, C), D, E, F) :- 619 ( 620 'CHRvar'(D) 621 -> 622 'CHRdelay'([D, or(A, B, C)], 'CHRor_3'(or(A, B, C), D, E, F)) 623 ; 624 true 625 ). 626:- set_flag('CHRor_3__85__87__89' / 4, leash, notrace). 627 628 629 630%%% Prolog clauses for exor / 3 631 632clause_exor(0, A, A). 633clause_exor(1, A, B) :- 634 neg(A, B). 635:- current_macro(clause_exor / 3, _28726, _28727, _28728) -> true ; define_macro(clause_exor / 3, tr_chr / 2, [write]). 636exor(A, B, C) :- 637 'CHRgen_num'(D), 638 coca(add_one_constraint(D, exor(A, B, C))), 639 'CHRexor_3'(exor(A, B, C), E, F, D). 640 641 642 643%%% Rules handling for exor / 3 644 645'CHRexor_3'(exor(A, B, C), D, E, F) :- 646 ( 647 'CHRnonvar'(D) 648 ; 649 'CHRalready_in'('CHRexor_3'(exor(A, B, C), D, E, F)), 650 coca(already_in) 651 ), 652 !. 653'CHRexor_3'(exor(0, A, B), C, D, E) ?- 654 coca(try_rule(E, exor(0, A, B), anonymous("18"), exor(0, F, G), replacement, true, F = G)), 655 !, 656 'CHRkill'(C), 657 coca(fired_rule(anonymous("18"))), 658 A = B. 659'CHRexor_3'(exor(A, 0, B), C, D, E) ?- 660 coca(try_rule(E, exor(A, 0, B), anonymous("19"), exor(F, 0, G), replacement, true, F = G)), 661 !, 662 'CHRkill'(C), 663 coca(fired_rule(anonymous("19"))), 664 A = B. 665'CHRexor_3'(exor(A, B, 0), C, D, E) ?- 666 coca(try_rule(E, exor(A, B, 0), anonymous("20"), exor(F, G, 0), replacement, true, F = G)), 667 !, 668 'CHRkill'(C), 669 coca(fired_rule(anonymous("20"))), 670 A = B. 671'CHRexor_3'(exor(1, A, B), C, D, E) ?- 672 coca(try_rule(E, exor(1, A, B), anonymous("21"), exor(1, F, G), replacement, true, neg(F, G))), 673 !, 674 'CHRkill'(C), 675 coca(fired_rule(anonymous("21"))), 676 neg(A, B). 677'CHRexor_3'(exor(A, 1, B), C, D, E) ?- 678 coca(try_rule(E, exor(A, 1, B), anonymous("22"), exor(F, 1, G), replacement, true, neg(F, G))), 679 !, 680 'CHRkill'(C), 681 coca(fired_rule(anonymous("22"))), 682 neg(A, B). 683'CHRexor_3'(exor(A, B, 1), C, D, E) ?- 684 coca(try_rule(E, exor(A, B, 1), anonymous("23"), exor(F, G, 1), replacement, true, neg(F, G))), 685 !, 686 'CHRkill'(C), 687 coca(fired_rule(anonymous("23"))), 688 neg(A, B). 689'CHRexor_3'(exor(A, A, B), C, D, E) ?- 690 coca(try_rule(E, exor(A, A, B), anonymous("24"), exor(F, F, G), replacement, true, G = 0)), 691 !, 692 'CHRkill'(C), 693 coca(fired_rule(anonymous("24"))), 694 B = 0. 695'CHRexor_3'(exor(A, B, A), C, D, E) ?- 696 coca(try_rule(E, exor(A, B, A), anonymous("25"), exor(F, G, F), replacement, true, G = 0)), 697 !, 698 'CHRkill'(C), 699 coca(fired_rule(anonymous("25"))), 700 B = 0. 701'CHRexor_3'(exor(A, B, B), C, D, E) ?- 702 coca(try_rule(E, exor(A, B, B), anonymous("26"), exor(F, G, G), replacement, true, F = 0)), 703 !, 704 'CHRkill'(C), 705 coca(fired_rule(anonymous("26"))), 706 A = 0. 707'CHRexor_3'(exor(A, B, C), D, E, F) ?- 708 'CHRget_delayed_goals'(B, G), 709 'CHRexor_3__91'(G, [B, A], [H], I), 710 coca(try_double(F, exor(A, B, C), I, exor(A, B, H), exor(J, K, L), exor(J, K, M), keep_second, true, M = L, anonymous("27"))), 711 !, 712 'CHRkill'(D), 713 coca(fired_rule(anonymous("27"))), 714 H = C. 715'CHRexor_3'(exor(A, B, C), D, E, F) ?- 716 'CHRget_delayed_goals'(B, G), 717 'CHRexor_3__92'(G, [B, A], [H], I), 718 coca(try_double(F, exor(A, B, C), I, exor(B, A, H), exor(J, K, L), exor(K, J, M), keep_second, true, M = L, anonymous("28"))), 719 !, 720 'CHRkill'(D), 721 coca(fired_rule(anonymous("28"))), 722 H = C. 723'CHRexor_3'(exor(A, B, C), D, E, F) ?- 724 'CHRget_delayed_goals'(B, G), 725 'CHRexor_3__93'(G, [B, A], [], H), 726 coca(try_double(F, exor(A, B, C), H, neg(A, B), exor(I, J, K), neg(I, J), keep_second, true, K = 1, anonymous("46"))), 727 !, 728 'CHRkill'(D), 729 coca(fired_rule(anonymous("46"))), 730 C = 1. 731'CHRexor_3'(exor(A, B, C), D, E, F) ?- 732 'CHRget_delayed_goals'(B, G), 733 'CHRexor_3__94'(G, [B, A], [], H), 734 coca(try_double(F, exor(A, B, C), H, neg(B, A), exor(I, J, K), neg(J, I), keep_second, true, K = 1, anonymous("47"))), 735 !, 736 'CHRkill'(D), 737 coca(fired_rule(anonymous("47"))), 738 C = 1. 739'CHRexor_3'(exor(A, B, C), D, E, F) ?- 740 'CHRget_delayed_goals'(C, G), 741 'CHRexor_3__95'(G, [C, A], [], H), 742 coca(try_double(F, exor(A, B, C), H, neg(A, C), exor(I, J, K), neg(I, K), keep_second, true, J = 1, anonymous("48"))), 743 !, 744 'CHRkill'(D), 745 coca(fired_rule(anonymous("48"))), 746 B = 1. 747'CHRexor_3'(exor(A, B, C), D, E, F) ?- 748 'CHRget_delayed_goals'(C, G), 749 'CHRexor_3__96'(G, [C, A], [], H), 750 coca(try_double(F, exor(A, B, C), H, neg(C, A), exor(I, J, K), neg(K, I), keep_second, true, J = 1, anonymous("49"))), 751 !, 752 'CHRkill'(D), 753 coca(fired_rule(anonymous("49"))), 754 B = 1. 755'CHRexor_3'(exor(A, B, C), D, E, F) ?- 756 'CHRget_delayed_goals'(C, G), 757 'CHRexor_3__97'(G, [C, B], [], H), 758 coca(try_double(F, exor(A, B, C), H, neg(B, C), exor(I, J, K), neg(J, K), keep_second, true, I = 1, anonymous("50"))), 759 !, 760 'CHRkill'(D), 761 coca(fired_rule(anonymous("50"))), 762 A = 1. 763'CHRexor_3'(exor(A, B, C), D, E, F) ?- 764 'CHRget_delayed_goals'(C, G), 765 'CHRexor_3__98'(G, [C, B], [], H), 766 coca(try_double(F, exor(A, B, C), H, neg(C, B), exor(I, J, K), neg(K, J), keep_second, true, I = 1, anonymous("51"))), 767 !, 768 'CHRkill'(D), 769 coca(fired_rule(anonymous("51"))), 770 A = 1. 771'CHRexor_3'(exor(A, B, C), D, E, F) :- 772 'CHRexor_3__90'(exor(A, B, C), D, E, F). 773'CHRexor_3__91'(['CHRexor_3'(exor(A, B, C), D, E, F)|G], [B, A], [H], I) ?- 774 'CHRvar'(D), 775 'CHR='([C], [H]), 776 'CHR='(F, I). 777'CHRexor_3__91'([A|B], C, D, E) :- 778 'CHRexor_3__91'(B, C, D, E). 779:- set_flag('CHRexor_3__91' / 4, leash, notrace). 780'CHRexor_3__92'(['CHRexor_3'(exor(A, B, C), D, E, F)|G], [A, B], [H], I) ?- 781 'CHRvar'(D), 782 'CHR='([C], [H]), 783 'CHR='(F, I). 784'CHRexor_3__92'([A|B], C, D, E) :- 785 'CHRexor_3__92'(B, C, D, E). 786:- set_flag('CHRexor_3__92' / 4, leash, notrace). 787'CHRexor_3__93'(['CHRneg_2'(neg(A, B), C, D, E)|F], [B, A], [], G) ?- 788 'CHRvar'(C), 789 'CHR='([], []), 790 'CHR='(E, G). 791'CHRexor_3__93'([A|B], C, D, E) :- 792 'CHRexor_3__93'(B, C, D, E). 793:- set_flag('CHRexor_3__93' / 4, leash, notrace). 794'CHRexor_3__94'(['CHRneg_2'(neg(A, B), C, D, E)|F], [A, B], [], G) ?- 795 'CHRvar'(C), 796 'CHR='([], []), 797 'CHR='(E, G). 798'CHRexor_3__94'([A|B], C, D, E) :- 799 'CHRexor_3__94'(B, C, D, E). 800:- set_flag('CHRexor_3__94' / 4, leash, notrace). 801'CHRexor_3__95'(['CHRneg_2'(neg(A, B), C, D, E)|F], [B, A], [], G) ?- 802 'CHRvar'(C), 803 'CHR='([], []), 804 'CHR='(E, G). 805'CHRexor_3__95'([A|B], C, D, E) :- 806 'CHRexor_3__95'(B, C, D, E). 807:- set_flag('CHRexor_3__95' / 4, leash, notrace). 808'CHRexor_3__96'(['CHRneg_2'(neg(A, B), C, D, E)|F], [A, B], [], G) ?- 809 'CHRvar'(C), 810 'CHR='([], []), 811 'CHR='(E, G). 812'CHRexor_3__96'([A|B], C, D, E) :- 813 'CHRexor_3__96'(B, C, D, E). 814:- set_flag('CHRexor_3__96' / 4, leash, notrace). 815'CHRexor_3__97'(['CHRneg_2'(neg(A, B), C, D, E)|F], [B, A], [], G) ?- 816 'CHRvar'(C), 817 'CHR='([], []), 818 'CHR='(E, G). 819'CHRexor_3__97'([A|B], C, D, E) :- 820 'CHRexor_3__97'(B, C, D, E). 821:- set_flag('CHRexor_3__97' / 4, leash, notrace). 822'CHRexor_3__98'(['CHRneg_2'(neg(A, B), C, D, E)|F], [A, B], [], G) ?- 823 'CHRvar'(C), 824 'CHR='([], []), 825 'CHR='(E, G). 826'CHRexor_3__98'([A|B], C, D, E) :- 827 'CHRexor_3__98'(B, C, D, E). 828:- set_flag('CHRexor_3__98' / 4, leash, notrace). 829:- set_flag('CHRexor_3' / 4, leash, notrace). 830:- current_macro('CHRexor_3' / 4, _34041, _34042, _34043) -> true ; define_macro('CHRexor_3' / 4, tr_chr / 2, [write]). 831'CHRexor_3__90'(A, B, C, D) :- 832 'CHRexor_3__99'(A, B, C, D). 833:- set_flag('CHRexor_3__90' / 4, leash, notrace). 834'CHRexor_3__99'(exor(A, B, C), D, E, F) ?- 835 'CHRvar'(D), 836 !, 837 'CHRget_delayed_goals'(B, G), 838 'CHRexor_3__99__100'(G, D, exor(A, B, C), E, F). 839'CHRexor_3__99'(exor(A, B, C), D, E, F) :- 840 'CHRexor_3__99__101'(exor(A, B, C), D, E, F). 841:- set_flag('CHRexor_3__99' / 4, leash, notrace). 842'CHRexor_3__99__100'(['CHRexor_3'(exor(A, B, C), D, E, F)|G], H, exor(A, B, I), J, K) ?- 843 'CHRvar'(D), 844 coca(try_double(K, exor(A, B, I), F, exor(A, B, C), exor(L, M, N), exor(L, M, O), keep_first, true, N = O, anonymous("27"))), 845 !, 846 'CHRkill'(D), 847 coca(fired_rule(anonymous("27"))), 848 'CHRexor_3__99__100'(G, H, exor(A, B, I), J, K), 849 I = C. 850'CHRexor_3__99__100'([A|B], C, D, E, F) :- 851 'CHRexor_3__99__100'(B, C, D, E, F). 852'CHRexor_3__99__100'([], A, B, C, D) :- 853 'CHRexor_3__99__101'(B, A, C, D). 854:- set_flag('CHRexor_3__99__100' / 5, leash, notrace). 855'CHRexor_3__99__101'(exor(A, B, C), D, E, F) ?- 856 'CHRvar'(D), 857 !, 858 'CHRget_delayed_goals'(B, G), 859 'CHRexor_3__99__101__102'(G, D, exor(A, B, C), E, F). 860'CHRexor_3__99__101'(exor(A, B, C), D, E, F) :- 861 'CHRexor_3__99__101__103'(exor(A, B, C), D, E, F). 862:- set_flag('CHRexor_3__99__101' / 4, leash, notrace). 863'CHRexor_3__99__101__102'(['CHRexor_3'(exor(A, B, C), D, E, F)|G], H, exor(B, A, I), J, K) ?- 864 'CHRvar'(D), 865 coca(try_double(K, exor(B, A, I), F, exor(A, B, C), exor(L, M, N), exor(M, L, O), keep_first, true, N = O, anonymous("28"))), 866 !, 867 'CHRkill'(D), 868 coca(fired_rule(anonymous("28"))), 869 'CHRexor_3__99__101__102'(G, H, exor(B, A, I), J, K), 870 I = C. 871'CHRexor_3__99__101__102'([A|B], C, D, E, F) :- 872 'CHRexor_3__99__101__102'(B, C, D, E, F). 873'CHRexor_3__99__101__102'([], A, B, C, D) :- 874 'CHRexor_3__99__101__103'(B, A, C, D). 875:- set_flag('CHRexor_3__99__101__102' / 5, leash, notrace). 876'CHRexor_3__99__101__103'(exor(A, B, C), D, E, F) :- 877 ( 878 'CHRvar'(D) 879 -> 880 'CHRdelay'([D, exor(A, B, C)], 'CHRexor_3'(exor(A, B, C), D, E, F)) 881 ; 882 true 883 ). 884:- set_flag('CHRexor_3__99__101__103' / 4, leash, notrace). 885 886 887 888%%% Prolog clauses for neg / 2 889 890clause_neg(0, 1). 891clause_neg(1, 0). 892:- current_macro(clause_neg / 2, _35573, _35574, _35575) -> true ; define_macro(clause_neg / 2, tr_chr / 2, [write]). 893neg(A, B) :- 894 'CHRgen_num'(C), 895 coca(add_one_constraint(C, neg(A, B))), 896 'CHRneg_2'(neg(A, B), D, E, C). 897 898 899 900%%% Rules handling for neg / 2 901 902'CHRneg_2'(neg(A, B), C, D, E) :- 903 ( 904 'CHRnonvar'(C) 905 ; 906 'CHRalready_in'('CHRneg_2'(neg(A, B), C, D, E)), 907 coca(already_in) 908 ), 909 !. 910'CHRneg_2'(neg(0, A), B, C, D) ?- 911 coca(try_rule(D, neg(0, A), anonymous("29"), neg(0, E), replacement, true, E = 1)), 912 !, 913 'CHRkill'(B), 914 coca(fired_rule(anonymous("29"))), 915 A = 1. 916'CHRneg_2'(neg(A, 0), B, C, D) ?- 917 coca(try_rule(D, neg(A, 0), anonymous("30"), neg(E, 0), replacement, true, E = 1)), 918 !, 919 'CHRkill'(B), 920 coca(fired_rule(anonymous("30"))), 921 A = 1. 922'CHRneg_2'(neg(1, A), B, C, D) ?- 923 coca(try_rule(D, neg(1, A), anonymous("31"), neg(1, E), replacement, true, E = 0)), 924 !, 925 'CHRkill'(B), 926 coca(fired_rule(anonymous("31"))), 927 A = 0. 928'CHRneg_2'(neg(A, 1), B, C, D) ?- 929 coca(try_rule(D, neg(A, 1), anonymous("32"), neg(E, 1), replacement, true, E = 0)), 930 !, 931 'CHRkill'(B), 932 coca(fired_rule(anonymous("32"))), 933 A = 0. 934'CHRneg_2'(neg(A, A), B, C, D) ?- 935 coca(try_rule(D, neg(A, A), anonymous("33"), neg(E, E), replacement, true, fail)), 936 !, 937 'CHRkill'(B), 938 coca(fired_rule(anonymous("33"))), 939 fail. 940'CHRneg_2'(neg(A, B), C, D, E) ?- 941 'CHRget_delayed_goals'(B, F), 942 'CHRneg_2__105'(F, [B, A], [G], H), 943 coca(try_double(E, neg(A, B), H, and(A, G, B), neg(I, J), and(I, K, J), replacement, true, (I = 1, K = 0, J = 0), anonymous("36"))), 944 !, 945 'CHRkill'(C), 946 coca(fired_rule(anonymous("36"))), 947 [A, [G, B]] = [1, [0, 0]]. 948'CHRneg_2'(neg(A, B), C, D, E) ?- 949 'CHRget_delayed_goals'(B, F), 950 'CHRneg_2__106'(F, [B, A], [G], H), 951 coca(try_double(E, neg(A, B), H, and(B, G, A), neg(I, J), and(J, K, I), replacement, true, (J = 1, K = 0, I = 0), anonymous("37"))), 952 !, 953 'CHRkill'(C), 954 coca(fired_rule(anonymous("37"))), 955 [B, [G, A]] = [1, [0, 0]]. 956'CHRneg_2'(neg(A, B), C, D, E) ?- 957 'CHRget_delayed_goals'(B, F), 958 'CHRneg_2__107'(F, [B, A], [G], H), 959 coca(try_double(E, neg(A, B), H, and(G, A, B), neg(I, J), and(K, I, J), replacement, true, (K = 0, I = 1, J = 0), anonymous("38"))), 960 !, 961 'CHRkill'(C), 962 coca(fired_rule(anonymous("38"))), 963 [G, [A, B]] = [0, [1, 0]]. 964'CHRneg_2'(neg(A, B), C, D, E) ?- 965 'CHRget_delayed_goals'(B, F), 966 'CHRneg_2__108'(F, [B, A], [G], H), 967 coca(try_double(E, neg(A, B), H, and(G, B, A), neg(I, J), and(K, J, I), replacement, true, (K = 0, J = 1, I = 0), anonymous("39"))), 968 !, 969 'CHRkill'(C), 970 coca(fired_rule(anonymous("39"))), 971 [G, [B, A]] = [0, [1, 0]]. 972'CHRneg_2'(neg(A, B), C, D, E) ?- 973 'CHRget_delayed_goals'(B, F), 974 'CHRneg_2__109'(F, [B, A], [G], H), 975 coca(try_double(E, neg(A, B), H, or(A, G, B), neg(I, J), or(I, K, J), replacement, true, (I = 0, K = 1, J = 1), anonymous("42"))), 976 !, 977 'CHRkill'(C), 978 coca(fired_rule(anonymous("42"))), 979 [A, [G, B]] = [0, [1, 1]]. 980'CHRneg_2'(neg(A, B), C, D, E) ?- 981 'CHRget_delayed_goals'(B, F), 982 'CHRneg_2__110'(F, [B, A], [G], H), 983 coca(try_double(E, neg(A, B), H, or(B, G, A), neg(I, J), or(J, K, I), replacement, true, (J = 0, K = 1, I = 1), anonymous("43"))), 984 !, 985 'CHRkill'(C), 986 coca(fired_rule(anonymous("43"))), 987 [B, [G, A]] = [0, [1, 1]]. 988'CHRneg_2'(neg(A, B), C, D, E) ?- 989 'CHRget_delayed_goals'(B, F), 990 'CHRneg_2__111'(F, [B, A], [G], H), 991 coca(try_double(E, neg(A, B), H, or(G, A, B), neg(I, J), or(K, I, J), replacement, true, (K = 1, I = 0, J = 1), anonymous("44"))), 992 !, 993 'CHRkill'(C), 994 coca(fired_rule(anonymous("44"))), 995 [G, [A, B]] = [1, [0, 1]]. 996'CHRneg_2'(neg(A, B), C, D, E) ?- 997 'CHRget_delayed_goals'(B, F), 998 'CHRneg_2__112'(F, [B, A], [G], H), 999 coca(try_double(E, neg(A, B), H, or(G, B, A), neg(I, J), or(K, J, I), replacement, true, (K = 1, J = 0, I = 1), anonymous("45"))), 1000 !, 1001 'CHRkill'(C), 1002 coca(fired_rule(anonymous("45"))), 1003 [G, [B, A]] = [1, [0, 1]]. 1004'CHRneg_2'(neg(A, B), C, D, E) ?- 1005 'CHRget_delayed_goals'(B, F), 1006 'CHRneg_2__113'(F, [B, A], [], G), 1007 coca(try_double(E, neg(A, B), G, imp(A, B), neg(H, I), imp(H, I), replacement, true, (H = 0, I = 1), anonymous("52"))), 1008 !, 1009 'CHRkill'(C), 1010 coca(fired_rule(anonymous("52"))), 1011 [A, B] = [0, 1]. 1012'CHRneg_2'(neg(A, B), C, D, E) ?- 1013 'CHRget_delayed_goals'(B, F), 1014 'CHRneg_2__114'(F, [B, A], [], G), 1015 coca(try_double(E, neg(A, B), G, imp(B, A), neg(H, I), imp(I, H), replacement, true, (I = 0, H = 1), anonymous("53"))), 1016 !, 1017 'CHRkill'(C), 1018 coca(fired_rule(anonymous("53"))), 1019 [B, A] = [0, 1]. 1020'CHRneg_2'(neg(A, B), C, D, E) ?- 1021 'CHRget_delayed_goals'(A, F), 1022 'CHRneg_2__115'(F, [A], [G], H), 1023 coca(try_double(E, neg(A, B), H, neg(G, A), neg(I, J), neg(K, I), keep_second, true, K = J, neg_neg)), 1024 !, 1025 'CHRkill'(C), 1026 coca(fired_rule(neg_neg)), 1027 G = B. 1028'CHRneg_2'(neg(A, B), C, D, E) ?- 1029 'CHRget_delayed_goals'(B, F), 1030 'CHRneg_2__116'(F, [B], [G], H), 1031 coca(try_double(E, neg(A, B), H, neg(G, B), neg(I, J), neg(K, J), keep_second, true, K = I, neg_neg)), 1032 !, 1033 'CHRkill'(C), 1034 coca(fired_rule(neg_neg)), 1035 G = A. 1036'CHRneg_2'(neg(A, B), C, D, E) ?- 1037 'CHRget_delayed_goals'(A, F), 1038 'CHRneg_2__117'(F, [A], [G], H), 1039 coca(try_double(E, neg(A, B), H, neg(A, G), neg(I, J), neg(I, K), keep_second, true, K = J, neg_neg)), 1040 !, 1041 'CHRkill'(C), 1042 coca(fired_rule(neg_neg)), 1043 G = B. 1044'CHRneg_2'(neg(A, B), C, D, E) :- 1045 'CHRneg_2__104'(neg(A, B), C, D, E). 1046'CHRneg_2__105'(['CHRand_3'(and(A, B, C), D, E, F)|G], [C, A], [H], I) ?- 1047 'CHRvar'(D), 1048 'CHRkill'(D), 1049 'CHR='([B], [H]), 1050 'CHR='(F, I). 1051'CHRneg_2__105'([A|B], C, D, E) :- 1052 'CHRneg_2__105'(B, C, D, E). 1053:- set_flag('CHRneg_2__105' / 4, leash, notrace). 1054'CHRneg_2__106'(['CHRand_3'(and(A, B, C), D, E, F)|G], [A, C], [H], I) ?- 1055 'CHRvar'(D), 1056 'CHRkill'(D), 1057 'CHR='([B], [H]), 1058 'CHR='(F, I). 1059'CHRneg_2__106'([A|B], C, D, E) :- 1060 'CHRneg_2__106'(B, C, D, E). 1061:- set_flag('CHRneg_2__106' / 4, leash, notrace). 1062'CHRneg_2__107'(['CHRand_3'(and(A, B, C), D, E, F)|G], [C, B], [H], I) ?- 1063 'CHRvar'(D), 1064 'CHRkill'(D), 1065 'CHR='([A], [H]), 1066 'CHR='(F, I). 1067'CHRneg_2__107'([A|B], C, D, E) :- 1068 'CHRneg_2__107'(B, C, D, E). 1069:- set_flag('CHRneg_2__107' / 4, leash, notrace). 1070'CHRneg_2__108'(['CHRand_3'(and(A, B, C), D, E, F)|G], [B, C], [H], I) ?- 1071 'CHRvar'(D), 1072 'CHRkill'(D), 1073 'CHR='([A], [H]), 1074 'CHR='(F, I). 1075'CHRneg_2__108'([A|B], C, D, E) :- 1076 'CHRneg_2__108'(B, C, D, E). 1077:- set_flag('CHRneg_2__108' / 4, leash, notrace). 1078'CHRneg_2__109'(['CHRor_3'(or(A, B, C), D, E, F)|G], [C, A], [H], I) ?- 1079 'CHRvar'(D), 1080 'CHRkill'(D), 1081 'CHR='([B], [H]), 1082 'CHR='(F, I). 1083'CHRneg_2__109'([A|B], C, D, E) :- 1084 'CHRneg_2__109'(B, C, D, E). 1085:- set_flag('CHRneg_2__109' / 4, leash, notrace). 1086'CHRneg_2__110'(['CHRor_3'(or(A, B, C), D, E, F)|G], [A, C], [H], I) ?- 1087 'CHRvar'(D), 1088 'CHRkill'(D), 1089 'CHR='([B], [H]), 1090 'CHR='(F, I). 1091'CHRneg_2__110'([A|B], C, D, E) :- 1092 'CHRneg_2__110'(B, C, D, E). 1093:- set_flag('CHRneg_2__110' / 4, leash, notrace). 1094'CHRneg_2__111'(['CHRor_3'(or(A, B, C), D, E, F)|G], [C, B], [H], I) ?- 1095 'CHRvar'(D), 1096 'CHRkill'(D), 1097 'CHR='([A], [H]), 1098 'CHR='(F, I). 1099'CHRneg_2__111'([A|B], C, D, E) :- 1100 'CHRneg_2__111'(B, C, D, E). 1101:- set_flag('CHRneg_2__111' / 4, leash, notrace). 1102'CHRneg_2__112'(['CHRor_3'(or(A, B, C), D, E, F)|G], [B, C], [H], I) ?- 1103 'CHRvar'(D), 1104 'CHRkill'(D), 1105 'CHR='([A], [H]), 1106 'CHR='(F, I). 1107'CHRneg_2__112'([A|B], C, D, E) :- 1108 'CHRneg_2__112'(B, C, D, E). 1109:- set_flag('CHRneg_2__112' / 4, leash, notrace). 1110'CHRneg_2__113'(['CHRimp_2'(imp(A, B), C, D, E)|F], [B, A], [], G) ?- 1111 'CHRvar'(C), 1112 'CHRkill'(C), 1113 'CHR='([], []), 1114 'CHR='(E, G). 1115'CHRneg_2__113'([A|B], C, D, E) :- 1116 'CHRneg_2__113'(B, C, D, E). 1117:- set_flag('CHRneg_2__113' / 4, leash, notrace). 1118'CHRneg_2__114'(['CHRimp_2'(imp(A, B), C, D, E)|F], [A, B], [], G) ?- 1119 'CHRvar'(C), 1120 'CHRkill'(C), 1121 'CHR='([], []), 1122 'CHR='(E, G). 1123'CHRneg_2__114'([A|B], C, D, E) :- 1124 'CHRneg_2__114'(B, C, D, E). 1125:- set_flag('CHRneg_2__114' / 4, leash, notrace). 1126'CHRneg_2__115'(['CHRneg_2'(neg(A, B), C, D, E)|F], [B], [G], H) ?- 1127 'CHRvar'(C), 1128 'CHR='([A], [G]), 1129 'CHR='(E, H). 1130'CHRneg_2__115'([A|B], C, D, E) :- 1131 'CHRneg_2__115'(B, C, D, E). 1132:- set_flag('CHRneg_2__115' / 4, leash, notrace). 1133'CHRneg_2__116'(['CHRneg_2'(neg(A, B), C, D, E)|F], [B], [G], H) ?- 1134 'CHRvar'(C), 1135 'CHR='([A], [G]), 1136 'CHR='(E, H). 1137'CHRneg_2__116'([A|B], C, D, E) :- 1138 'CHRneg_2__116'(B, C, D, E). 1139:- set_flag('CHRneg_2__116' / 4, leash, notrace). 1140'CHRneg_2__117'(['CHRneg_2'(neg(A, B), C, D, E)|F], [A], [G], H) ?- 1141 'CHRvar'(C), 1142 'CHR='([B], [G]), 1143 'CHR='(E, H). 1144'CHRneg_2__117'([A|B], C, D, E) :- 1145 'CHRneg_2__117'(B, C, D, E). 1146:- set_flag('CHRneg_2__117' / 4, leash, notrace). 1147:- set_flag('CHRneg_2' / 4, leash, notrace). 1148:- current_macro('CHRneg_2' / 4, _43373, _43374, _43375) -> true ; define_macro('CHRneg_2' / 4, tr_chr / 2, [write]). 1149'CHRneg_2__104'(A, B, C, D) :- 1150 'CHRneg_2__118'(A, B, C, D). 1151:- set_flag('CHRneg_2__104' / 4, leash, notrace). 1152'CHRneg_2__118'(neg(A, B), C, D, E) ?- 1153 'CHRvar'(C), 1154 !, 1155 'CHRget_delayed_goals'(B, F), 1156 'CHRneg_2__118__119'(F, C, neg(A, B), D, E). 1157'CHRneg_2__118'(neg(A, B), C, D, E) :- 1158 'CHRneg_2__118__120'(neg(A, B), C, D, E). 1159:- set_flag('CHRneg_2__118' / 4, leash, notrace). 1160'CHRneg_2__118__119'(['CHRneg_2'(neg(A, B), C, D, E)|F], G, neg(H, A), I, J) ?- 1161 'CHRvar'(C), 1162 coca(try_double(J, neg(H, A), E, neg(A, B), neg(K, L), neg(L, M), keep_first, true, K = M, neg_neg)), 1163 !, 1164 'CHRkill'(C), 1165 coca(fired_rule(neg_neg)), 1166 'CHRneg_2__118__119'(F, G, neg(H, A), I, J), 1167 H = B. 1168'CHRneg_2__118__119'([A|B], C, D, E, F) :- 1169 'CHRneg_2__118__119'(B, C, D, E, F). 1170'CHRneg_2__118__119'([], A, B, C, D) :- 1171 'CHRneg_2__118__120'(B, A, C, D). 1172:- set_flag('CHRneg_2__118__119' / 5, leash, notrace). 1173'CHRneg_2__118__120'(neg(A, B), C, D, E) ?- 1174 'CHRvar'(C), 1175 !, 1176 'CHRget_delayed_goals'(B, F), 1177 'CHRneg_2__118__120__121'(F, C, neg(A, B), D, E). 1178'CHRneg_2__118__120'(neg(A, B), C, D, E) :- 1179 'CHRneg_2__118__120__122'(neg(A, B), C, D, E). 1180:- set_flag('CHRneg_2__118__120' / 4, leash, notrace). 1181'CHRneg_2__118__120__121'(['CHRneg_2'(neg(A, B), C, D, E)|F], G, neg(H, B), I, J) ?- 1182 'CHRvar'(C), 1183 coca(try_double(J, neg(H, B), E, neg(A, B), neg(K, L), neg(M, L), keep_first, true, K = M, neg_neg)), 1184 !, 1185 'CHRkill'(C), 1186 coca(fired_rule(neg_neg)), 1187 'CHRneg_2__118__120__121'(F, G, neg(H, B), I, J), 1188 H = A. 1189'CHRneg_2__118__120__121'([A|B], C, D, E, F) :- 1190 'CHRneg_2__118__120__121'(B, C, D, E, F). 1191'CHRneg_2__118__120__121'([], A, B, C, D) :- 1192 'CHRneg_2__118__120__122'(B, A, C, D). 1193:- set_flag('CHRneg_2__118__120__121' / 5, leash, notrace). 1194'CHRneg_2__118__120__122'(neg(A, B), C, D, E) ?- 1195 'CHRvar'(C), 1196 !, 1197 'CHRget_delayed_goals'(A, F), 1198 'CHRneg_2__118__120__122__123'(F, C, neg(A, B), D, E). 1199'CHRneg_2__118__120__122'(neg(A, B), C, D, E) :- 1200 'CHRneg_2__118__120__122__124'(neg(A, B), C, D, E). 1201:- set_flag('CHRneg_2__118__120__122' / 4, leash, notrace). 1202'CHRneg_2__118__120__122__123'(['CHRneg_2'(neg(A, B), C, D, E)|F], G, neg(A, H), I, J) ?- 1203 'CHRvar'(C), 1204 coca(try_double(J, neg(A, H), E, neg(A, B), neg(K, L), neg(K, M), keep_first, true, L = M, neg_neg)), 1205 !, 1206 'CHRkill'(C), 1207 coca(fired_rule(neg_neg)), 1208 'CHRneg_2__118__120__122__123'(F, G, neg(A, H), I, J), 1209 H = B. 1210'CHRneg_2__118__120__122__123'([A|B], C, D, E, F) :- 1211 'CHRneg_2__118__120__122__123'(B, C, D, E, F). 1212'CHRneg_2__118__120__122__123'([], A, B, C, D) :- 1213 'CHRneg_2__118__120__122__124'(B, A, C, D). 1214:- set_flag('CHRneg_2__118__120__122__123' / 5, leash, notrace). 1215'CHRneg_2__118__120__122__124'(neg(A, B), C, D, E) ?- 1216 'CHRvar'(C), 1217 !, 1218 'CHRget_delayed_goals'(B, F), 1219 'CHRneg_2__118__120__122__124__125'(F, C, neg(A, B), D, E). 1220'CHRneg_2__118__120__122__124'(neg(A, B), C, D, E) :- 1221 'CHRneg_2__118__120__122__124__126'(neg(A, B), C, D, E). 1222:- set_flag('CHRneg_2__118__120__122__124' / 4, leash, notrace). 1223'CHRneg_2__118__120__122__124__125'(['CHRand_3'(and(A, B, C), D, E, F)|G], H, neg(A, B), I, J) ?- 1224 'CHRvar'(D), 1225 coca(try_double(J, neg(A, B), F, and(A, B, C), neg(K, L), and(K, L, M), keep_first, true, M = 0, anonymous("34"))), 1226 !, 1227 'CHRkill'(D), 1228 coca(fired_rule(anonymous("34"))), 1229 'CHRneg_2__118__120__122__124__125'(G, H, neg(A, B), I, J), 1230 C = 0. 1231'CHRneg_2__118__120__122__124__125'([A|B], C, D, E, F) :- 1232 'CHRneg_2__118__120__122__124__125'(B, C, D, E, F). 1233'CHRneg_2__118__120__122__124__125'([], A, B, C, D) :- 1234 'CHRneg_2__118__120__122__124__126'(B, A, C, D). 1235:- set_flag('CHRneg_2__118__120__122__124__125' / 5, leash, notrace). 1236'CHRneg_2__118__120__122__124__126'(neg(A, B), C, D, E) ?- 1237 'CHRvar'(C), 1238 !, 1239 'CHRget_delayed_goals'(B, F), 1240 'CHRneg_2__118__120__122__124__126__127'(F, C, neg(A, B), D, E). 1241'CHRneg_2__118__120__122__124__126'(neg(A, B), C, D, E) :- 1242 'CHRneg_2__118__120__122__124__126__128'(neg(A, B), C, D, E). 1243:- set_flag('CHRneg_2__118__120__122__124__126' / 4, leash, notrace). 1244'CHRneg_2__118__120__122__124__126__127'(['CHRand_3'(and(A, B, C), D, E, F)|G], H, neg(B, A), I, J) ?- 1245 'CHRvar'(D), 1246 coca(try_double(J, neg(B, A), F, and(A, B, C), neg(K, L), and(L, K, M), keep_first, true, M = 0, anonymous("35"))), 1247 !, 1248 'CHRkill'(D), 1249 coca(fired_rule(anonymous("35"))), 1250 'CHRneg_2__118__120__122__124__126__127'(G, H, neg(B, A), I, J), 1251 C = 0. 1252'CHRneg_2__118__120__122__124__126__127'([A|B], C, D, E, F) :- 1253 'CHRneg_2__118__120__122__124__126__127'(B, C, D, E, F). 1254'CHRneg_2__118__120__122__124__126__127'([], A, B, C, D) :- 1255 'CHRneg_2__118__120__122__124__126__128'(B, A, C, D). 1256:- set_flag('CHRneg_2__118__120__122__124__126__127' / 5, leash, notrace). 1257'CHRneg_2__118__120__122__124__126__128'(neg(A, B), C, D, E) ?- 1258 'CHRvar'(C), 1259 !, 1260 'CHRget_delayed_goals'(B, F), 1261 'CHRneg_2__118__120__122__124__126__128__129'(F, C, neg(A, B), D, E). 1262'CHRneg_2__118__120__122__124__126__128'(neg(A, B), C, D, E) :- 1263 'CHRneg_2__118__120__122__124__126__128__130'(neg(A, B), C, D, E). 1264:- set_flag('CHRneg_2__118__120__122__124__126__128' / 4, leash, notrace). 1265'CHRneg_2__118__120__122__124__126__128__129'(['CHRor_3'(or(A, B, C), D, E, F)|G], H, neg(A, B), I, J) ?- 1266 'CHRvar'(D), 1267 coca(try_double(J, neg(A, B), F, or(A, B, C), neg(K, L), or(K, L, M), keep_first, true, M = 1, anonymous("40"))), 1268 !, 1269 'CHRkill'(D), 1270 coca(fired_rule(anonymous("40"))), 1271 'CHRneg_2__118__120__122__124__126__128__129'(G, H, neg(A, B), I, J), 1272 C = 1. 1273'CHRneg_2__118__120__122__124__126__128__129'([A|B], C, D, E, F) :- 1274 'CHRneg_2__118__120__122__124__126__128__129'(B, C, D, E, F). 1275'CHRneg_2__118__120__122__124__126__128__129'([], A, B, C, D) :- 1276 'CHRneg_2__118__120__122__124__126__128__130'(B, A, C, D). 1277:- set_flag('CHRneg_2__118__120__122__124__126__128__129' / 5, leash, notrace). 1278'CHRneg_2__118__120__122__124__126__128__130'(neg(A, B), C, D, E) ?- 1279 'CHRvar'(C), 1280 !, 1281 'CHRget_delayed_goals'(B, F), 1282 'CHRneg_2__118__120__122__124__126__128__130__131'(F, C, neg(A, B), D, E). 1283'CHRneg_2__118__120__122__124__126__128__130'(neg(A, B), C, D, E) :- 1284 'CHRneg_2__118__120__122__124__126__128__130__132'(neg(A, B), C, D, E). 1285:- set_flag('CHRneg_2__118__120__122__124__126__128__130' / 4, leash, notrace). 1286'CHRneg_2__118__120__122__124__126__128__130__131'(['CHRor_3'(or(A, B, C), D, E, F)|G], H, neg(B, A), I, J) ?- 1287 'CHRvar'(D), 1288 coca(try_double(J, neg(B, A), F, or(A, B, C), neg(K, L), or(L, K, M), keep_first, true, M = 1, anonymous("41"))), 1289 !, 1290 'CHRkill'(D), 1291 coca(fired_rule(anonymous("41"))), 1292 'CHRneg_2__118__120__122__124__126__128__130__131'(G, H, neg(B, A), I, J), 1293 C = 1. 1294'CHRneg_2__118__120__122__124__126__128__130__131'([A|B], C, D, E, F) :- 1295 'CHRneg_2__118__120__122__124__126__128__130__131'(B, C, D, E, F). 1296'CHRneg_2__118__120__122__124__126__128__130__131'([], A, B, C, D) :- 1297 'CHRneg_2__118__120__122__124__126__128__130__132'(B, A, C, D). 1298:- set_flag('CHRneg_2__118__120__122__124__126__128__130__131' / 5, leash, notrace). 1299'CHRneg_2__118__120__122__124__126__128__130__132'(neg(A, B), C, D, E) ?- 1300 'CHRvar'(C), 1301 !, 1302 'CHRget_delayed_goals'(B, F), 1303 'CHRneg_2__118__120__122__124__126__128__130__132__133'(F, C, neg(A, B), D, E). 1304'CHRneg_2__118__120__122__124__126__128__130__132'(neg(A, B), C, D, E) :- 1305 'CHRneg_2__118__120__122__124__126__128__130__132__134'(neg(A, B), C, D, E). 1306:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132' / 4, leash, notrace). 1307'CHRneg_2__118__120__122__124__126__128__130__132__133'(['CHRexor_3'(exor(A, B, C), D, E, F)|G], H, neg(A, B), I, J) ?- 1308 'CHRvar'(D), 1309 coca(try_double(J, neg(A, B), F, exor(A, B, C), neg(K, L), exor(K, L, M), keep_first, true, M = 1, anonymous("46"))), 1310 !, 1311 'CHRkill'(D), 1312 coca(fired_rule(anonymous("46"))), 1313 'CHRneg_2__118__120__122__124__126__128__130__132__133'(G, H, neg(A, B), I, J), 1314 C = 1. 1315'CHRneg_2__118__120__122__124__126__128__130__132__133'([A|B], C, D, E, F) :- 1316 'CHRneg_2__118__120__122__124__126__128__130__132__133'(B, C, D, E, F). 1317'CHRneg_2__118__120__122__124__126__128__130__132__133'([], A, B, C, D) :- 1318 'CHRneg_2__118__120__122__124__126__128__130__132__134'(B, A, C, D). 1319:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132__133' / 5, leash, notrace). 1320'CHRneg_2__118__120__122__124__126__128__130__132__134'(neg(A, B), C, D, E) ?- 1321 'CHRvar'(C), 1322 !, 1323 'CHRget_delayed_goals'(B, F), 1324 'CHRneg_2__118__120__122__124__126__128__130__132__134__135'(F, C, neg(A, B), D, E). 1325'CHRneg_2__118__120__122__124__126__128__130__132__134'(neg(A, B), C, D, E) :- 1326 'CHRneg_2__118__120__122__124__126__128__130__132__134__136'(neg(A, B), C, D, E). 1327:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132__134' / 4, leash, notrace). 1328'CHRneg_2__118__120__122__124__126__128__130__132__134__135'(['CHRexor_3'(exor(A, B, C), D, E, F)|G], H, neg(B, A), I, J) ?- 1329 'CHRvar'(D), 1330 coca(try_double(J, neg(B, A), F, exor(A, B, C), neg(K, L), exor(L, K, M), keep_first, true, M = 1, anonymous("47"))), 1331 !, 1332 'CHRkill'(D), 1333 coca(fired_rule(anonymous("47"))), 1334 'CHRneg_2__118__120__122__124__126__128__130__132__134__135'(G, H, neg(B, A), I, J), 1335 C = 1. 1336'CHRneg_2__118__120__122__124__126__128__130__132__134__135'([A|B], C, D, E, F) :- 1337 'CHRneg_2__118__120__122__124__126__128__130__132__134__135'(B, C, D, E, F). 1338'CHRneg_2__118__120__122__124__126__128__130__132__134__135'([], A, B, C, D) :- 1339 'CHRneg_2__118__120__122__124__126__128__130__132__134__136'(B, A, C, D). 1340:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132__134__135' / 5, leash, notrace). 1341'CHRneg_2__118__120__122__124__126__128__130__132__134__136'(neg(A, B), C, D, E) ?- 1342 'CHRvar'(C), 1343 !, 1344 'CHRget_delayed_goals'(B, F), 1345 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__137'(F, C, neg(A, B), D, E). 1346'CHRneg_2__118__120__122__124__126__128__130__132__134__136'(neg(A, B), C, D, E) :- 1347 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138'(neg(A, B), C, D, E). 1348:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132__134__136' / 4, leash, notrace). 1349'CHRneg_2__118__120__122__124__126__128__130__132__134__136__137'(['CHRexor_3'(exor(A, B, C), D, E, F)|G], H, neg(A, C), I, J) ?- 1350 'CHRvar'(D), 1351 coca(try_double(J, neg(A, C), F, exor(A, B, C), neg(K, L), exor(K, M, L), keep_first, true, M = 1, anonymous("48"))), 1352 !, 1353 'CHRkill'(D), 1354 coca(fired_rule(anonymous("48"))), 1355 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__137'(G, H, neg(A, C), I, J), 1356 B = 1. 1357'CHRneg_2__118__120__122__124__126__128__130__132__134__136__137'([A|B], C, D, E, F) :- 1358 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__137'(B, C, D, E, F). 1359'CHRneg_2__118__120__122__124__126__128__130__132__134__136__137'([], A, B, C, D) :- 1360 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138'(B, A, C, D). 1361:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132__134__136__137' / 5, leash, notrace). 1362'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138'(neg(A, B), C, D, E) ?- 1363 'CHRvar'(C), 1364 !, 1365 'CHRget_delayed_goals'(B, F), 1366 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__139'(F, C, neg(A, B), D, E). 1367'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138'(neg(A, B), C, D, E) :- 1368 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140'(neg(A, B), C, D, E). 1369:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132__134__136__138' / 4, leash, notrace). 1370'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__139'(['CHRexor_3'(exor(A, B, C), D, E, F)|G], H, neg(C, A), I, J) ?- 1371 'CHRvar'(D), 1372 coca(try_double(J, neg(C, A), F, exor(A, B, C), neg(K, L), exor(L, M, K), keep_first, true, M = 1, anonymous("49"))), 1373 !, 1374 'CHRkill'(D), 1375 coca(fired_rule(anonymous("49"))), 1376 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__139'(G, H, neg(C, A), I, J), 1377 B = 1. 1378'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__139'([A|B], C, D, E, F) :- 1379 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__139'(B, C, D, E, F). 1380'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__139'([], A, B, C, D) :- 1381 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140'(B, A, C, D). 1382:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__139' / 5, leash, notrace). 1383'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140'(neg(A, B), C, D, E) ?- 1384 'CHRvar'(C), 1385 !, 1386 'CHRget_delayed_goals'(B, F), 1387 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__141'(F, C, neg(A, B), D, E). 1388'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140'(neg(A, B), C, D, E) :- 1389 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142'(neg(A, B), C, D, E). 1390:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140' / 4, leash, notrace). 1391'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__141'(['CHRexor_3'(exor(A, B, C), D, E, F)|G], H, neg(B, C), I, J) ?- 1392 'CHRvar'(D), 1393 coca(try_double(J, neg(B, C), F, exor(A, B, C), neg(K, L), exor(M, K, L), keep_first, true, M = 1, anonymous("50"))), 1394 !, 1395 'CHRkill'(D), 1396 coca(fired_rule(anonymous("50"))), 1397 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__141'(G, H, neg(B, C), I, J), 1398 A = 1. 1399'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__141'([A|B], C, D, E, F) :- 1400 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__141'(B, C, D, E, F). 1401'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__141'([], A, B, C, D) :- 1402 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142'(B, A, C, D). 1403:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__141' / 5, leash, notrace). 1404'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142'(neg(A, B), C, D, E) ?- 1405 'CHRvar'(C), 1406 !, 1407 'CHRget_delayed_goals'(B, F), 1408 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142__143'(F, C, neg(A, B), D, E). 1409'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142'(neg(A, B), C, D, E) :- 1410 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142__144'(neg(A, B), C, D, E). 1411:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142' / 4, leash, notrace). 1412'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142__143'(['CHRexor_3'(exor(A, B, C), D, E, F)|G], H, neg(C, B), I, J) ?- 1413 'CHRvar'(D), 1414 coca(try_double(J, neg(C, B), F, exor(A, B, C), neg(K, L), exor(M, L, K), keep_first, true, M = 1, anonymous("51"))), 1415 !, 1416 'CHRkill'(D), 1417 coca(fired_rule(anonymous("51"))), 1418 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142__143'(G, H, neg(C, B), I, J), 1419 A = 1. 1420'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142__143'([A|B], C, D, E, F) :- 1421 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142__143'(B, C, D, E, F). 1422'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142__143'([], A, B, C, D) :- 1423 'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142__144'(B, A, C, D). 1424:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142__143' / 5, leash, notrace). 1425'CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142__144'(neg(A, B), C, D, E) :- 1426 ( 1427 'CHRvar'(C) 1428 -> 1429 'CHRdelay'([C, neg(A, B)], 'CHRneg_2'(neg(A, B), C, D, E)) 1430 ; 1431 true 1432 ). 1433:- set_flag('CHRneg_2__118__120__122__124__126__128__130__132__134__136__138__140__142__144' / 4, leash, notrace). 1434 1435 1436 1437%%% Prolog clauses for imp / 2 1438 1439clause_imp(0, A). 1440clause_imp(1, 1). 1441:- current_macro(clause_imp / 2, _51526, _51527, _51528) -> true ; define_macro(clause_imp / 2, tr_chr / 2, [write]). 1442imp(A, B) :- 1443 'CHRgen_num'(C), 1444 coca(add_one_constraint(C, imp(A, B))), 1445 'CHRimp_2'(imp(A, B), D, E, C). 1446 1447 1448 1449%%% Rules handling for imp / 2 1450 1451'CHRimp_2'(imp(A, B), C, D, E) :- 1452 ( 1453 'CHRnonvar'(C) 1454 ; 1455 'CHRalready_in'('CHRimp_2'(imp(A, B), C, D, E)), 1456 coca(already_in) 1457 ), 1458 !. 1459'CHRimp_2'(imp(0, A), B, C, D) ?- 1460 coca(try_rule(D, imp(0, A), anonymous("54"), imp(0, E), replacement, true, true)), 1461 !, 1462 'CHRkill'(B), 1463 coca(fired_rule(anonymous("54"))). 1464'CHRimp_2'(imp(A, 0), B, C, D) ?- 1465 coca(try_rule(D, imp(A, 0), anonymous("55"), imp(E, 0), replacement, true, E = 0)), 1466 !, 1467 'CHRkill'(B), 1468 coca(fired_rule(anonymous("55"))), 1469 A = 0. 1470'CHRimp_2'(imp(1, A), B, C, D) ?- 1471 coca(try_rule(D, imp(1, A), anonymous("56"), imp(1, E), replacement, true, E = 1)), 1472 !, 1473 'CHRkill'(B), 1474 coca(fired_rule(anonymous("56"))), 1475 A = 1. 1476'CHRimp_2'(imp(A, 1), B, C, D) ?- 1477 coca(try_rule(D, imp(A, 1), anonymous("57"), imp(E, 1), replacement, true, true)), 1478 !, 1479 'CHRkill'(B), 1480 coca(fired_rule(anonymous("57"))). 1481'CHRimp_2'(imp(A, A), B, C, D) ?- 1482 coca(try_rule(D, imp(A, A), anonymous("58"), imp(E, E), replacement, true, true)), 1483 !, 1484 'CHRkill'(B), 1485 coca(fired_rule(anonymous("58"))). 1486'CHRimp_2'(imp(A, B), C, D, E) ?- 1487 'CHRget_delayed_goals'(B, F), 1488 'CHRimp_2__146'(F, [B, A], [], G), 1489 coca(try_double(E, imp(A, B), G, neg(A, B), imp(H, I), neg(H, I), replacement, true, (H = 0, I = 1), anonymous("52"))), 1490 !, 1491 'CHRkill'(C), 1492 coca(fired_rule(anonymous("52"))), 1493 [A, B] = [0, 1]. 1494'CHRimp_2'(imp(A, B), C, D, E) ?- 1495 'CHRget_delayed_goals'(B, F), 1496 'CHRimp_2__147'(F, [B, A], [], G), 1497 coca(try_double(E, imp(A, B), G, neg(B, A), imp(H, I), neg(I, H), replacement, true, (H = 0, I = 1), anonymous("53"))), 1498 !, 1499 'CHRkill'(C), 1500 coca(fired_rule(anonymous("53"))), 1501 [A, B] = [0, 1]. 1502'CHRimp_2'(imp(A, B), C, D, E) ?- 1503 'CHRget_delayed_goals'(B, F), 1504 'CHRimp_2__148'(F, [B, A], [], G), 1505 coca(try_double(E, imp(A, B), G, imp(B, A), imp(H, I), imp(I, H), replacement, true, H = I, anonymous("59"))), 1506 !, 1507 'CHRkill'(C), 1508 coca(fired_rule(anonymous("59"))), 1509 A = B. 1510'CHRimp_2'(imp(A, B), C, D, E) ?- 1511 'CHRget_delayed_goals'(B, F), 1512 'CHRimp_2__149'(F, [B, A], [], G), 1513 coca(try_double(E, imp(A, B), G, imp(B, A), imp(H, I), imp(I, H), replacement, true, I = H, anonymous("59"))), 1514 !, 1515 'CHRkill'(C), 1516 coca(fired_rule(anonymous("59"))), 1517 B = A. 1518'CHRimp_2'(imp(A, B), C, D, E) :- 1519 'CHRimp_2__145'(imp(A, B), C, D, E). 1520'CHRimp_2__146'(['CHRneg_2'(neg(A, B), C, D, E)|F], [B, A], [], G) ?- 1521 'CHRvar'(C), 1522 'CHRkill'(C), 1523 'CHR='([], []), 1524 'CHR='(E, G). 1525'CHRimp_2__146'([A|B], C, D, E) :- 1526 'CHRimp_2__146'(B, C, D, E). 1527:- set_flag('CHRimp_2__146' / 4, leash, notrace). 1528'CHRimp_2__147'(['CHRneg_2'(neg(A, B), C, D, E)|F], [A, B], [], G) ?- 1529 'CHRvar'(C), 1530 'CHRkill'(C), 1531 'CHR='([], []), 1532 'CHR='(E, G). 1533'CHRimp_2__147'([A|B], C, D, E) :- 1534 'CHRimp_2__147'(B, C, D, E). 1535:- set_flag('CHRimp_2__147' / 4, leash, notrace). 1536'CHRimp_2__148'(['CHRimp_2'(imp(A, B), C, D, E)|F], [A, B], [], G) ?- 1537 'CHRvar'(C), 1538 'CHRkill'(C), 1539 'CHR='([], []), 1540 'CHR='(E, G). 1541'CHRimp_2__148'([A|B], C, D, E) :- 1542 'CHRimp_2__148'(B, C, D, E). 1543:- set_flag('CHRimp_2__148' / 4, leash, notrace). 1544'CHRimp_2__149'(['CHRimp_2'(imp(A, B), C, D, E)|F], [A, B], [], G) ?- 1545 'CHRvar'(C), 1546 'CHRkill'(C), 1547 'CHR='([], []), 1548 'CHR='(E, G). 1549'CHRimp_2__149'([A|B], C, D, E) :- 1550 'CHRimp_2__149'(B, C, D, E). 1551:- set_flag('CHRimp_2__149' / 4, leash, notrace). 1552:- set_flag('CHRimp_2' / 4, leash, notrace). 1553:- current_macro('CHRimp_2' / 4, _54488, _54489, _54490) -> true ; define_macro('CHRimp_2' / 4, tr_chr / 2, [write]). 1554'CHRimp_2__145'(A, B, C, D) :- 1555 'CHRimp_2__150'(A, B, C, D). 1556:- set_flag('CHRimp_2__145' / 4, leash, notrace). 1557'CHRimp_2__150'(imp(A, B), C, D, E) :- 1558 ( 1559 'CHRvar'(C) 1560 -> 1561 'CHRdelay'([C, imp(A, B)], 'CHRimp_2'(imp(A, B), C, D, E)) 1562 ; 1563 true 1564 ). 1565:- set_flag('CHRimp_2__150' / 4, leash, notrace). 1566 1567 1568 1569%%% Prolog clauses for card / 4 1570 1571clause_card(A, B, [], 0) :- 1572 A =< 0, 1573 0 =< B. 1574clause_card(A, B, [0|C], D) :- 1575 E is D - 1, 1576 card(A, B, C). 1577clause_card(A, B, [1|C], D) :- 1578 E is A - 1, 1579 F is B - 1, 1580 G is D - 1, 1581 card(E, F, C). 1582:- current_macro(clause_card / 4, _54950, _54951, _54952) -> true ; define_macro(clause_card / 4, tr_chr / 2, [write]). 1583card(A, B, C, D) :- 1584 'CHRgen_num'(E), 1585 coca(add_one_constraint(E, card(A, B, C, D))), 1586 'CHRcard_4'(card(A, B, C, D), F, G, E). 1587 1588 1589 1590%%% Rules handling for card / 4 1591 1592'CHRcard_4'(card(A, B, C, D), E, F, G) :- 1593 ( 1594 'CHRnonvar'(E) 1595 ; 1596 'CHRalready_in'('CHRcard_4'(card(A, B, C, D), E, F, G)), 1597 coca(already_in) 1598 ), 1599 !. 1600'CHRcard_4'(card(A, B, C, D), E, F, G) ?- 1601 coca(try_rule(G, card(A, B, C, D), triv_sat, card(H, I, J, K), replacement, (H =< 0, K =< I), true)), 1602 no_delayed_goals((A =< 0, D =< B)), 1603 !, 1604 'CHRkill'(E), 1605 coca(fired_rule(triv_sat)). 1606'CHRcard_4'(card(A, B, C, A), D, E, F) ?- 1607 coca(try_rule(F, card(A, B, C, A), pos_sat, card(G, H, I, G), replacement, true, set_to_ones(I))), 1608 !, 1609 'CHRkill'(D), 1610 coca(fired_rule(pos_sat)), 1611 set_to_ones(C). 1612'CHRcard_4'(card(A, 0, B, C), D, E, F) ?- 1613 coca(try_rule(F, card(A, 0, B, C), neg_sat, card(G, 0, H, I), replacement, true, set_to_zeros(H))), 1614 !, 1615 'CHRkill'(D), 1616 coca(fired_rule(neg_sat)), 1617 set_to_zeros(B). 1618'CHRcard_4'(card(A, B, C, D), E, F, G) ?- 1619 coca(try_rule(G, card(A, B, C, D), pos_red, card(H, I, J, K), replacement, (delete(L, J, M), L == 1), (N is H - 1, O is I - 1, P is K - 1, card(N, O, M, P)))), 1620 no_delayed_goals((delete(Q, C, R), Q == 1)), 1621 !, 1622 'CHRkill'(E), 1623 coca(fired_rule(pos_red)), 1624 S is A - 1, 1625 T is B - 1, 1626 U is D - 1, 1627 card(S, T, R, U). 1628'CHRcard_4'(card(A, B, C, D), E, F, G) ?- 1629 coca(try_rule(G, card(A, B, C, D), neg_red, card(H, I, J, K), replacement, (delete(L, J, M), L == 0), (N is K - 1, card(H, I, M, N)))), 1630 no_delayed_goals((delete(O, C, P), O == 0)), 1631 !, 1632 'CHRkill'(E), 1633 coca(fired_rule(neg_red)), 1634 Q is D - 1, 1635 card(A, B, P, Q). 1636'CHRcard_4'(card(0, 1, [A, B], 2), C, D, E) ?- 1637 coca(try_rule(E, card(0, 1, [A, B], 2), card2nand, card(0, 1, [F, G], 2), replacement, true, and(F, G, 0))), 1638 !, 1639 'CHRkill'(C), 1640 coca(fired_rule(card2nand)), 1641 and(A, B, 0). 1642'CHRcard_4'(card(1, 1, [A, B], 2), C, D, E) ?- 1643 coca(try_rule(E, card(1, 1, [A, B], 2), card2neg, card(1, 1, [F, G], 2), replacement, true, neg(F, G))), 1644 !, 1645 'CHRkill'(C), 1646 coca(fired_rule(card2neg)), 1647 neg(A, B). 1648'CHRcard_4'(card(1, 2, [A, B], 2), C, D, E) ?- 1649 coca(try_rule(E, card(1, 2, [A, B], 2), card2or, card(1, 2, [F, G], 2), replacement, true, or(F, G, 1))), 1650 !, 1651 'CHRkill'(C), 1652 coca(fired_rule(card2or)), 1653 or(A, B, 1). 1654'CHRcard_4'(card(A, B, C, D), E, F, G) :- 1655 'CHRcard_4__151'(card(A, B, C, D), E, F, G). 1656:- set_flag('CHRcard_4' / 4, leash, notrace). 1657:- current_macro('CHRcard_4' / 4, _56673, _56674, _56675) -> true ; define_macro('CHRcard_4' / 4, tr_chr / 2, [write]). 1658'CHRcard_4__151'(A, B, C, D) :- 1659 'CHRcard_4__152'(A, B, C, D). 1660:- set_flag('CHRcard_4__151' / 4, leash, notrace). 1661'CHRcard_4__152'(card(A, B, C, D), E, F, G) :- 1662 ( 1663 'CHRvar'(E) 1664 -> 1665 'CHRdelay'([E, card(A, B, C, D)], 'CHRcard_4'(card(A, B, C, D), E, F, G)) 1666 ; 1667 true 1668 ). 1669:- set_flag('CHRcard_4__152' / 4, leash, notrace). 1670 1671:- getval(variable_names_flag, Val), set_flag(variable_names, Val). 1672