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