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).
8:- setval(domain, term).
9:- op(700, xfx, ::).
10:- op(600, xfx, ..).
11:- op(600, xfx, :).
12:- op(700, xfx, lt).
13:- op(700, xfx, le).
14:- op(700, xfx, gt).
15:- op(700, xfx, ge).
16:- op(700, xfx, ne).
17gt(_579, _583) :- lt(_583, _579).
18ge(_596, _600) :- le(_600, _596).
19domain(_3360) :- getval(domain, _3360).
20makedom([], _3433) :- true.
21makedom([_3450|_3451], _3454) :- _3450 :: _3454, makedom(_3451, _3454).
22interval(_3833, _3836, [_3833|_3841]) :- _3833 < _3836, !, _3858 is _3833 + 1, interval(_3858, _3836, _3841).
23interval(_3988, _3988, [_3988]).
24eval_list([], []).
25eval_list([_4262|_4263], [_4268|_4269]) :- _4268 is _4262, eval_list(_4263, _4269).
26last(_7226, _7229) :- append(_7245, [_7229], _7226), !.
27minimum(_8217, _8220, _8223) :- (domain(number) -> _8217 < _8220 ; _8217 @< _8220) -> _8217 = _8223 ; _8220 = _8223.
28maximum(_8371, _8374, _8377) :- (domain(number) -> _8371 < _8374 ; _8371 @< _8374) -> _8374 = _8377 ; _8371 = _8377.
29element(_11688, _11691, _11694) :- length(_11691, _11706), interval(1, _11706, _11719), gen_pair(_11719, _11691, _11733), _11688 - _11694 :: _11733.
30gen_pair([], [], []).
31gen_pair([_11880|_11881], [_11886|_11887], [_11880 - _11886|_11895]) :- gen_pair(_11881, _11887, _11895).
32intersect(_13758 :: _13762, _13765 :: _13769, _13772 :: _13776) :- findall(_13772, (member(_13758, _13762), member(_13765, _13769)), _13776).
33atmost(_15997, _16000, _16003) :- length(_16000, _16015), atmost(_15997, _16000, _16003, _16015).
34delete_ground(_16609, _16612, _16615) :- delete(_16609, _16612, _16615), ground(_16609), !.
35outof(_17114, []).
36outof(_17128, [_17133|_17134]) :- ne(_17128, _17133), outof(_17128, _17134).
37circuit1(_17788) :- length(_17788, _17798), _17798 > 1, circuit1(_17798, _17788).
38circuit1(2, [2, 1]).
39circuit1(_17907, _17910) :- _17907 > 2, interval(1, _17907, _17929), _17937 =.. [f|_17910], domains1(1, _17929, _17910), alldistinct1([], _17910), no_subtours(_17907, 1, _17937, []).
40domains1(_18136, _18139, []).
41domains1(_18154, _18157, [_18162|_18163]) :- remove(_18154, _18157, _18177), _18162 :: _18177, _18191 is _18154 + 1, domains1(_18191, _18157, _18163).
42no_subtours(0, _18336, _18339, _18342) :- !.
43no_subtours(_18359, _18362, _18365, _18368) :- outof(_18362, _18368), (var(_18362) -> suspend(no_subtours1(_18359, _18362, _18365, _18368), 3, _18362 -> inst) ; no_subtours1(_18359, _18362, _18365, _18368)).
44no_subtours1(_18572, _18575, _18578, _18581) :- _18572 > 0, _18596 is _18572 - 1, arg(_18575, _18578, _18612), no_subtours(_18596, _18612, _18578, [_18575|_18581]).
45circuit(_18766) :- length(_18766, _18776), _18776 > 1, circuit(_18776, _18766).
46circuit(2, [2, 1]).
47circuit(_18885, _18888) :- _18885 > 2, interval(1, _18885, _18907), _18915 =.. [f|_18888], _18924 is _18885 - 1, domains(1, _18907, _18888, _18915, _18924), alldistinct(_18888).
48domains(_19116, _19119, [], _19124, _19127).
49domains(_19142, _19145, [_19150|_19151], _19154, _19157) :- remove(_19142, _19145, _19173), _19150 :: _19173, _19187 is _19142 + 1, no_subtours1(_19157, _19150, _19154, [_19142]), domains(_19187, _19145, _19151, _19154, _19157).
50remove(_19404, _19407, _19410) :- delete(_19404, _19407, _19410) -> true ; _19407 = _19410.
51remove_list(_19451, [], _19449) :- !, _19449 = [].
52remove_list([], _19518, _19521) :- _19518 = _19521.
53remove_list([_19542|_19543], [_19548|_19549], _19552) :- remove(_19542, [_19548|_19549], _19568), remove_list(_19543, _19568, _19552).
54remove_lower(_19686, [], _19684) :- !, _19684 = [].
55remove_lower(_19751, [_19756|_19757], _19760) :- _19756 @< _19751, !, remove_lower(_19751, _19757, _19760).
56remove_lower(_19870, [_19875|_19876], [_19875|_19881]) :- remove_lower(_19870, _19876, _19881).
57remove_higher(_19913, [], _19911) :- !, _19911 = [].
58remove_higher(_19978, [_19983|_19984], _19987) :- _19983 @> _19978, !, remove_higher(_19978, _19984, _19987).
59remove_higher(_20097, [_20102|_20103], [_20102|_20108]) :- remove_higher(_20097, _20103, _20108).
60
61
62
63%%% Callables for :: / 2
64
65'CHRlabel_with'(A :: [B|C], D, E) ?-
66	coca(try_clause(E, A :: [B|C], F :: [G|H], true)),
67	coca(clause_fired(E)),
68	'CHR='(D, 'clause_::'(A, [B|C])).
69'CHRlabel_with'(A :: B : C, D, E) ?-
70	coca(try_clause(E, A :: B : C, F :: G : H, domain(number))),
71	no_delayed_goals(domain(number)),
72	coca(clause_fired(E)),
73	'CHR='(D, 'clause_::'(A, B : C)).
74lt(A, B) :-
75	'CHRgen_num'(C),
76	coca(add_one_constraint(C, lt(A, B))),
77	'CHRlt_2'(lt(A, B), D, E, C).
78
79
80
81%%% Rules handling for lt / 2
82
83'CHRlt_2'(lt(A, B), C, D, E) :-
84	(
85	    'CHRnonvar'(C)
86	;
87	    'CHRalready_in'('CHRlt_2'(lt(A, B), C, D, E)),
88	    coca(already_in)
89	),
90	!.
91'CHRlt_2'(lt(A, A), B, C, D) ?-
92	coca(try_rule(D, lt(A, A), anonymous("0"), lt(E, E), replacement, true, fail)),
93	!,
94	'CHRkill'(B),
95	coca(fired_rule(anonymous("0"))),
96	fail.
97'CHRlt_2'(lt(A, B), C, D, E) ?-
98	coca(try_rule(E, lt(A, B), anonymous("6"), lt(F, G), replacement, (domain(number), ground(F), not number(F)), (H is F, lt(H, G)))),
99	no_delayed_goals((domain(number), ground(A), not number(A))),
100	!,
101	'CHRkill'(C),
102	coca(fired_rule(anonymous("6"))),
103	I is A,
104	lt(I, B).
105'CHRlt_2'(lt(A, B), C, D, E) ?-
106	coca(try_rule(E, lt(A, B), anonymous("7"), lt(F, G), replacement, (domain(number), ground(G), not number(G)), (H is G, lt(F, H)))),
107	no_delayed_goals((domain(number), ground(B), not number(B))),
108	!,
109	'CHRkill'(C),
110	coca(fired_rule(anonymous("7"))),
111	I is B,
112	lt(A, I).
113'CHRlt_2'(lt(A, B), C, D, E) ?-
114	coca(try_rule(E, lt(A, B), anonymous("12"), lt(F, G), replacement, (ground(F), ground(G)), domain(number) -> F < G ; F @< G)),
115	no_delayed_goals((ground(A), ground(B))),
116	!,
117	'CHRkill'(C),
118	coca(fired_rule(anonymous("12"))),
119	(
120	    domain(number)
121	->
122	    A < B
123	;
124	    A @< B
125	).
126'CHRlt_2'(lt(A, B), C, D, E) ?-
127	'CHRget_delayed_goals'(B, F),
128	'CHRlt_2__79'(F, [B, A], [], G),
129	coca(try_double(E, lt(A, B), G, lt(B, A), lt(H, I), lt(I, H), replacement, true, fail, anonymous("3"))),
130	!,
131	'CHRkill'(C),
132	coca(fired_rule(anonymous("3"))),
133	fail.
134'CHRlt_2'(lt(A, B), C, D, E) ?-
135	'CHRget_delayed_goals'(B, F),
136	'CHRlt_2__80'(F, [B, A], [], G),
137	coca(try_double(E, lt(A, B), G, lt(B, A), lt(H, I), lt(I, H), replacement, true, fail, anonymous("3"))),
138	!,
139	'CHRkill'(C),
140	coca(fired_rule(anonymous("3"))),
141	fail.
142'CHRlt_2'(lt(A, B), C, D, E) ?-
143	'CHRget_delayed_goals'(B, F),
144	'CHRlt_2__81'(F, [B], [G, H, I], J),
145	coca(try_double(E, lt(A, B), J, B :: [I|H], lt(K, L), L :: [M|N], keep_second, ((ground(K), remove_lower(K, [M|N], O), remove(K, O, P)), 'CHRkeep_heads_checking'(L :: [M|N], Q, L :: P, R)), 'CHRhead_not_kept'(R) -> L :: P ; true, anonymous("27"))),
146	no_delayed_goals(((ground(A), remove_lower(A, [I|H], S), remove(A, S, T)), 'CHRkeep_heads_checking'(B :: [I|H], G, B :: T, U))),
147	!,
148	'CHRkill'(C),
149	coca(fired_rule(anonymous("27"))),
150	(
151	    'CHRhead_not_kept'(U)
152	->
153	    B :: T
154	;
155	    true
156	).
157'CHRlt_2'(lt(A, B), C, D, E) ?-
158	'CHRget_delayed_goals'(A, F),
159	'CHRlt_2__82'(F, [A], [G, H, I], J),
160	coca(try_double(E, lt(A, B), J, A :: [I|H], lt(K, L), K :: [M|N], keep_second, ((ground(L), remove_higher(L, [M|N], O), remove(L, O, P)), 'CHRkeep_heads_checking'(K :: [M|N], Q, K :: P, R)), 'CHRhead_not_kept'(R) -> K :: P ; true, anonymous("28"))),
161	no_delayed_goals(((ground(B), remove_higher(B, [I|H], S), remove(B, S, T)), 'CHRkeep_heads_checking'(A :: [I|H], G, A :: T, U))),
162	!,
163	'CHRkill'(C),
164	coca(fired_rule(anonymous("28"))),
165	(
166	    'CHRhead_not_kept'(U)
167	->
168	    A :: T
169	;
170	    true
171	).
172'CHRlt_2'(lt(A, B), C, D, E) ?-
173	'CHRget_delayed_goals'(B, F),
174	'CHRlt_2__83'(F, [B], [G, H, I], J),
175	coca(try_double(E, lt(A, B), J, B :: I : H, lt(K, L), L :: M : N, keep_second, ((ground(K), maximum(M, K, O)), 'CHRkeep_heads_checking'(L :: M : N, P, L :: O : N, Q)), (('CHRhead_not_kept'(Q) -> L :: O : N ; true), ne(L, O)), anonymous("43"))),
176	no_delayed_goals(((ground(A), maximum(I, A, R)), 'CHRkeep_heads_checking'(B :: I : H, G, B :: R : H, S))),
177	!,
178	'CHRkill'(C),
179	coca(fired_rule(anonymous("43"))),
180	(
181	    'CHRhead_not_kept'(S)
182	->
183	    B :: R : H
184	;
185	    true
186	),
187	ne(B, R).
188'CHRlt_2'(lt(A, B), C, D, E) ?-
189	'CHRget_delayed_goals'(A, F),
190	'CHRlt_2__84'(F, [A], [G, H, I], J),
191	coca(try_double(E, lt(A, B), J, A :: I : H, lt(K, L), K :: M : N, keep_second, ((ground(L), minimum(N, L, O)), 'CHRkeep_heads_checking'(K :: M : N, P, K :: M : O, Q)), (('CHRhead_not_kept'(Q) -> K :: M : O ; true), ne(K, O)), anonymous("44"))),
192	no_delayed_goals(((ground(B), minimum(H, B, R)), 'CHRkeep_heads_checking'(A :: I : H, G, A :: I : R, S))),
193	!,
194	'CHRkill'(C),
195	coca(fired_rule(anonymous("44"))),
196	(
197	    'CHRhead_not_kept'(S)
198	->
199	    A :: I : R
200	;
201	    true
202	),
203	ne(A, R).
204'CHRlt_2'(lt(A, B), C, D, E) ?-
205	'CHRget_delayed_goals'(B, F),
206	'CHRlt_2__85'(F, [B, A], [G, H], I),
207	coca(try_double(E, lt(A, B), I, B - A :: H, lt(J, K), K - J :: L, keep_second, ((M = N - O, findall(M, (member(M, L), N @< O), P)), 'CHRkeep_heads_checking'(K - J :: L, Q, K - J :: P, R)), 'CHRhead_not_kept'(R) -> K - J :: P ; true, anonymous("60"))),
208	no_delayed_goals(((S = T - U, findall(S, (member(S, H), T @< U), V)), 'CHRkeep_heads_checking'(B - A :: H, G, B - A :: V, W))),
209	!,
210	'CHRkill'(C),
211	coca(fired_rule(anonymous("60"))),
212	(
213	    'CHRhead_not_kept'(W)
214	->
215	    B - A :: V
216	;
217	    true
218	).
219'CHRlt_2'(lt(A, B), C, D, E) ?-
220	'CHRget_delayed_goals'(B, F),
221	'CHRlt_2__86'(F, [B, A], [G, H], I),
222	coca(try_double(E, lt(A, B), I, A - B :: H, lt(J, K), J - K :: L, keep_second, ((M = N - O, findall(M, (member(M, L), O @< N), P)), 'CHRkeep_heads_checking'(J - K :: L, Q, J - K :: P, R)), 'CHRhead_not_kept'(R) -> J - K :: P ; true, anonymous("61"))),
223	no_delayed_goals(((S = T - U, findall(S, (member(S, H), U @< T), V)), 'CHRkeep_heads_checking'(A - B :: H, G, A - B :: V, W))),
224	!,
225	'CHRkill'(C),
226	coca(fired_rule(anonymous("61"))),
227	(
228	    'CHRhead_not_kept'(W)
229	->
230	    A - B :: V
231	;
232	    true
233	).
234'CHRlt_2'(lt(A, B), C, D, E) :-
235	'CHRlt_2__78'(lt(A, B), C, D, E).
236'CHRlt_2__79'(['CHRlt_2'(lt(A, B), C, D, E)|F], [A, B], [], G) ?-
237	'CHRvar'(C),
238	'CHRkill'(C),
239	'CHR='([], []),
240	'CHR='(E, G).
241'CHRlt_2__79'([A|B], C, D, E) :-
242	'CHRlt_2__79'(B, C, D, E).
243:- set_flag('CHRlt_2__79' / 4, leash, notrace).
244'CHRlt_2__80'(['CHRlt_2'(lt(A, B), C, D, E)|F], [A, B], [], G) ?-
245	'CHRvar'(C),
246	'CHRkill'(C),
247	'CHR='([], []),
248	'CHR='(E, G).
249'CHRlt_2__80'([A|B], C, D, E) :-
250	'CHRlt_2__80'(B, C, D, E).
251:- set_flag('CHRlt_2__80' / 4, leash, notrace).
252'CHRlt_2__81'(['CHR::_2'(A :: [B|C], D, E, F)|G], [A], [H, I, J], K) ?-
253	'CHRvar'(D),
254	'CHR='([D, C, B], [H, I, J]),
255	'CHR='(F, K).
256'CHRlt_2__81'([A|B], C, D, E) :-
257	'CHRlt_2__81'(B, C, D, E).
258:- set_flag('CHRlt_2__81' / 4, leash, notrace).
259'CHRlt_2__82'(['CHR::_2'(A :: [B|C], D, E, F)|G], [A], [H, I, J], K) ?-
260	'CHRvar'(D),
261	'CHR='([D, C, B], [H, I, J]),
262	'CHR='(F, K).
263'CHRlt_2__82'([A|B], C, D, E) :-
264	'CHRlt_2__82'(B, C, D, E).
265:- set_flag('CHRlt_2__82' / 4, leash, notrace).
266'CHRlt_2__83'(['CHR::_2'(A :: B : C, D, E, F)|G], [A], [H, I, J], K) ?-
267	'CHRvar'(D),
268	'CHR='([D, C, B], [H, I, J]),
269	'CHR='(F, K).
270'CHRlt_2__83'([A|B], C, D, E) :-
271	'CHRlt_2__83'(B, C, D, E).
272:- set_flag('CHRlt_2__83' / 4, leash, notrace).
273'CHRlt_2__84'(['CHR::_2'(A :: B : C, D, E, F)|G], [A], [H, I, J], K) ?-
274	'CHRvar'(D),
275	'CHR='([D, C, B], [H, I, J]),
276	'CHR='(F, K).
277'CHRlt_2__84'([A|B], C, D, E) :-
278	'CHRlt_2__84'(B, C, D, E).
279:- set_flag('CHRlt_2__84' / 4, leash, notrace).
280'CHRlt_2__85'(['CHR::_2'(A - B :: C, D, E, F)|G], [A, B], [H, I], J) ?-
281	'CHRvar'(D),
282	'CHR='([D, C], [H, I]),
283	'CHR='(F, J).
284'CHRlt_2__85'([A|B], C, D, E) :-
285	'CHRlt_2__85'(B, C, D, E).
286:- set_flag('CHRlt_2__85' / 4, leash, notrace).
287'CHRlt_2__86'(['CHR::_2'(A - B :: C, D, E, F)|G], [B, A], [H, I], J) ?-
288	'CHRvar'(D),
289	'CHR='([D, C], [H, I]),
290	'CHR='(F, J).
291'CHRlt_2__86'([A|B], C, D, E) :-
292	'CHRlt_2__86'(B, C, D, E).
293:- set_flag('CHRlt_2__86' / 4, leash, notrace).
294:- set_flag('CHRlt_2' / 4, leash, notrace).
295:- current_macro('CHRlt_2' / 4, _26074, _26075, _26076) -> true ; define_macro('CHRlt_2' / 4, tr_chr / 2, [write]).
296'CHRlt_2__78'(A, B, C, D) :-
297	'CHRlt_2__87'(A, B, C, D).
298:- set_flag('CHRlt_2__78' / 4, leash, notrace).
299'CHRlt_2__87'(lt(A, B), C, D, E) ?-
300	'CHRvar'(C),
301	!,
302	'CHRget_delayed_goals'(B, F),
303	'CHRlt_2__87__88'(F, C, lt(A, B), D, E).
304'CHRlt_2__87'(lt(A, B), C, D, E) :-
305	'CHRlt_2__87__89'(lt(A, B), C, D, E).
306:- set_flag('CHRlt_2__87' / 4, leash, notrace).
307'CHRlt_2__87__88'(['CHR::_2'(A :: [B|C], D, E, F)|G], H, lt(I, A), J, K) ?-
308	'CHRvar'(D),
309	'CHRcheck_and_mark_applied'(anonymous("32"), H, D, J, E),
310	coca(try_double(K, lt(I, A), F, A :: [B|C], lt(L, M), M :: [N|O], augmentation, var(L), (last([N|O], P), lt(L, P)), anonymous("32"))),
311	no_delayed_goals(var(I)),
312	!,
313	coca(fired_rule(anonymous("32"))),
314	'CHRlt_2__87__88'(G, H, lt(I, A), J, K),
315	last([B|C], Q),
316	lt(I, Q).
317'CHRlt_2__87__88'([A|B], C, D, E, F) :-
318	'CHRlt_2__87__88'(B, C, D, E, F).
319'CHRlt_2__87__88'([], A, B, C, D) :-
320	'CHRlt_2__87__89'(B, A, C, D).
321:- set_flag('CHRlt_2__87__88' / 5, leash, notrace).
322'CHRlt_2__87__89'(lt(A, B), C, D, E) ?-
323	'CHRvar'(C),
324	!,
325	'CHRget_delayed_goals'(A, F),
326	'CHRlt_2__87__89__90'(F, C, lt(A, B), D, E).
327'CHRlt_2__87__89'(lt(A, B), C, D, E) :-
328	'CHRlt_2__87__89__91'(lt(A, B), C, D, E).
329:- set_flag('CHRlt_2__87__89' / 4, leash, notrace).
330'CHRlt_2__87__89__90'(['CHR::_2'(A :: [B|C], D, E, F)|G], H, lt(A, I), J, K) ?-
331	'CHRvar'(D),
332	'CHRcheck_and_mark_applied'(anonymous("33"), H, D, J, E),
333	coca(try_double(K, lt(A, I), F, A :: [B|C], lt(L, M), L :: [N|O], augmentation, var(M), lt(N, M), anonymous("33"))),
334	no_delayed_goals(var(I)),
335	!,
336	coca(fired_rule(anonymous("33"))),
337	'CHRlt_2__87__89__90'(G, H, lt(A, I), J, K),
338	lt(B, I).
339'CHRlt_2__87__89__90'([A|B], C, D, E, F) :-
340	'CHRlt_2__87__89__90'(B, C, D, E, F).
341'CHRlt_2__87__89__90'([], A, B, C, D) :-
342	'CHRlt_2__87__89__91'(B, A, C, D).
343:- set_flag('CHRlt_2__87__89__90' / 5, leash, notrace).
344'CHRlt_2__87__89__91'(lt(A, B), C, D, E) ?-
345	'CHRvar'(C),
346	!,
347	'CHRget_delayed_goals'(B, F),
348	'CHRlt_2__87__89__91__92'(F, C, lt(A, B), D, E).
349'CHRlt_2__87__89__91'(lt(A, B), C, D, E) :-
350	'CHRlt_2__87__89__91__93'(lt(A, B), C, D, E).
351:- set_flag('CHRlt_2__87__89__91' / 4, leash, notrace).
352'CHRlt_2__87__89__91__92'(['CHR::_2'(A :: B : C, D, E, F)|G], H, lt(I, A), J, K) ?-
353	'CHRvar'(D),
354	'CHRcheck_and_mark_applied'(anonymous("47"), H, D, J, E),
355	coca(try_double(K, lt(I, A), F, A :: B : C, lt(L, M), M :: N : O, augmentation, var(L), lt(L, O), anonymous("47"))),
356	no_delayed_goals(var(I)),
357	!,
358	coca(fired_rule(anonymous("47"))),
359	'CHRlt_2__87__89__91__92'(G, H, lt(I, A), J, K),
360	lt(I, C).
361'CHRlt_2__87__89__91__92'([A|B], C, D, E, F) :-
362	'CHRlt_2__87__89__91__92'(B, C, D, E, F).
363'CHRlt_2__87__89__91__92'([], A, B, C, D) :-
364	'CHRlt_2__87__89__91__93'(B, A, C, D).
365:- set_flag('CHRlt_2__87__89__91__92' / 5, leash, notrace).
366'CHRlt_2__87__89__91__93'(lt(A, B), C, D, E) ?-
367	'CHRvar'(C),
368	!,
369	'CHRget_delayed_goals'(A, F),
370	'CHRlt_2__87__89__91__93__94'(F, C, lt(A, B), D, E).
371'CHRlt_2__87__89__91__93'(lt(A, B), C, D, E) :-
372	'CHRlt_2__87__89__91__93__95'(lt(A, B), C, D, E).
373:- set_flag('CHRlt_2__87__89__91__93' / 4, leash, notrace).
374'CHRlt_2__87__89__91__93__94'(['CHR::_2'(A :: B : C, D, E, F)|G], H, lt(A, I), J, K) ?-
375	'CHRvar'(D),
376	'CHRcheck_and_mark_applied'(anonymous("48"), H, D, J, E),
377	coca(try_double(K, lt(A, I), F, A :: B : C, lt(L, M), L :: N : O, augmentation, var(M), lt(N, M), anonymous("48"))),
378	no_delayed_goals(var(I)),
379	!,
380	coca(fired_rule(anonymous("48"))),
381	'CHRlt_2__87__89__91__93__94'(G, H, lt(A, I), J, K),
382	lt(B, I).
383'CHRlt_2__87__89__91__93__94'([A|B], C, D, E, F) :-
384	'CHRlt_2__87__89__91__93__94'(B, C, D, E, F).
385'CHRlt_2__87__89__91__93__94'([], A, B, C, D) :-
386	'CHRlt_2__87__89__91__93__95'(B, A, C, D).
387:- set_flag('CHRlt_2__87__89__91__93__94' / 5, leash, notrace).
388'CHRlt_2__87__89__91__93__95'(lt(A, B), C, D, E) :-
389	(
390	    'CHRvar'(C)
391	->
392	    'CHRdelay'([C, lt(A, B)], 'CHRlt_2'(lt(A, B), C, D, E))
393	;
394	    true
395	).
396:- set_flag('CHRlt_2__87__89__91__93__95' / 4, leash, notrace).
397le(A, B) :-
398	'CHRgen_num'(C),
399	coca(add_one_constraint(C, le(A, B))),
400	'CHRle_2'(le(A, B), D, E, C).
401
402
403
404%%% Rules handling for le / 2
405
406'CHRle_2'(le(A, B), C, D, E) :-
407	(
408	    'CHRnonvar'(C)
409	;
410	    'CHRalready_in'('CHRle_2'(le(A, B), C, D, E)),
411	    coca(already_in)
412	),
413	!.
414'CHRle_2'(le(A, A), B, C, D) ?-
415	coca(try_rule(D, le(A, A), anonymous("1"), le(E, E), replacement, true, true)),
416	!,
417	'CHRkill'(B),
418	coca(fired_rule(anonymous("1"))).
419'CHRle_2'(le(A, B), C, D, E) ?-
420	coca(try_rule(E, le(A, B), anonymous("8"), le(F, G), replacement, (domain(number), ground(F), not number(F)), (H is F, le(H, G)))),
421	no_delayed_goals((domain(number), ground(A), not number(A))),
422	!,
423	'CHRkill'(C),
424	coca(fired_rule(anonymous("8"))),
425	I is A,
426	le(I, B).
427'CHRle_2'(le(A, B), C, D, E) ?-
428	coca(try_rule(E, le(A, B), anonymous("9"), le(F, G), replacement, (domain(number), ground(G), not number(G)), (H is G, le(F, H)))),
429	no_delayed_goals((domain(number), ground(B), not number(B))),
430	!,
431	'CHRkill'(C),
432	coca(fired_rule(anonymous("9"))),
433	I is B,
434	le(A, I).
435'CHRle_2'(le(A, B), C, D, E) ?-
436	coca(try_rule(E, le(A, B), anonymous("13"), le(F, G), replacement, (ground(F), ground(G)), domain(number) -> F =< G ; F @=< G)),
437	no_delayed_goals((ground(A), ground(B))),
438	!,
439	'CHRkill'(C),
440	coca(fired_rule(anonymous("13"))),
441	(
442	    domain(number)
443	->
444	    A =< B
445	;
446	    A @=< B
447	).
448'CHRle_2'(le(A, B), C, D, E) ?-
449	'CHRget_delayed_goals'(B, F),
450	'CHRle_2__97'(F, [B, A], [], G),
451	coca(try_double(E, le(A, B), G, le(B, A), le(H, I), le(I, H), replacement, true, H = I, anonymous("4"))),
452	!,
453	'CHRkill'(C),
454	coca(fired_rule(anonymous("4"))),
455	A = B.
456'CHRle_2'(le(A, B), C, D, E) ?-
457	'CHRget_delayed_goals'(B, F),
458	'CHRle_2__98'(F, [B, A], [], G),
459	coca(try_double(E, le(A, B), G, le(B, A), le(H, I), le(I, H), replacement, true, I = H, anonymous("4"))),
460	!,
461	'CHRkill'(C),
462	coca(fired_rule(anonymous("4"))),
463	B = A.
464'CHRle_2'(le(A, B), C, D, E) ?-
465	'CHRget_delayed_goals'(B, F),
466	'CHRle_2__99'(F, [B], [G, H, I], J),
467	coca(try_double(E, le(A, B), J, B :: [I|H], le(K, L), L :: [M|N], keep_second, ((ground(K), remove_lower(K, [M|N], O)), 'CHRkeep_heads_checking'(L :: [M|N], P, L :: O, Q)), 'CHRhead_not_kept'(Q) -> L :: O ; true, anonymous("25"))),
468	no_delayed_goals(((ground(A), remove_lower(A, [I|H], R)), 'CHRkeep_heads_checking'(B :: [I|H], G, B :: R, S))),
469	!,
470	'CHRkill'(C),
471	coca(fired_rule(anonymous("25"))),
472	(
473	    'CHRhead_not_kept'(S)
474	->
475	    B :: R
476	;
477	    true
478	).
479'CHRle_2'(le(A, B), C, D, E) ?-
480	'CHRget_delayed_goals'(A, F),
481	'CHRle_2__100'(F, [A], [G, H, I], J),
482	coca(try_double(E, le(A, B), J, A :: [I|H], le(K, L), K :: [M|N], keep_second, ((ground(L), remove_higher(L, [M|N], O)), 'CHRkeep_heads_checking'(K :: [M|N], P, K :: O, Q)), 'CHRhead_not_kept'(Q) -> K :: O ; true, anonymous("26"))),
483	no_delayed_goals(((ground(B), remove_higher(B, [I|H], R)), 'CHRkeep_heads_checking'(A :: [I|H], G, A :: R, S))),
484	!,
485	'CHRkill'(C),
486	coca(fired_rule(anonymous("26"))),
487	(
488	    'CHRhead_not_kept'(S)
489	->
490	    A :: R
491	;
492	    true
493	).
494'CHRle_2'(le(A, B), C, D, E) ?-
495	'CHRget_delayed_goals'(B, F),
496	'CHRle_2__101'(F, [B], [G, H, I], J),
497	coca(try_double(E, le(A, B), J, B :: I : H, le(K, L), L :: M : N, keep_second, ((ground(K), maximum(M, K, O)), 'CHRkeep_heads_checking'(L :: M : N, P, L :: O : N, Q)), 'CHRhead_not_kept'(Q) -> L :: O : N ; true, anonymous("41"))),
498	no_delayed_goals(((ground(A), maximum(I, A, R)), 'CHRkeep_heads_checking'(B :: I : H, G, B :: R : H, S))),
499	!,
500	'CHRkill'(C),
501	coca(fired_rule(anonymous("41"))),
502	(
503	    'CHRhead_not_kept'(S)
504	->
505	    B :: R : H
506	;
507	    true
508	).
509'CHRle_2'(le(A, B), C, D, E) ?-
510	'CHRget_delayed_goals'(A, F),
511	'CHRle_2__102'(F, [A], [G, H, I], J),
512	coca(try_double(E, le(A, B), J, A :: I : H, le(K, L), K :: M : N, keep_second, ((ground(L), minimum(N, L, O)), 'CHRkeep_heads_checking'(K :: M : N, P, K :: M : O, Q)), 'CHRhead_not_kept'(Q) -> K :: M : O ; true, anonymous("42"))),
513	no_delayed_goals(((ground(B), minimum(H, B, R)), 'CHRkeep_heads_checking'(A :: I : H, G, A :: I : R, S))),
514	!,
515	'CHRkill'(C),
516	coca(fired_rule(anonymous("42"))),
517	(
518	    'CHRhead_not_kept'(S)
519	->
520	    A :: I : R
521	;
522	    true
523	).
524'CHRle_2'(le(A, B), C, D, E) ?-
525	'CHRget_delayed_goals'(B, F),
526	'CHRle_2__103'(F, [B, A], [G, H], I),
527	coca(try_double(E, le(A, B), I, B - A :: H, le(J, K), K - J :: L, keep_second, ((M = N - O, findall(M, (member(M, L), N @=< O), P)), 'CHRkeep_heads_checking'(K - J :: L, Q, K - J :: P, R)), 'CHRhead_not_kept'(R) -> K - J :: P ; true, anonymous("62"))),
528	no_delayed_goals(((S = T - U, findall(S, (member(S, H), T @=< U), V)), 'CHRkeep_heads_checking'(B - A :: H, G, B - A :: V, W))),
529	!,
530	'CHRkill'(C),
531	coca(fired_rule(anonymous("62"))),
532	(
533	    'CHRhead_not_kept'(W)
534	->
535	    B - A :: V
536	;
537	    true
538	).
539'CHRle_2'(le(A, B), C, D, E) ?-
540	'CHRget_delayed_goals'(B, F),
541	'CHRle_2__104'(F, [B, A], [G, H], I),
542	coca(try_double(E, le(A, B), I, A - B :: H, le(J, K), J - K :: L, keep_second, ((M = N - O, findall(M, (member(M, L), O @=< N), P)), 'CHRkeep_heads_checking'(J - K :: L, Q, J - K :: P, R)), 'CHRhead_not_kept'(R) -> J - K :: P ; true, anonymous("63"))),
543	no_delayed_goals(((S = T - U, findall(S, (member(S, H), U @=< T), V)), 'CHRkeep_heads_checking'(A - B :: H, G, A - B :: V, W))),
544	!,
545	'CHRkill'(C),
546	coca(fired_rule(anonymous("63"))),
547	(
548	    'CHRhead_not_kept'(W)
549	->
550	    A - B :: V
551	;
552	    true
553	).
554'CHRle_2'(le(A, B), C, D, E) :-
555	'CHRle_2__96'(le(A, B), C, D, E).
556'CHRle_2__97'(['CHRle_2'(le(A, B), C, D, E)|F], [A, B], [], G) ?-
557	'CHRvar'(C),
558	'CHRkill'(C),
559	'CHR='([], []),
560	'CHR='(E, G).
561'CHRle_2__97'([A|B], C, D, E) :-
562	'CHRle_2__97'(B, C, D, E).
563:- set_flag('CHRle_2__97' / 4, leash, notrace).
564'CHRle_2__98'(['CHRle_2'(le(A, B), C, D, E)|F], [A, B], [], G) ?-
565	'CHRvar'(C),
566	'CHRkill'(C),
567	'CHR='([], []),
568	'CHR='(E, G).
569'CHRle_2__98'([A|B], C, D, E) :-
570	'CHRle_2__98'(B, C, D, E).
571:- set_flag('CHRle_2__98' / 4, leash, notrace).
572'CHRle_2__99'(['CHR::_2'(A :: [B|C], D, E, F)|G], [A], [H, I, J], K) ?-
573	'CHRvar'(D),
574	'CHR='([D, C, B], [H, I, J]),
575	'CHR='(F, K).
576'CHRle_2__99'([A|B], C, D, E) :-
577	'CHRle_2__99'(B, C, D, E).
578:- set_flag('CHRle_2__99' / 4, leash, notrace).
579'CHRle_2__100'(['CHR::_2'(A :: [B|C], D, E, F)|G], [A], [H, I, J], K) ?-
580	'CHRvar'(D),
581	'CHR='([D, C, B], [H, I, J]),
582	'CHR='(F, K).
583'CHRle_2__100'([A|B], C, D, E) :-
584	'CHRle_2__100'(B, C, D, E).
585:- set_flag('CHRle_2__100' / 4, leash, notrace).
586'CHRle_2__101'(['CHR::_2'(A :: B : C, D, E, F)|G], [A], [H, I, J], K) ?-
587	'CHRvar'(D),
588	'CHR='([D, C, B], [H, I, J]),
589	'CHR='(F, K).
590'CHRle_2__101'([A|B], C, D, E) :-
591	'CHRle_2__101'(B, C, D, E).
592:- set_flag('CHRle_2__101' / 4, leash, notrace).
593'CHRle_2__102'(['CHR::_2'(A :: B : C, D, E, F)|G], [A], [H, I, J], K) ?-
594	'CHRvar'(D),
595	'CHR='([D, C, B], [H, I, J]),
596	'CHR='(F, K).
597'CHRle_2__102'([A|B], C, D, E) :-
598	'CHRle_2__102'(B, C, D, E).
599:- set_flag('CHRle_2__102' / 4, leash, notrace).
600'CHRle_2__103'(['CHR::_2'(A - B :: C, D, E, F)|G], [A, B], [H, I], J) ?-
601	'CHRvar'(D),
602	'CHR='([D, C], [H, I]),
603	'CHR='(F, J).
604'CHRle_2__103'([A|B], C, D, E) :-
605	'CHRle_2__103'(B, C, D, E).
606:- set_flag('CHRle_2__103' / 4, leash, notrace).
607'CHRle_2__104'(['CHR::_2'(A - B :: C, D, E, F)|G], [B, A], [H, I], J) ?-
608	'CHRvar'(D),
609	'CHR='([D, C], [H, I]),
610	'CHR='(F, J).
611'CHRle_2__104'([A|B], C, D, E) :-
612	'CHRle_2__104'(B, C, D, E).
613:- set_flag('CHRle_2__104' / 4, leash, notrace).
614:- set_flag('CHRle_2' / 4, leash, notrace).
615:- current_macro('CHRle_2' / 4, _32744, _32745, _32746) -> true ; define_macro('CHRle_2' / 4, tr_chr / 2, [write]).
616'CHRle_2__96'(A, B, C, D) :-
617	'CHRle_2__105'(A, B, C, D).
618:- set_flag('CHRle_2__96' / 4, leash, notrace).
619'CHRle_2__105'(le(A, B), C, D, E) ?-
620	'CHRvar'(C),
621	!,
622	'CHRget_delayed_goals'(B, F),
623	'CHRle_2__105__106'(F, C, le(A, B), D, E).
624'CHRle_2__105'(le(A, B), C, D, E) :-
625	'CHRle_2__105__107'(le(A, B), C, D, E).
626:- set_flag('CHRle_2__105' / 4, leash, notrace).
627'CHRle_2__105__106'(['CHR::_2'(A :: [B|C], D, E, F)|G], H, le(I, A), J, K) ?-
628	'CHRvar'(D),
629	'CHRcheck_and_mark_applied'(anonymous("30"), H, D, J, E),
630	coca(try_double(K, le(I, A), F, A :: [B|C], le(L, M), M :: [N|O], augmentation, var(L), (last([N|O], P), le(L, P)), anonymous("30"))),
631	no_delayed_goals(var(I)),
632	!,
633	coca(fired_rule(anonymous("30"))),
634	'CHRle_2__105__106'(G, H, le(I, A), J, K),
635	last([B|C], Q),
636	le(I, Q).
637'CHRle_2__105__106'([A|B], C, D, E, F) :-
638	'CHRle_2__105__106'(B, C, D, E, F).
639'CHRle_2__105__106'([], A, B, C, D) :-
640	'CHRle_2__105__107'(B, A, C, D).
641:- set_flag('CHRle_2__105__106' / 5, leash, notrace).
642'CHRle_2__105__107'(le(A, B), C, D, E) ?-
643	'CHRvar'(C),
644	!,
645	'CHRget_delayed_goals'(A, F),
646	'CHRle_2__105__107__108'(F, C, le(A, B), D, E).
647'CHRle_2__105__107'(le(A, B), C, D, E) :-
648	'CHRle_2__105__107__109'(le(A, B), C, D, E).
649:- set_flag('CHRle_2__105__107' / 4, leash, notrace).
650'CHRle_2__105__107__108'(['CHR::_2'(A :: [B|C], D, E, F)|G], H, le(A, I), J, K) ?-
651	'CHRvar'(D),
652	'CHRcheck_and_mark_applied'(anonymous("31"), H, D, J, E),
653	coca(try_double(K, le(A, I), F, A :: [B|C], le(L, M), L :: [N|O], augmentation, var(M), le(N, M), anonymous("31"))),
654	no_delayed_goals(var(I)),
655	!,
656	coca(fired_rule(anonymous("31"))),
657	'CHRle_2__105__107__108'(G, H, le(A, I), J, K),
658	le(B, I).
659'CHRle_2__105__107__108'([A|B], C, D, E, F) :-
660	'CHRle_2__105__107__108'(B, C, D, E, F).
661'CHRle_2__105__107__108'([], A, B, C, D) :-
662	'CHRle_2__105__107__109'(B, A, C, D).
663:- set_flag('CHRle_2__105__107__108' / 5, leash, notrace).
664'CHRle_2__105__107__109'(le(A, B), C, D, E) ?-
665	'CHRvar'(C),
666	!,
667	'CHRget_delayed_goals'(B, F),
668	'CHRle_2__105__107__109__110'(F, C, le(A, B), D, E).
669'CHRle_2__105__107__109'(le(A, B), C, D, E) :-
670	'CHRle_2__105__107__109__111'(le(A, B), C, D, E).
671:- set_flag('CHRle_2__105__107__109' / 4, leash, notrace).
672'CHRle_2__105__107__109__110'(['CHR::_2'(A :: B : C, D, E, F)|G], H, le(I, A), J, K) ?-
673	'CHRvar'(D),
674	'CHRcheck_and_mark_applied'(anonymous("45"), H, D, J, E),
675	coca(try_double(K, le(I, A), F, A :: B : C, le(L, M), M :: N : O, augmentation, var(L), le(L, O), anonymous("45"))),
676	no_delayed_goals(var(I)),
677	!,
678	coca(fired_rule(anonymous("45"))),
679	'CHRle_2__105__107__109__110'(G, H, le(I, A), J, K),
680	le(I, C).
681'CHRle_2__105__107__109__110'([A|B], C, D, E, F) :-
682	'CHRle_2__105__107__109__110'(B, C, D, E, F).
683'CHRle_2__105__107__109__110'([], A, B, C, D) :-
684	'CHRle_2__105__107__109__111'(B, A, C, D).
685:- set_flag('CHRle_2__105__107__109__110' / 5, leash, notrace).
686'CHRle_2__105__107__109__111'(le(A, B), C, D, E) ?-
687	'CHRvar'(C),
688	!,
689	'CHRget_delayed_goals'(A, F),
690	'CHRle_2__105__107__109__111__112'(F, C, le(A, B), D, E).
691'CHRle_2__105__107__109__111'(le(A, B), C, D, E) :-
692	'CHRle_2__105__107__109__111__113'(le(A, B), C, D, E).
693:- set_flag('CHRle_2__105__107__109__111' / 4, leash, notrace).
694'CHRle_2__105__107__109__111__112'(['CHR::_2'(A :: B : C, D, E, F)|G], H, le(A, I), J, K) ?-
695	'CHRvar'(D),
696	'CHRcheck_and_mark_applied'(anonymous("46"), H, D, J, E),
697	coca(try_double(K, le(A, I), F, A :: B : C, le(L, M), L :: N : O, augmentation, var(M), le(N, M), anonymous("46"))),
698	no_delayed_goals(var(I)),
699	!,
700	coca(fired_rule(anonymous("46"))),
701	'CHRle_2__105__107__109__111__112'(G, H, le(A, I), J, K),
702	le(B, I).
703'CHRle_2__105__107__109__111__112'([A|B], C, D, E, F) :-
704	'CHRle_2__105__107__109__111__112'(B, C, D, E, F).
705'CHRle_2__105__107__109__111__112'([], A, B, C, D) :-
706	'CHRle_2__105__107__109__111__113'(B, A, C, D).
707:- set_flag('CHRle_2__105__107__109__111__112' / 5, leash, notrace).
708'CHRle_2__105__107__109__111__113'(le(A, B), C, D, E) :-
709	(
710	    'CHRvar'(C)
711	->
712	    'CHRdelay'([C, le(A, B)], 'CHRle_2'(le(A, B), C, D, E))
713	;
714	    true
715	).
716:- set_flag('CHRle_2__105__107__109__111__113' / 4, leash, notrace).
717ne(A, B) :-
718	'CHRgen_num'(C),
719	coca(add_one_constraint(C, ne(A, B))),
720	'CHRne_2'(ne(A, B), D, E, C).
721
722
723
724%%% Rules handling for ne / 2
725
726'CHRne_2'(ne(A, B), C, D, E) :-
727	(
728	    'CHRnonvar'(C)
729	;
730	    'CHRalready_in'('CHRne_2'(ne(A, B), C, D, E)),
731	    coca(already_in)
732	),
733	!.
734'CHRne_2'(ne(A, A), B, C, D) ?-
735	coca(try_rule(D, ne(A, A), anonymous("2"), ne(E, E), replacement, true, fail)),
736	!,
737	'CHRkill'(B),
738	coca(fired_rule(anonymous("2"))),
739	fail.
740'CHRne_2'(ne(A, B), C, D, E) ?-
741	coca(try_rule(E, ne(A, B), anonymous("10"), ne(F, G), replacement, (domain(number), ground(F), not number(F)), (H is F, ne(H, G)))),
742	no_delayed_goals((domain(number), ground(A), not number(A))),
743	!,
744	'CHRkill'(C),
745	coca(fired_rule(anonymous("10"))),
746	I is A,
747	ne(I, B).
748'CHRne_2'(ne(A, B), C, D, E) ?-
749	coca(try_rule(E, ne(A, B), anonymous("11"), ne(F, G), replacement, (domain(number), ground(G), not number(G)), (H is G, ne(F, H)))),
750	no_delayed_goals((domain(number), ground(B), not number(B))),
751	!,
752	'CHRkill'(C),
753	coca(fired_rule(anonymous("11"))),
754	I is B,
755	ne(A, I).
756'CHRne_2'(ne(A, B), C, D, E) ?-
757	coca(try_rule(E, ne(A, B), anonymous("14"), ne(F, G), replacement, (ground(F), ground(G)), domain(number) -> F =\= G ; F \== G)),
758	no_delayed_goals((ground(A), ground(B))),
759	!,
760	'CHRkill'(C),
761	coca(fired_rule(anonymous("14"))),
762	(
763	    domain(number)
764	->
765	    A =\= B
766	;
767	    A \== B
768	).
769'CHRne_2'(ne(A, B), C, D, E) ?-
770	'CHRget_delayed_goals'(B, F),
771	'CHRne_2__115'(F, [B, A], [], G),
772	coca(try_double(E, ne(A, B), G, ne(B, A), ne(H, I), ne(I, H), keep_second, true, true, anonymous("5"))),
773	!,
774	'CHRkill'(C),
775	coca(fired_rule(anonymous("5"))).
776'CHRne_2'(ne(A, B), C, D, E) ?-
777	'CHRget_delayed_goals'(A, F),
778	'CHRne_2__116'(F, [A], [G, H, I], J),
779	coca(try_double(E, ne(A, B), J, A :: [I|H], ne(K, L), K :: [M|N], keep_second, ((ground(L), remove(L, [M|N], O)), 'CHRkeep_heads_checking'(K :: [M|N], P, K :: O, Q)), 'CHRhead_not_kept'(Q) -> K :: O ; true, anonymous("23"))),
780	no_delayed_goals(((ground(B), remove(B, [I|H], R)), 'CHRkeep_heads_checking'(A :: [I|H], G, A :: R, S))),
781	!,
782	'CHRkill'(C),
783	coca(fired_rule(anonymous("23"))),
784	(
785	    'CHRhead_not_kept'(S)
786	->
787	    A :: R
788	;
789	    true
790	).
791'CHRne_2'(ne(A, B), C, D, E) ?-
792	'CHRget_delayed_goals'(B, F),
793	'CHRne_2__117'(F, [B], [G, H, I], J),
794	coca(try_double(E, ne(A, B), J, B :: [I|H], ne(K, L), L :: [M|N], keep_second, ((ground(K), remove(K, [M|N], O)), 'CHRkeep_heads_checking'(L :: [M|N], P, L :: O, Q)), 'CHRhead_not_kept'(Q) -> L :: O ; true, anonymous("24"))),
795	no_delayed_goals(((ground(A), remove(A, [I|H], R)), 'CHRkeep_heads_checking'(B :: [I|H], G, B :: R, S))),
796	!,
797	'CHRkill'(C),
798	coca(fired_rule(anonymous("24"))),
799	(
800	    'CHRhead_not_kept'(S)
801	->
802	    B :: R
803	;
804	    true
805	).
806'CHRne_2'(ne(A, B), C, D, E) ?-
807	'CHRget_delayed_goals'(A, F),
808	'CHRne_2__118'(F, [A], [G, H], I),
809	coca(try_double(E, ne(A, B), I, A :: H : G, ne(J, K), J :: L : M, keep_second, (ground(K), (domain(number) -> (K < L ; K > M) ; K @< L ; K @> M)), true, anonymous("39"))),
810	no_delayed_goals((ground(B), (domain(number) -> (B < H ; B > G) ; B @< H ; B @> G))),
811	!,
812	'CHRkill'(C),
813	coca(fired_rule(anonymous("39"))).
814'CHRne_2'(ne(A, B), C, D, E) ?-
815	'CHRget_delayed_goals'(B, F),
816	'CHRne_2__119'(F, [B], [G, H], I),
817	coca(try_double(E, ne(A, B), I, B :: H : G, ne(J, K), K :: L : M, keep_second, (ground(J), (domain(number) -> (J < L ; J > M) ; J @< L ; J @> M)), true, anonymous("40"))),
818	no_delayed_goals((ground(A), (domain(number) -> (A < H ; A > G) ; A @< H ; A @> G))),
819	!,
820	'CHRkill'(C),
821	coca(fired_rule(anonymous("40"))).
822'CHRne_2'(ne(A, B), C, D, E) ?-
823	'CHRget_delayed_goals'(B, F),
824	'CHRne_2__120'(F, [B, A], [G, H], I),
825	coca(try_double(E, ne(A, B), I, B - A :: H, ne(J, K), K - J :: L, keep_second, ((M = N - O, findall(M, (member(M, L), N \== O), P)), 'CHRkeep_heads_checking'(K - J :: L, Q, K - J :: P, R)), 'CHRhead_not_kept'(R) -> K - J :: P ; true, anonymous("64"))),
826	no_delayed_goals(((S = T - U, findall(S, (member(S, H), T \== U), V)), 'CHRkeep_heads_checking'(B - A :: H, G, B - A :: V, W))),
827	!,
828	'CHRkill'(C),
829	coca(fired_rule(anonymous("64"))),
830	(
831	    'CHRhead_not_kept'(W)
832	->
833	    B - A :: V
834	;
835	    true
836	).
837'CHRne_2'(ne(A, B), C, D, E) ?-
838	'CHRget_delayed_goals'(B, F),
839	'CHRne_2__121'(F, [B, A], [G, H], I),
840	coca(try_double(E, ne(A, B), I, A - B :: H, ne(J, K), J - K :: L, keep_second, ((M = N - O, findall(M, (member(M, L), O \== N), P)), 'CHRkeep_heads_checking'(J - K :: L, Q, J - K :: P, R)), 'CHRhead_not_kept'(R) -> J - K :: P ; true, anonymous("65"))),
841	no_delayed_goals(((S = T - U, findall(S, (member(S, H), U \== T), V)), 'CHRkeep_heads_checking'(A - B :: H, G, A - B :: V, W))),
842	!,
843	'CHRkill'(C),
844	coca(fired_rule(anonymous("65"))),
845	(
846	    'CHRhead_not_kept'(W)
847	->
848	    A - B :: V
849	;
850	    true
851	).
852'CHRne_2'(ne(A, B), C, D, E) :-
853	'CHRne_2__114'(ne(A, B), C, D, E).
854'CHRne_2__115'(['CHRne_2'(ne(A, B), C, D, E)|F], [A, B], [], G) ?-
855	'CHRvar'(C),
856	'CHR='([], []),
857	'CHR='(E, G).
858'CHRne_2__115'([A|B], C, D, E) :-
859	'CHRne_2__115'(B, C, D, E).
860:- set_flag('CHRne_2__115' / 4, leash, notrace).
861'CHRne_2__116'(['CHR::_2'(A :: [B|C], D, E, F)|G], [A], [H, I, J], K) ?-
862	'CHRvar'(D),
863	'CHR='([D, C, B], [H, I, J]),
864	'CHR='(F, K).
865'CHRne_2__116'([A|B], C, D, E) :-
866	'CHRne_2__116'(B, C, D, E).
867:- set_flag('CHRne_2__116' / 4, leash, notrace).
868'CHRne_2__117'(['CHR::_2'(A :: [B|C], D, E, F)|G], [A], [H, I, J], K) ?-
869	'CHRvar'(D),
870	'CHR='([D, C, B], [H, I, J]),
871	'CHR='(F, K).
872'CHRne_2__117'([A|B], C, D, E) :-
873	'CHRne_2__117'(B, C, D, E).
874:- set_flag('CHRne_2__117' / 4, leash, notrace).
875'CHRne_2__118'(['CHR::_2'(A :: B : C, D, E, F)|G], [A], [H, I], J) ?-
876	'CHRvar'(D),
877	'CHR='([C, B], [H, I]),
878	'CHR='(F, J).
879'CHRne_2__118'([A|B], C, D, E) :-
880	'CHRne_2__118'(B, C, D, E).
881:- set_flag('CHRne_2__118' / 4, leash, notrace).
882'CHRne_2__119'(['CHR::_2'(A :: B : C, D, E, F)|G], [A], [H, I], J) ?-
883	'CHRvar'(D),
884	'CHR='([C, B], [H, I]),
885	'CHR='(F, J).
886'CHRne_2__119'([A|B], C, D, E) :-
887	'CHRne_2__119'(B, C, D, E).
888:- set_flag('CHRne_2__119' / 4, leash, notrace).
889'CHRne_2__120'(['CHR::_2'(A - B :: C, D, E, F)|G], [A, B], [H, I], J) ?-
890	'CHRvar'(D),
891	'CHR='([D, C], [H, I]),
892	'CHR='(F, J).
893'CHRne_2__120'([A|B], C, D, E) :-
894	'CHRne_2__120'(B, C, D, E).
895:- set_flag('CHRne_2__120' / 4, leash, notrace).
896'CHRne_2__121'(['CHR::_2'(A - B :: C, D, E, F)|G], [B, A], [H, I], J) ?-
897	'CHRvar'(D),
898	'CHR='([D, C], [H, I]),
899	'CHR='(F, J).
900'CHRne_2__121'([A|B], C, D, E) :-
901	'CHRne_2__121'(B, C, D, E).
902:- set_flag('CHRne_2__121' / 4, leash, notrace).
903:- set_flag('CHRne_2' / 4, leash, notrace).
904:- current_macro('CHRne_2' / 4, _38917, _38918, _38919) -> true ; define_macro('CHRne_2' / 4, tr_chr / 2, [write]).
905'CHRne_2__114'(A, B, C, D) :-
906	'CHRne_2__122'(A, B, C, D).
907:- set_flag('CHRne_2__114' / 4, leash, notrace).
908'CHRne_2__122'(ne(A, B), C, D, E) ?-
909	'CHRvar'(C),
910	!,
911	'CHRget_delayed_goals'(B, F),
912	'CHRne_2__122__123'(F, C, ne(A, B), D, E).
913'CHRne_2__122'(ne(A, B), C, D, E) :-
914	'CHRne_2__122__124'(ne(A, B), C, D, E).
915:- set_flag('CHRne_2__122' / 4, leash, notrace).
916'CHRne_2__122__123'(['CHRne_2'(ne(A, B), C, D, E)|F], G, ne(B, A), H, I) ?-
917	'CHRvar'(C),
918	coca(try_double(I, ne(B, A), E, ne(A, B), ne(J, K), ne(K, J), keep_first, true, true, anonymous("5"))),
919	!,
920	'CHRkill'(C),
921	coca(fired_rule(anonymous("5"))),
922	'CHRne_2__122__123'(F, G, ne(B, A), H, I).
923'CHRne_2__122__123'([A|B], C, D, E, F) :-
924	'CHRne_2__122__123'(B, C, D, E, F).
925'CHRne_2__122__123'([], A, B, C, D) :-
926	'CHRne_2__122__124'(B, A, C, D).
927:- set_flag('CHRne_2__122__123' / 5, leash, notrace).
928'CHRne_2__122__124'(ne(A, B), C, D, E) :-
929	(
930	    'CHRvar'(C)
931	->
932	    'CHRdelay'([C, ne(A, B)], 'CHRne_2'(ne(A, B), C, D, E))
933	;
934	    true
935	).
936:- set_flag('CHRne_2__122__124' / 4, leash, notrace).
937
938
939
940%%% Prolog clauses for :: / 2
941
942'clause_::'(A, [B|C]) :-
943	member(A, [B|C]).
944'clause_::'(A, B : C) :-
945	D is (B + C) / 2,
946	(
947	    A :: B : D
948	;
949	    ne(A, D),
950	    A :: D : C
951	).
952:- current_macro('clause_::' / 2, _39665, _39666, _39667) -> true ; define_macro('clause_::' / 2, tr_chr / 2, [write]).
953A :: B :-
954	'CHRgen_num'(C),
955	coca(add_one_constraint(C, A :: B)),
956	'CHR::_2'(A :: B, D, E, C).
957
958
959
960%%% Rules handling for :: / 2
961
962'CHR::_2'(A :: B, C, D, E) :-
963	(
964	    'CHRnonvar'(C)
965	;
966	    'CHRalready_in'('CHR::_2'(A :: B, C, D, E)),
967	    coca(already_in)
968	),
969	!.
970'CHR::_2'(A :: B, C, D, E) ?-
971	coca(try_rule(E, A :: B, anonymous("15"), F :: G, replacement, nonground(G), (write('ERROR: Nonground Domain in '), writeln(F :: G), abort))),
972	no_delayed_goals(nonground(B)),
973	!,
974	'CHRkill'(C),
975	coca(fired_rule(anonymous("15"))),
976	write('ERROR: Nonground Domain in '),
977	writeln(A :: B),
978	abort.
979'CHR::_2'([A|B] :: C, D, E, F) ?-
980	coca(try_rule(F, [A|B] :: C, anonymous("16"), [G|H] :: I, replacement, true, makedom([G|H], I))),
981	!,
982	'CHRkill'(D),
983	coca(fired_rule(anonymous("16"))),
984	makedom([A|B], C).
985'CHR::_2'(A :: B .. C, D, E, F) ?-
986	coca(try_rule(F, A :: B .. C, anonymous("17"), G :: H .. I, replacement, true, (J is H, (J =:= round(J) -> K is fix(J) ; K is fix(J + 1)), L is fix(I), interval(K, L, M), G :: M))),
987	!,
988	'CHRkill'(D),
989	coca(fired_rule(anonymous("17"))),
990	N is B,
991	(
992	    N =:= round(N)
993	->
994	    O is fix(N)
995	;
996	    O is fix(N + 1)
997	),
998	P is fix(C),
999	interval(O, P, Q),
1000	A :: Q.
1001'CHR::_2'(A :: [B|C], D, E, F) ?-
1002	coca(try_rule(F, A :: [B|C], anonymous("18"), G :: [H|I], replacement, (domain(number), member(G, [H|I]), not number(G)), (eval_list([H|I], J), sort(J, K), G :: K))),
1003	no_delayed_goals((domain(number), member(A, [B|C]), not number(A))),
1004	!,
1005	'CHRkill'(D),
1006	coca(fired_rule(anonymous("18"))),
1007	eval_list([B|C], L),
1008	sort(L, M),
1009	A :: M.
1010'CHR::_2'(A :: [], B, C, D) ?-
1011	coca(try_rule(D, A :: [], anonymous("19"), E :: [], replacement, true, fail)),
1012	!,
1013	'CHRkill'(B),
1014	coca(fired_rule(anonymous("19"))),
1015	fail.
1016'CHR::_2'(A :: [B], C, D, E) ?-
1017	coca(try_rule(E, A :: [B], anonymous("20"), F :: [G], replacement, true, F = G)),
1018	!,
1019	'CHRkill'(C),
1020	coca(fired_rule(anonymous("20"))),
1021	A = B.
1022'CHR::_2'(A :: [B|C], D, E, F) ?-
1023	coca(try_rule(F, A :: [B|C], anonymous("21"), G :: [H|I], replacement, ground(G), member(G, [H|I]) -> true)),
1024	no_delayed_goals(ground(A)),
1025	!,
1026	'CHRkill'(D),
1027	coca(fired_rule(anonymous("21"))),
1028	(
1029	    member(A, [B|C])
1030	->
1031	    true
1032	).
1033'CHR::_2'(A :: B : C, D, E, F) ?-
1034	coca(try_rule(F, A :: B : C, anonymous("34"), G :: H : I, replacement, (domain(number), not (number(H), number(I))), (J is H, K is I, G :: J : K))),
1035	no_delayed_goals((domain(number), not (number(B), number(C)))),
1036	!,
1037	'CHRkill'(D),
1038	coca(fired_rule(anonymous("34"))),
1039	L is B,
1040	M is C,
1041	A :: L : M.
1042'CHR::_2'(A :: B : B, C, D, E) ?-
1043	coca(try_rule(E, A :: B : B, anonymous("35"), F :: G : G, replacement, true, F = G)),
1044	!,
1045	'CHRkill'(C),
1046	coca(fired_rule(anonymous("35"))),
1047	A = B.
1048'CHR::_2'(A :: B : C, D, E, F) ?-
1049	coca(try_rule(F, A :: B : C, anonymous("36"), G :: H : I, replacement, domain(number) -> H > I ; H @> I, fail)),
1050	no_delayed_goals(domain(number) -> B > C ; B @> C),
1051	!,
1052	'CHRkill'(D),
1053	coca(fired_rule(anonymous("36"))),
1054	fail.
1055'CHR::_2'(A :: B : C, D, E, F) ?-
1056	coca(try_rule(F, A :: B : C, anonymous("37"), G :: H : I, replacement, ground(G), domain(number) -> (H =< G, G =< I) ; (H @=< G, G @=< I))),
1057	no_delayed_goals(ground(A)),
1058	!,
1059	'CHRkill'(D),
1060	coca(fired_rule(anonymous("37"))),
1061	(
1062	    domain(number)
1063	->
1064	    B =< A,
1065	    A =< C
1066	;
1067	    B @=< A,
1068	    A @=< C
1069	).
1070'CHR::_2'(A - A :: B, C, D, E) ?-
1071	coca(try_rule(E, A - A :: B, anonymous("53"), F - F :: G, replacement, true, (setof(H, member(H - H, G), I), F :: I))),
1072	!,
1073	'CHRkill'(C),
1074	coca(fired_rule(anonymous("53"))),
1075	setof(J, member(J - J, B), K),
1076	A :: K.
1077'CHR::_2'(A - B :: C, D, E, F) ?-
1078	coca(try_rule(F, A - B :: C, anonymous("54"), G - H :: I, replacement, ground(G), (setof(J, member(G - J, I), K), H :: K))),
1079	no_delayed_goals(ground(A)),
1080	!,
1081	'CHRkill'(D),
1082	coca(fired_rule(anonymous("54"))),
1083	setof(L, member(A - L, C), M),
1084	B :: M.
1085'CHR::_2'(A - B :: C, D, E, F) ?-
1086	coca(try_rule(F, A - B :: C, anonymous("55"), G - H :: I, replacement, ground(H), (setof(J, member(J - H, I), K), G :: K))),
1087	no_delayed_goals(ground(B)),
1088	!,
1089	'CHRkill'(D),
1090	coca(fired_rule(anonymous("55"))),
1091	setof(L, member(L - B, C), M),
1092	A :: M.
1093'CHR::_2'(A :: B, C, D, E) :-
1094	'CHR::_2__125'(A :: B, C, D, E).
1095:- set_flag('CHR::_2' / 4, leash, notrace).
1096:- current_macro('CHR::_2' / 4, _42135, _42136, _42137) -> true ; define_macro('CHR::_2' / 4, tr_chr / 2, [write]).
1097'CHR::_2__125'(A - B :: C, D, E, F) ?-
1098	'CHRvar'(D),
1099	'CHRcheck_and_mark_applied'('CHR::_2__125', E),
1100	coca(try_rule(F, A - B :: C, anonymous("66"), G - H :: I, augmentation, true, (J = K - L, setof(K, J ^ member(J, I), M), G :: M, setof(L, J ^ member(J, I), N), H :: N))),
1101	!,
1102	'CHR::_2__125__127'(A - B :: C, D, E, F),
1103	coca(fired_rule(anonymous("66"))),
1104	O = P - Q,
1105	setof(P, O ^ member(O, C), R),
1106	A :: R,
1107	setof(Q, O ^ member(O, C), S),
1108	B :: S.
1109'CHR::_2__125'(A, B, C, D) ?-
1110	'CHR::_2__125__127'(A, B, C, D).
1111:- set_flag('CHR::_2__125' / 4, leash, notrace).
1112'CHR::_2__125__127'(A, B, C, D) :-
1113	'CHR::_2__126'(A, B, C, D).
1114:- set_flag('CHR::_2__125__127' / 4, leash, notrace).
1115'CHR::_2__126'(A :: [B|C], D, E, F) ?-
1116	'CHRvar'(D),
1117	!,
1118	'CHRget_delayed_goals'(A, G),
1119	'CHR::_2__126__128'(G, D, A :: [B|C], E, F).
1120'CHR::_2__126'(A :: B, C, D, E) :-
1121	'CHR::_2__126__129'(A :: B, C, D, E).
1122:- set_flag('CHR::_2__126' / 4, leash, notrace).
1123'CHR::_2__126__128'(['CHRne_2'(ne(A, B), C, D, E)|F], G, A :: [H|I], J, K) ?-
1124	'CHRvar'(C),
1125	coca(try_double(K, A :: [H|I], E, ne(A, B), L :: [M|N], ne(L, O), keep_first, ((ground(O), remove(O, [M|N], P)), 'CHRkeep_heads_checking'(L :: [M|N], Q, L :: P, R)), 'CHRhead_not_kept'(R) -> L :: P ; true, anonymous("23"))),
1126	no_delayed_goals(((ground(B), remove(B, [H|I], S)), 'CHRkeep_heads_checking'(A :: [H|I], G, A :: S, T))),
1127	!,
1128	'CHRkill'(C),
1129	coca(fired_rule(anonymous("23"))),
1130	'CHR::_2__126__128'(F, G, A :: [H|I], J, K),
1131	(
1132	    'CHRhead_not_kept'(T)
1133	->
1134	    A :: S
1135	;
1136	    true
1137	).
1138'CHR::_2__126__128'([A|B], C, D, E, F) :-
1139	'CHR::_2__126__128'(B, C, D, E, F).
1140'CHR::_2__126__128'([], A, B, C, D) :-
1141	'CHR::_2__126__129'(B, A, C, D).
1142:- set_flag('CHR::_2__126__128' / 5, leash, notrace).
1143'CHR::_2__126__129'(A :: [B|C], D, E, F) ?-
1144	'CHRvar'(D),
1145	!,
1146	'CHRget_delayed_goals'(A, G),
1147	'CHR::_2__126__129__130'(G, D, A :: [B|C], E, F).
1148'CHR::_2__126__129'(A :: B, C, D, E) :-
1149	'CHR::_2__126__129__131'(A :: B, C, D, E).
1150:- set_flag('CHR::_2__126__129' / 4, leash, notrace).
1151'CHR::_2__126__129__130'(['CHRne_2'(ne(A, B), C, D, E)|F], G, B :: [H|I], J, K) ?-
1152	'CHRvar'(C),
1153	coca(try_double(K, B :: [H|I], E, ne(A, B), L :: [M|N], ne(O, L), keep_first, ((ground(O), remove(O, [M|N], P)), 'CHRkeep_heads_checking'(L :: [M|N], Q, L :: P, R)), 'CHRhead_not_kept'(R) -> L :: P ; true, anonymous("24"))),
1154	no_delayed_goals(((ground(A), remove(A, [H|I], S)), 'CHRkeep_heads_checking'(B :: [H|I], G, B :: S, T))),
1155	!,
1156	'CHRkill'(C),
1157	coca(fired_rule(anonymous("24"))),
1158	'CHR::_2__126__129__130'(F, G, B :: [H|I], J, K),
1159	(
1160	    'CHRhead_not_kept'(T)
1161	->
1162	    B :: S
1163	;
1164	    true
1165	).
1166'CHR::_2__126__129__130'([A|B], C, D, E, F) :-
1167	'CHR::_2__126__129__130'(B, C, D, E, F).
1168'CHR::_2__126__129__130'([], A, B, C, D) :-
1169	'CHR::_2__126__129__131'(B, A, C, D).
1170:- set_flag('CHR::_2__126__129__130' / 5, leash, notrace).
1171'CHR::_2__126__129__131'(A :: [B|C], D, E, F) ?-
1172	'CHRvar'(D),
1173	!,
1174	'CHRget_delayed_goals'(A, G),
1175	'CHR::_2__126__129__131__132'(G, D, A :: [B|C], E, F).
1176'CHR::_2__126__129__131'(A :: B, C, D, E) :-
1177	'CHR::_2__126__129__131__133'(A :: B, C, D, E).
1178:- set_flag('CHR::_2__126__129__131' / 4, leash, notrace).
1179'CHR::_2__126__129__131__132'(['CHRle_2'(le(A, B), C, D, E)|F], G, B :: [H|I], J, K) ?-
1180	'CHRvar'(C),
1181	coca(try_double(K, B :: [H|I], E, le(A, B), L :: [M|N], le(O, L), keep_first, ((ground(O), remove_lower(O, [M|N], P)), 'CHRkeep_heads_checking'(L :: [M|N], Q, L :: P, R)), 'CHRhead_not_kept'(R) -> L :: P ; true, anonymous("25"))),
1182	no_delayed_goals(((ground(A), remove_lower(A, [H|I], S)), 'CHRkeep_heads_checking'(B :: [H|I], G, B :: S, T))),
1183	!,
1184	'CHRkill'(C),
1185	coca(fired_rule(anonymous("25"))),
1186	'CHR::_2__126__129__131__132'(F, G, B :: [H|I], J, K),
1187	(
1188	    'CHRhead_not_kept'(T)
1189	->
1190	    B :: S
1191	;
1192	    true
1193	).
1194'CHR::_2__126__129__131__132'([A|B], C, D, E, F) :-
1195	'CHR::_2__126__129__131__132'(B, C, D, E, F).
1196'CHR::_2__126__129__131__132'([], A, B, C, D) :-
1197	'CHR::_2__126__129__131__133'(B, A, C, D).
1198:- set_flag('CHR::_2__126__129__131__132' / 5, leash, notrace).
1199'CHR::_2__126__129__131__133'(A :: [B|C], D, E, F) ?-
1200	'CHRvar'(D),
1201	!,
1202	'CHRget_delayed_goals'(A, G),
1203	'CHR::_2__126__129__131__133__134'(G, D, A :: [B|C], E, F).
1204'CHR::_2__126__129__131__133'(A :: B, C, D, E) :-
1205	'CHR::_2__126__129__131__133__135'(A :: B, C, D, E).
1206:- set_flag('CHR::_2__126__129__131__133' / 4, leash, notrace).
1207'CHR::_2__126__129__131__133__134'(['CHRle_2'(le(A, B), C, D, E)|F], G, A :: [H|I], J, K) ?-
1208	'CHRvar'(C),
1209	coca(try_double(K, A :: [H|I], E, le(A, B), L :: [M|N], le(L, O), keep_first, ((ground(O), remove_higher(O, [M|N], P)), 'CHRkeep_heads_checking'(L :: [M|N], Q, L :: P, R)), 'CHRhead_not_kept'(R) -> L :: P ; true, anonymous("26"))),
1210	no_delayed_goals(((ground(B), remove_higher(B, [H|I], S)), 'CHRkeep_heads_checking'(A :: [H|I], G, A :: S, T))),
1211	!,
1212	'CHRkill'(C),
1213	coca(fired_rule(anonymous("26"))),
1214	'CHR::_2__126__129__131__133__134'(F, G, A :: [H|I], J, K),
1215	(
1216	    'CHRhead_not_kept'(T)
1217	->
1218	    A :: S
1219	;
1220	    true
1221	).
1222'CHR::_2__126__129__131__133__134'([A|B], C, D, E, F) :-
1223	'CHR::_2__126__129__131__133__134'(B, C, D, E, F).
1224'CHR::_2__126__129__131__133__134'([], A, B, C, D) :-
1225	'CHR::_2__126__129__131__133__135'(B, A, C, D).
1226:- set_flag('CHR::_2__126__129__131__133__134' / 5, leash, notrace).
1227'CHR::_2__126__129__131__133__135'(A :: [B|C], D, E, F) ?-
1228	'CHRvar'(D),
1229	!,
1230	'CHRget_delayed_goals'(A, G),
1231	'CHR::_2__126__129__131__133__135__136'(G, D, A :: [B|C], E, F).
1232'CHR::_2__126__129__131__133__135'(A :: B, C, D, E) :-
1233	'CHR::_2__126__129__131__133__135__137'(A :: B, C, D, E).
1234:- set_flag('CHR::_2__126__129__131__133__135' / 4, leash, notrace).
1235'CHR::_2__126__129__131__133__135__136'(['CHRlt_2'(lt(A, B), C, D, E)|F], G, B :: [H|I], J, K) ?-
1236	'CHRvar'(C),
1237	coca(try_double(K, B :: [H|I], E, lt(A, B), L :: [M|N], lt(O, L), keep_first, ((ground(O), remove_lower(O, [M|N], P), remove(O, P, Q)), 'CHRkeep_heads_checking'(L :: [M|N], R, L :: Q, S)), 'CHRhead_not_kept'(S) -> L :: Q ; true, anonymous("27"))),
1238	no_delayed_goals(((ground(A), remove_lower(A, [H|I], T), remove(A, T, U)), 'CHRkeep_heads_checking'(B :: [H|I], G, B :: U, V))),
1239	!,
1240	'CHRkill'(C),
1241	coca(fired_rule(anonymous("27"))),
1242	'CHR::_2__126__129__131__133__135__136'(F, G, B :: [H|I], J, K),
1243	(
1244	    'CHRhead_not_kept'(V)
1245	->
1246	    B :: U
1247	;
1248	    true
1249	).
1250'CHR::_2__126__129__131__133__135__136'([A|B], C, D, E, F) :-
1251	'CHR::_2__126__129__131__133__135__136'(B, C, D, E, F).
1252'CHR::_2__126__129__131__133__135__136'([], A, B, C, D) :-
1253	'CHR::_2__126__129__131__133__135__137'(B, A, C, D).
1254:- set_flag('CHR::_2__126__129__131__133__135__136' / 5, leash, notrace).
1255'CHR::_2__126__129__131__133__135__137'(A :: [B|C], D, E, F) ?-
1256	'CHRvar'(D),
1257	!,
1258	'CHRget_delayed_goals'(A, G),
1259	'CHR::_2__126__129__131__133__135__137__138'(G, D, A :: [B|C], E, F).
1260'CHR::_2__126__129__131__133__135__137'(A :: B, C, D, E) :-
1261	'CHR::_2__126__129__131__133__135__137__139'(A :: B, C, D, E).
1262:- set_flag('CHR::_2__126__129__131__133__135__137' / 4, leash, notrace).
1263'CHR::_2__126__129__131__133__135__137__138'(['CHRlt_2'(lt(A, B), C, D, E)|F], G, A :: [H|I], J, K) ?-
1264	'CHRvar'(C),
1265	coca(try_double(K, A :: [H|I], E, lt(A, B), L :: [M|N], lt(L, O), keep_first, ((ground(O), remove_higher(O, [M|N], P), remove(O, P, Q)), 'CHRkeep_heads_checking'(L :: [M|N], R, L :: Q, S)), 'CHRhead_not_kept'(S) -> L :: Q ; true, anonymous("28"))),
1266	no_delayed_goals(((ground(B), remove_higher(B, [H|I], T), remove(B, T, U)), 'CHRkeep_heads_checking'(A :: [H|I], G, A :: U, V))),
1267	!,
1268	'CHRkill'(C),
1269	coca(fired_rule(anonymous("28"))),
1270	'CHR::_2__126__129__131__133__135__137__138'(F, G, A :: [H|I], J, K),
1271	(
1272	    'CHRhead_not_kept'(V)
1273	->
1274	    A :: U
1275	;
1276	    true
1277	).
1278'CHR::_2__126__129__131__133__135__137__138'([A|B], C, D, E, F) :-
1279	'CHR::_2__126__129__131__133__135__137__138'(B, C, D, E, F).
1280'CHR::_2__126__129__131__133__135__137__138'([], A, B, C, D) :-
1281	'CHR::_2__126__129__131__133__135__137__139'(B, A, C, D).
1282:- set_flag('CHR::_2__126__129__131__133__135__137__138' / 5, leash, notrace).
1283'CHR::_2__126__129__131__133__135__137__139'(A :: B : C, D, E, F) ?-
1284	'CHRvar'(D),
1285	!,
1286	'CHRget_delayed_goals'(A, G),
1287	'CHR::_2__126__129__131__133__135__137__139__140'(G, D, A :: B : C, E, F).
1288'CHR::_2__126__129__131__133__135__137__139'(A :: B, C, D, E) :-
1289	'CHR::_2__126__129__131__133__135__137__139__141'(A :: B, C, D, E).
1290:- set_flag('CHR::_2__126__129__131__133__135__137__139' / 4, leash, notrace).
1291'CHR::_2__126__129__131__133__135__137__139__140'(['CHRne_2'(ne(A, B), C, D, E)|F], G, A :: H : I, J, K) ?-
1292	'CHRvar'(C),
1293	coca(try_double(K, A :: H : I, E, ne(A, B), L :: M : N, ne(L, O), keep_first, (ground(O), (domain(number) -> (O < M ; O > N) ; O @< M ; O @> N)), true, anonymous("39"))),
1294	no_delayed_goals((ground(B), (domain(number) -> (B < H ; B > I) ; B @< H ; B @> I))),
1295	!,
1296	'CHRkill'(C),
1297	coca(fired_rule(anonymous("39"))),
1298	'CHR::_2__126__129__131__133__135__137__139__140'(F, G, A :: H : I, J, K).
1299'CHR::_2__126__129__131__133__135__137__139__140'([A|B], C, D, E, F) :-
1300	'CHR::_2__126__129__131__133__135__137__139__140'(B, C, D, E, F).
1301'CHR::_2__126__129__131__133__135__137__139__140'([], A, B, C, D) :-
1302	'CHR::_2__126__129__131__133__135__137__139__141'(B, A, C, D).
1303:- set_flag('CHR::_2__126__129__131__133__135__137__139__140' / 5, leash, notrace).
1304'CHR::_2__126__129__131__133__135__137__139__141'(A :: B : C, D, E, F) ?-
1305	'CHRvar'(D),
1306	!,
1307	'CHRget_delayed_goals'(A, G),
1308	'CHR::_2__126__129__131__133__135__137__139__141__142'(G, D, A :: B : C, E, F).
1309'CHR::_2__126__129__131__133__135__137__139__141'(A :: B, C, D, E) :-
1310	'CHR::_2__126__129__131__133__135__137__139__141__143'(A :: B, C, D, E).
1311:- set_flag('CHR::_2__126__129__131__133__135__137__139__141' / 4, leash, notrace).
1312'CHR::_2__126__129__131__133__135__137__139__141__142'(['CHRne_2'(ne(A, B), C, D, E)|F], G, B :: H : I, J, K) ?-
1313	'CHRvar'(C),
1314	coca(try_double(K, B :: H : I, E, ne(A, B), L :: M : N, ne(O, L), keep_first, (ground(O), (domain(number) -> (O < M ; O > N) ; O @< M ; O @> N)), true, anonymous("40"))),
1315	no_delayed_goals((ground(A), (domain(number) -> (A < H ; A > I) ; A @< H ; A @> I))),
1316	!,
1317	'CHRkill'(C),
1318	coca(fired_rule(anonymous("40"))),
1319	'CHR::_2__126__129__131__133__135__137__139__141__142'(F, G, B :: H : I, J, K).
1320'CHR::_2__126__129__131__133__135__137__139__141__142'([A|B], C, D, E, F) :-
1321	'CHR::_2__126__129__131__133__135__137__139__141__142'(B, C, D, E, F).
1322'CHR::_2__126__129__131__133__135__137__139__141__142'([], A, B, C, D) :-
1323	'CHR::_2__126__129__131__133__135__137__139__141__143'(B, A, C, D).
1324:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__142' / 5, leash, notrace).
1325'CHR::_2__126__129__131__133__135__137__139__141__143'(A :: B : C, D, E, F) ?-
1326	'CHRvar'(D),
1327	!,
1328	'CHRget_delayed_goals'(A, G),
1329	'CHR::_2__126__129__131__133__135__137__139__141__143__144'(G, D, A :: B : C, E, F).
1330'CHR::_2__126__129__131__133__135__137__139__141__143'(A :: B, C, D, E) :-
1331	'CHR::_2__126__129__131__133__135__137__139__141__143__145'(A :: B, C, D, E).
1332:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143' / 4, leash, notrace).
1333'CHR::_2__126__129__131__133__135__137__139__141__143__144'(['CHRle_2'(le(A, B), C, D, E)|F], G, B :: H : I, J, K) ?-
1334	'CHRvar'(C),
1335	coca(try_double(K, B :: H : I, E, le(A, B), L :: M : N, le(O, L), keep_first, ((ground(O), maximum(M, O, P)), 'CHRkeep_heads_checking'(L :: M : N, Q, L :: P : N, R)), 'CHRhead_not_kept'(R) -> L :: P : N ; true, anonymous("41"))),
1336	no_delayed_goals(((ground(A), maximum(H, A, S)), 'CHRkeep_heads_checking'(B :: H : I, G, B :: S : I, T))),
1337	!,
1338	'CHRkill'(C),
1339	coca(fired_rule(anonymous("41"))),
1340	'CHR::_2__126__129__131__133__135__137__139__141__143__144'(F, G, B :: H : I, J, K),
1341	(
1342	    'CHRhead_not_kept'(T)
1343	->
1344	    B :: S : I
1345	;
1346	    true
1347	).
1348'CHR::_2__126__129__131__133__135__137__139__141__143__144'([A|B], C, D, E, F) :-
1349	'CHR::_2__126__129__131__133__135__137__139__141__143__144'(B, C, D, E, F).
1350'CHR::_2__126__129__131__133__135__137__139__141__143__144'([], A, B, C, D) :-
1351	'CHR::_2__126__129__131__133__135__137__139__141__143__145'(B, A, C, D).
1352:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__144' / 5, leash, notrace).
1353'CHR::_2__126__129__131__133__135__137__139__141__143__145'(A :: B : C, D, E, F) ?-
1354	'CHRvar'(D),
1355	!,
1356	'CHRget_delayed_goals'(A, G),
1357	'CHR::_2__126__129__131__133__135__137__139__141__143__145__146'(G, D, A :: B : C, E, F).
1358'CHR::_2__126__129__131__133__135__137__139__141__143__145'(A :: B, C, D, E) :-
1359	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147'(A :: B, C, D, E).
1360:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145' / 4, leash, notrace).
1361'CHR::_2__126__129__131__133__135__137__139__141__143__145__146'(['CHRle_2'(le(A, B), C, D, E)|F], G, A :: H : I, J, K) ?-
1362	'CHRvar'(C),
1363	coca(try_double(K, A :: H : I, E, le(A, B), L :: M : N, le(L, O), keep_first, ((ground(O), minimum(N, O, P)), 'CHRkeep_heads_checking'(L :: M : N, Q, L :: M : P, R)), 'CHRhead_not_kept'(R) -> L :: M : P ; true, anonymous("42"))),
1364	no_delayed_goals(((ground(B), minimum(I, B, S)), 'CHRkeep_heads_checking'(A :: H : I, G, A :: H : S, T))),
1365	!,
1366	'CHRkill'(C),
1367	coca(fired_rule(anonymous("42"))),
1368	'CHR::_2__126__129__131__133__135__137__139__141__143__145__146'(F, G, A :: H : I, J, K),
1369	(
1370	    'CHRhead_not_kept'(T)
1371	->
1372	    A :: H : S
1373	;
1374	    true
1375	).
1376'CHR::_2__126__129__131__133__135__137__139__141__143__145__146'([A|B], C, D, E, F) :-
1377	'CHR::_2__126__129__131__133__135__137__139__141__143__145__146'(B, C, D, E, F).
1378'CHR::_2__126__129__131__133__135__137__139__141__143__145__146'([], A, B, C, D) :-
1379	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147'(B, A, C, D).
1380:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__146' / 5, leash, notrace).
1381'CHR::_2__126__129__131__133__135__137__139__141__143__145__147'(A :: B : C, D, E, F) ?-
1382	'CHRvar'(D),
1383	!,
1384	'CHRget_delayed_goals'(A, G),
1385	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__148'(G, D, A :: B : C, E, F).
1386'CHR::_2__126__129__131__133__135__137__139__141__143__145__147'(A :: B, C, D, E) :-
1387	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149'(A :: B, C, D, E).
1388:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147' / 4, leash, notrace).
1389'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__148'(['CHRlt_2'(lt(A, B), C, D, E)|F], G, B :: H : I, J, K) ?-
1390	'CHRvar'(C),
1391	coca(try_double(K, B :: H : I, E, lt(A, B), L :: M : N, lt(O, L), keep_first, ((ground(O), maximum(M, O, P)), 'CHRkeep_heads_checking'(L :: M : N, Q, L :: P : N, R)), (('CHRhead_not_kept'(R) -> L :: P : N ; true), ne(L, P)), anonymous("43"))),
1392	no_delayed_goals(((ground(A), maximum(H, A, S)), 'CHRkeep_heads_checking'(B :: H : I, G, B :: S : I, T))),
1393	!,
1394	'CHRkill'(C),
1395	coca(fired_rule(anonymous("43"))),
1396	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__148'(F, G, B :: H : I, J, K),
1397	(
1398	    'CHRhead_not_kept'(T)
1399	->
1400	    B :: S : I
1401	;
1402	    true
1403	),
1404	ne(B, S).
1405'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__148'([A|B], C, D, E, F) :-
1406	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__148'(B, C, D, E, F).
1407'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__148'([], A, B, C, D) :-
1408	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149'(B, A, C, D).
1409:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__148' / 5, leash, notrace).
1410'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149'(A :: B : C, D, E, F) ?-
1411	'CHRvar'(D),
1412	!,
1413	'CHRget_delayed_goals'(A, G),
1414	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__150'(G, D, A :: B : C, E, F).
1415'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149'(A :: B, C, D, E) :-
1416	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151'(A :: B, C, D, E).
1417:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149' / 4, leash, notrace).
1418'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__150'(['CHRlt_2'(lt(A, B), C, D, E)|F], G, A :: H : I, J, K) ?-
1419	'CHRvar'(C),
1420	coca(try_double(K, A :: H : I, E, lt(A, B), L :: M : N, lt(L, O), keep_first, ((ground(O), minimum(N, O, P)), 'CHRkeep_heads_checking'(L :: M : N, Q, L :: M : P, R)), (('CHRhead_not_kept'(R) -> L :: M : P ; true), ne(L, P)), anonymous("44"))),
1421	no_delayed_goals(((ground(B), minimum(I, B, S)), 'CHRkeep_heads_checking'(A :: H : I, G, A :: H : S, T))),
1422	!,
1423	'CHRkill'(C),
1424	coca(fired_rule(anonymous("44"))),
1425	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__150'(F, G, A :: H : I, J, K),
1426	(
1427	    'CHRhead_not_kept'(T)
1428	->
1429	    A :: H : S
1430	;
1431	    true
1432	),
1433	ne(A, S).
1434'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__150'([A|B], C, D, E, F) :-
1435	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__150'(B, C, D, E, F).
1436'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__150'([], A, B, C, D) :-
1437	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151'(B, A, C, D).
1438:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__150' / 5, leash, notrace).
1439'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151'(A - B :: C, D, E, F) ?-
1440	'CHRvar'(D),
1441	!,
1442	'CHRget_delayed_goals'(B, G),
1443	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__152'(G, D, A - B :: C, E, F).
1444'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151'(A :: B, C, D, E) :-
1445	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153'(A :: B, C, D, E).
1446:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151' / 4, leash, notrace).
1447'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__152'(['CHRlt_2'(lt(A, B), C, D, E)|F], G, B - A :: H, I, J) ?-
1448	'CHRvar'(C),
1449	coca(try_double(J, B - A :: H, E, lt(A, B), K - L :: M, lt(L, K), keep_first, ((N = O - P, findall(N, (member(N, M), O @< P), Q)), 'CHRkeep_heads_checking'(K - L :: M, R, K - L :: Q, S)), 'CHRhead_not_kept'(S) -> K - L :: Q ; true, anonymous("60"))),
1450	no_delayed_goals(((T = U - V, findall(T, (member(T, H), U @< V), W)), 'CHRkeep_heads_checking'(B - A :: H, G, B - A :: W, X))),
1451	!,
1452	'CHRkill'(C),
1453	coca(fired_rule(anonymous("60"))),
1454	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__152'(F, G, B - A :: H, I, J),
1455	(
1456	    'CHRhead_not_kept'(X)
1457	->
1458	    B - A :: W
1459	;
1460	    true
1461	).
1462'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__152'([A|B], C, D, E, F) :-
1463	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__152'(B, C, D, E, F).
1464'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__152'([], A, B, C, D) :-
1465	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153'(B, A, C, D).
1466:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__152' / 5, leash, notrace).
1467'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153'(A - B :: C, D, E, F) ?-
1468	'CHRvar'(D),
1469	!,
1470	'CHRget_delayed_goals'(B, G),
1471	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__154'(G, D, A - B :: C, E, F).
1472'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153'(A :: B, C, D, E) :-
1473	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155'(A :: B, C, D, E).
1474:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153' / 4, leash, notrace).
1475'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__154'(['CHRlt_2'(lt(A, B), C, D, E)|F], G, A - B :: H, I, J) ?-
1476	'CHRvar'(C),
1477	coca(try_double(J, A - B :: H, E, lt(A, B), K - L :: M, lt(K, L), keep_first, ((N = O - P, findall(N, (member(N, M), P @< O), Q)), 'CHRkeep_heads_checking'(K - L :: M, R, K - L :: Q, S)), 'CHRhead_not_kept'(S) -> K - L :: Q ; true, anonymous("61"))),
1478	no_delayed_goals(((T = U - V, findall(T, (member(T, H), V @< U), W)), 'CHRkeep_heads_checking'(A - B :: H, G, A - B :: W, X))),
1479	!,
1480	'CHRkill'(C),
1481	coca(fired_rule(anonymous("61"))),
1482	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__154'(F, G, A - B :: H, I, J),
1483	(
1484	    'CHRhead_not_kept'(X)
1485	->
1486	    A - B :: W
1487	;
1488	    true
1489	).
1490'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__154'([A|B], C, D, E, F) :-
1491	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__154'(B, C, D, E, F).
1492'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__154'([], A, B, C, D) :-
1493	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155'(B, A, C, D).
1494:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__154' / 5, leash, notrace).
1495'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155'(A - B :: C, D, E, F) ?-
1496	'CHRvar'(D),
1497	!,
1498	'CHRget_delayed_goals'(B, G),
1499	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__156'(G, D, A - B :: C, E, F).
1500'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155'(A :: B, C, D, E) :-
1501	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157'(A :: B, C, D, E).
1502:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155' / 4, leash, notrace).
1503'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__156'(['CHRle_2'(le(A, B), C, D, E)|F], G, B - A :: H, I, J) ?-
1504	'CHRvar'(C),
1505	coca(try_double(J, B - A :: H, E, le(A, B), K - L :: M, le(L, K), keep_first, ((N = O - P, findall(N, (member(N, M), O @=< P), Q)), 'CHRkeep_heads_checking'(K - L :: M, R, K - L :: Q, S)), 'CHRhead_not_kept'(S) -> K - L :: Q ; true, anonymous("62"))),
1506	no_delayed_goals(((T = U - V, findall(T, (member(T, H), U @=< V), W)), 'CHRkeep_heads_checking'(B - A :: H, G, B - A :: W, X))),
1507	!,
1508	'CHRkill'(C),
1509	coca(fired_rule(anonymous("62"))),
1510	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__156'(F, G, B - A :: H, I, J),
1511	(
1512	    'CHRhead_not_kept'(X)
1513	->
1514	    B - A :: W
1515	;
1516	    true
1517	).
1518'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__156'([A|B], C, D, E, F) :-
1519	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__156'(B, C, D, E, F).
1520'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__156'([], A, B, C, D) :-
1521	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157'(B, A, C, D).
1522:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__156' / 5, leash, notrace).
1523'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157'(A - B :: C, D, E, F) ?-
1524	'CHRvar'(D),
1525	!,
1526	'CHRget_delayed_goals'(B, G),
1527	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__158'(G, D, A - B :: C, E, F).
1528'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157'(A :: B, C, D, E) :-
1529	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159'(A :: B, C, D, E).
1530:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157' / 4, leash, notrace).
1531'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__158'(['CHRle_2'(le(A, B), C, D, E)|F], G, A - B :: H, I, J) ?-
1532	'CHRvar'(C),
1533	coca(try_double(J, A - B :: H, E, le(A, B), K - L :: M, le(K, L), keep_first, ((N = O - P, findall(N, (member(N, M), P @=< O), Q)), 'CHRkeep_heads_checking'(K - L :: M, R, K - L :: Q, S)), 'CHRhead_not_kept'(S) -> K - L :: Q ; true, anonymous("63"))),
1534	no_delayed_goals(((T = U - V, findall(T, (member(T, H), V @=< U), W)), 'CHRkeep_heads_checking'(A - B :: H, G, A - B :: W, X))),
1535	!,
1536	'CHRkill'(C),
1537	coca(fired_rule(anonymous("63"))),
1538	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__158'(F, G, A - B :: H, I, J),
1539	(
1540	    'CHRhead_not_kept'(X)
1541	->
1542	    A - B :: W
1543	;
1544	    true
1545	).
1546'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__158'([A|B], C, D, E, F) :-
1547	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__158'(B, C, D, E, F).
1548'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__158'([], A, B, C, D) :-
1549	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159'(B, A, C, D).
1550:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__158' / 5, leash, notrace).
1551'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159'(A - B :: C, D, E, F) ?-
1552	'CHRvar'(D),
1553	!,
1554	'CHRget_delayed_goals'(B, G),
1555	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__160'(G, D, A - B :: C, E, F).
1556'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159'(A :: B, C, D, E) :-
1557	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161'(A :: B, C, D, E).
1558:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159' / 4, leash, notrace).
1559'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__160'(['CHRne_2'(ne(A, B), C, D, E)|F], G, B - A :: H, I, J) ?-
1560	'CHRvar'(C),
1561	coca(try_double(J, B - A :: H, E, ne(A, B), K - L :: M, ne(L, K), keep_first, ((N = O - P, findall(N, (member(N, M), O \== P), Q)), 'CHRkeep_heads_checking'(K - L :: M, R, K - L :: Q, S)), 'CHRhead_not_kept'(S) -> K - L :: Q ; true, anonymous("64"))),
1562	no_delayed_goals(((T = U - V, findall(T, (member(T, H), U \== V), W)), 'CHRkeep_heads_checking'(B - A :: H, G, B - A :: W, X))),
1563	!,
1564	'CHRkill'(C),
1565	coca(fired_rule(anonymous("64"))),
1566	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__160'(F, G, B - A :: H, I, J),
1567	(
1568	    'CHRhead_not_kept'(X)
1569	->
1570	    B - A :: W
1571	;
1572	    true
1573	).
1574'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__160'([A|B], C, D, E, F) :-
1575	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__160'(B, C, D, E, F).
1576'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__160'([], A, B, C, D) :-
1577	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161'(B, A, C, D).
1578:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__160' / 5, leash, notrace).
1579'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161'(A - B :: C, D, E, F) ?-
1580	'CHRvar'(D),
1581	!,
1582	'CHRget_delayed_goals'(B, G),
1583	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__162'(G, D, A - B :: C, E, F).
1584'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161'(A :: B, C, D, E) :-
1585	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163'(A :: B, C, D, E).
1586:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161' / 4, leash, notrace).
1587'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__162'(['CHRne_2'(ne(A, B), C, D, E)|F], G, A - B :: H, I, J) ?-
1588	'CHRvar'(C),
1589	coca(try_double(J, A - B :: H, E, ne(A, B), K - L :: M, ne(K, L), keep_first, ((N = O - P, findall(N, (member(N, M), P \== O), Q)), 'CHRkeep_heads_checking'(K - L :: M, R, K - L :: Q, S)), 'CHRhead_not_kept'(S) -> K - L :: Q ; true, anonymous("65"))),
1590	no_delayed_goals(((T = U - V, findall(T, (member(T, H), V \== U), W)), 'CHRkeep_heads_checking'(A - B :: H, G, A - B :: W, X))),
1591	!,
1592	'CHRkill'(C),
1593	coca(fired_rule(anonymous("65"))),
1594	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__162'(F, G, A - B :: H, I, J),
1595	(
1596	    'CHRhead_not_kept'(X)
1597	->
1598	    A - B :: W
1599	;
1600	    true
1601	).
1602'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__162'([A|B], C, D, E, F) :-
1603	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__162'(B, C, D, E, F).
1604'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__162'([], A, B, C, D) :-
1605	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163'(B, A, C, D).
1606:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__162' / 5, leash, notrace).
1607'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163'(A :: [B|C], D, E, F) ?-
1608	'CHRvar'(D),
1609	!,
1610	'CHRget_delayed_goals'(A, G),
1611	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__164'(G, D, A :: [B|C], E, F).
1612'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163'(A :: B, C, D, E) :-
1613	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165'(A :: B, C, D, E).
1614:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163' / 4, leash, notrace).
1615'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__164'(['CHRalldistinct1_2'(alldistinct1(A, [B]), C, D, E)|F], G, B :: [H|I], J, K) ?-
1616	'CHRvar'(C),
1617	coca(try_double(K, B :: [H|I], E, alldistinct1(A, [B]), L :: [M|N], alldistinct1(O, [L]), keep_first, (ground(O), 'CHRkeep_heads_checking'(L :: [M|N], P, L :: Q, R)), (remove_list(O, [M|N], Q), ('CHRhead_not_kept'(R) -> L :: Q ; true)), anonymous("75"))),
1618	no_delayed_goals((ground(A), 'CHRkeep_heads_checking'(B :: [H|I], G, B :: S, T))),
1619	!,
1620	'CHRkill'(C),
1621	coca(fired_rule(anonymous("75"))),
1622	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__164'(F, G, B :: [H|I], J, K),
1623	remove_list(A, [H|I], S),
1624	(
1625	    'CHRhead_not_kept'(T)
1626	->
1627	    B :: S
1628	;
1629	    true
1630	).
1631'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__164'([A|B], C, D, E, F) :-
1632	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__164'(B, C, D, E, F).
1633'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__164'([], A, B, C, D) :-
1634	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165'(B, A, C, D).
1635:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__164' / 5, leash, notrace).
1636'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165'(A :: [B|C], D, E, F) ?-
1637	'CHRvar'(D),
1638	!,
1639	'CHRget_delayed_goals'(A, G),
1640	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__166'(G, D, A :: [B|C], E, F).
1641'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165'(A :: B, C, D, E) :-
1642	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167'(A :: B, C, D, E).
1643:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165' / 4, leash, notrace).
1644'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__166'(['CHR::_2'(A :: [B|C], D, E, F)|G], H, A :: [I|J], K, L) ?-
1645	'CHRvar'(D),
1646	'CHRcheck_and_mark_applied'('12'(anonymous("22")), H, D, K, E),
1647	coca(try_double(L, A :: [I|J], F, A :: [B|C], M :: [N|O], M :: [P|Q], augmentation, (intersection([N|O], [P|Q], R), 'CHRkeep_heads_checking'(M :: [N|O], S, M :: [P|Q], T, M :: R, U)), 'CHRhead_not_kept'(U) -> M :: R ; true, anonymous("22"))),
1648	no_delayed_goals((intersection([I|J], [B|C], V), 'CHRkeep_heads_checking'(A :: [I|J], H, A :: [B|C], D, A :: V, W))),
1649	!,
1650	coca(fired_rule(anonymous("22"))),
1651	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__166'(G, H, A :: [I|J], K, L),
1652	(
1653	    'CHRhead_not_kept'(W)
1654	->
1655	    A :: V
1656	;
1657	    true
1658	).
1659'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__166'([A|B], C, D, E, F) :-
1660	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__166'(B, C, D, E, F).
1661'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__166'([], A, B, C, D) :-
1662	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167'(B, A, C, D).
1663:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__166' / 5, leash, notrace).
1664'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167'(A :: [B|C], D, E, F) ?-
1665	'CHRvar'(D),
1666	!,
1667	'CHRget_delayed_goals'(A, G),
1668	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__168'(G, D, A :: [B|C], E, F).
1669'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167'(A :: B, C, D, E) :-
1670	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169'(A :: B, C, D, E).
1671:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167' / 4, leash, notrace).
1672'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__168'(['CHR::_2'(A :: [B|C], D, E, F)|G], H, A :: [I|J], K, L) ?-
1673	'CHRvar'(D),
1674	'CHRcheck_and_mark_applied'('21'(anonymous("22")), H, D, K, E),
1675	coca(try_double(L, A :: [I|J], F, A :: [B|C], M :: [N|O], M :: [P|Q], augmentation, (intersection([P|Q], [N|O], R), 'CHRkeep_heads_checking'(M :: [P|Q], S, M :: [N|O], T, M :: R, U)), 'CHRhead_not_kept'(U) -> M :: R ; true, anonymous("22"))),
1676	no_delayed_goals((intersection([B|C], [I|J], V), 'CHRkeep_heads_checking'(A :: [B|C], D, A :: [I|J], H, A :: V, W))),
1677	!,
1678	coca(fired_rule(anonymous("22"))),
1679	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__168'(G, H, A :: [I|J], K, L),
1680	(
1681	    'CHRhead_not_kept'(W)
1682	->
1683	    A :: V
1684	;
1685	    true
1686	).
1687'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__168'([A|B], C, D, E, F) :-
1688	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__168'(B, C, D, E, F).
1689'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__168'([], A, B, C, D) :-
1690	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169'(B, A, C, D).
1691:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__168' / 5, leash, notrace).
1692'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169'(A :: B : C, D, E, F) ?-
1693	'CHRvar'(D),
1694	!,
1695	'CHRget_delayed_goals'(A, G),
1696	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__170'(G, D, A :: B : C, E, F).
1697'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169'(A :: B, C, D, E) :-
1698	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171'(A :: B, C, D, E).
1699:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169' / 4, leash, notrace).
1700'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__170'(['CHR::_2'(A :: [B|C], D, E, F)|G], H, A :: I : J, K, L) ?-
1701	'CHRvar'(D),
1702	'CHRcheck_and_mark_applied'(anonymous("29"), H, D, K, E),
1703	coca(try_double(L, A :: I : J, F, A :: [B|C], M :: N : O, M :: [P|Q], augmentation, ((remove_lower(N, [P|Q], R), remove_higher(O, R, S)), 'CHRkeep_heads_checking'(M :: N : O, T, M :: [P|Q], U, M :: S, V)), 'CHRhead_not_kept'(V) -> M :: S ; true, anonymous("29"))),
1704	no_delayed_goals(((remove_lower(I, [B|C], W), remove_higher(J, W, X)), 'CHRkeep_heads_checking'(A :: I : J, H, A :: [B|C], D, A :: X, Y))),
1705	!,
1706	coca(fired_rule(anonymous("29"))),
1707	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__170'(G, H, A :: I : J, K, L),
1708	(
1709	    'CHRhead_not_kept'(Y)
1710	->
1711	    A :: X
1712	;
1713	    true
1714	).
1715'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__170'([A|B], C, D, E, F) :-
1716	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__170'(B, C, D, E, F).
1717'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__170'([], A, B, C, D) :-
1718	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171'(B, A, C, D).
1719:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__170' / 5, leash, notrace).
1720'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171'(A :: [B|C], D, E, F) ?-
1721	'CHRvar'(D),
1722	!,
1723	'CHRget_delayed_goals'(A, G),
1724	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__172'(G, D, A :: [B|C], E, F).
1725'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171'(A :: B, C, D, E) :-
1726	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173'(A :: B, C, D, E).
1727:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171' / 4, leash, notrace).
1728'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__172'(['CHR::_2'(A :: B : C, D, E, F)|G], H, A :: [I|J], K, L) ?-
1729	'CHRvar'(D),
1730	'CHRcheck_and_mark_applied'(anonymous("29"), H, D, K, E),
1731	coca(try_double(L, A :: [I|J], F, A :: B : C, M :: [N|O], M :: P : Q, augmentation, ((remove_lower(P, [N|O], R), remove_higher(Q, R, S)), 'CHRkeep_heads_checking'(M :: P : Q, T, M :: [N|O], U, M :: S, V)), 'CHRhead_not_kept'(V) -> M :: S ; true, anonymous("29"))),
1732	no_delayed_goals(((remove_lower(B, [I|J], W), remove_higher(C, W, X)), 'CHRkeep_heads_checking'(A :: B : C, D, A :: [I|J], H, A :: X, Y))),
1733	!,
1734	coca(fired_rule(anonymous("29"))),
1735	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__172'(G, H, A :: [I|J], K, L),
1736	(
1737	    'CHRhead_not_kept'(Y)
1738	->
1739	    A :: X
1740	;
1741	    true
1742	).
1743'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__172'([A|B], C, D, E, F) :-
1744	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__172'(B, C, D, E, F).
1745'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__172'([], A, B, C, D) :-
1746	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173'(B, A, C, D).
1747:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__172' / 5, leash, notrace).
1748'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173'(A :: [B|C], D, E, F) ?-
1749	'CHRvar'(D),
1750	!,
1751	'CHRget_delayed_goals'(A, G),
1752	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__174'(G, D, A :: [B|C], E, F).
1753'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173'(A :: B, C, D, E) :-
1754	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175'(A :: B, C, D, E).
1755:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173' / 4, leash, notrace).
1756'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__174'(['CHRle_2'(le(A, B), C, D, E)|F], G, B :: [H|I], J, K) ?-
1757	'CHRvar'(C),
1758	'CHRcheck_and_mark_applied'(anonymous("30"), G, C, J, D),
1759	coca(try_double(K, B :: [H|I], E, le(A, B), L :: [M|N], le(O, L), augmentation, var(O), (last([M|N], P), le(O, P)), anonymous("30"))),
1760	no_delayed_goals(var(A)),
1761	!,
1762	coca(fired_rule(anonymous("30"))),
1763	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__174'(F, G, B :: [H|I], J, K),
1764	last([H|I], Q),
1765	le(A, Q).
1766'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__174'([A|B], C, D, E, F) :-
1767	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__174'(B, C, D, E, F).
1768'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__174'([], A, B, C, D) :-
1769	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175'(B, A, C, D).
1770:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__174' / 5, leash, notrace).
1771'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175'(A :: [B|C], D, E, F) ?-
1772	'CHRvar'(D),
1773	!,
1774	'CHRget_delayed_goals'(A, G),
1775	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__176'(G, D, A :: [B|C], E, F).
1776'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175'(A :: B, C, D, E) :-
1777	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177'(A :: B, C, D, E).
1778:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175' / 4, leash, notrace).
1779'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__176'(['CHRle_2'(le(A, B), C, D, E)|F], G, A :: [H|I], J, K) ?-
1780	'CHRvar'(C),
1781	'CHRcheck_and_mark_applied'(anonymous("31"), G, C, J, D),
1782	coca(try_double(K, A :: [H|I], E, le(A, B), L :: [M|N], le(L, O), augmentation, var(O), le(M, O), anonymous("31"))),
1783	no_delayed_goals(var(B)),
1784	!,
1785	coca(fired_rule(anonymous("31"))),
1786	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__176'(F, G, A :: [H|I], J, K),
1787	le(H, B).
1788'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__176'([A|B], C, D, E, F) :-
1789	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__176'(B, C, D, E, F).
1790'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__176'([], A, B, C, D) :-
1791	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177'(B, A, C, D).
1792:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__176' / 5, leash, notrace).
1793'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177'(A :: [B|C], D, E, F) ?-
1794	'CHRvar'(D),
1795	!,
1796	'CHRget_delayed_goals'(A, G),
1797	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__178'(G, D, A :: [B|C], E, F).
1798'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177'(A :: B, C, D, E) :-
1799	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179'(A :: B, C, D, E).
1800:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177' / 4, leash, notrace).
1801'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__178'(['CHRlt_2'(lt(A, B), C, D, E)|F], G, B :: [H|I], J, K) ?-
1802	'CHRvar'(C),
1803	'CHRcheck_and_mark_applied'(anonymous("32"), G, C, J, D),
1804	coca(try_double(K, B :: [H|I], E, lt(A, B), L :: [M|N], lt(O, L), augmentation, var(O), (last([M|N], P), lt(O, P)), anonymous("32"))),
1805	no_delayed_goals(var(A)),
1806	!,
1807	coca(fired_rule(anonymous("32"))),
1808	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__178'(F, G, B :: [H|I], J, K),
1809	last([H|I], Q),
1810	lt(A, Q).
1811'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__178'([A|B], C, D, E, F) :-
1812	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__178'(B, C, D, E, F).
1813'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__178'([], A, B, C, D) :-
1814	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179'(B, A, C, D).
1815:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__178' / 5, leash, notrace).
1816'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179'(A :: [B|C], D, E, F) ?-
1817	'CHRvar'(D),
1818	!,
1819	'CHRget_delayed_goals'(A, G),
1820	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__180'(G, D, A :: [B|C], E, F).
1821'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179'(A :: B, C, D, E) :-
1822	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181'(A :: B, C, D, E).
1823:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179' / 4, leash, notrace).
1824'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__180'(['CHRlt_2'(lt(A, B), C, D, E)|F], G, A :: [H|I], J, K) ?-
1825	'CHRvar'(C),
1826	'CHRcheck_and_mark_applied'(anonymous("33"), G, C, J, D),
1827	coca(try_double(K, A :: [H|I], E, lt(A, B), L :: [M|N], lt(L, O), augmentation, var(O), lt(M, O), anonymous("33"))),
1828	no_delayed_goals(var(B)),
1829	!,
1830	coca(fired_rule(anonymous("33"))),
1831	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__180'(F, G, A :: [H|I], J, K),
1832	lt(H, B).
1833'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__180'([A|B], C, D, E, F) :-
1834	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__180'(B, C, D, E, F).
1835'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__180'([], A, B, C, D) :-
1836	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181'(B, A, C, D).
1837:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__180' / 5, leash, notrace).
1838'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181'(A :: B : C, D, E, F) ?-
1839	'CHRvar'(D),
1840	!,
1841	'CHRget_delayed_goals'(A, G),
1842	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__182'(G, D, A :: B : C, E, F).
1843'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181'(A :: B, C, D, E) :-
1844	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183'(A :: B, C, D, E).
1845:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181' / 4, leash, notrace).
1846'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__182'(['CHR::_2'(A :: B : C, D, E, F)|G], H, A :: I : J, K, L) ?-
1847	'CHRvar'(D),
1848	'CHRcheck_and_mark_applied'('12'(anonymous("38")), H, D, K, E),
1849	coca(try_double(L, A :: I : J, F, A :: B : C, M :: N : O, M :: P : Q, augmentation, ((maximum(N, P, R), minimum(O, Q, S)), 'CHRkeep_heads_checking'(M :: N : O, T, M :: P : Q, U, M :: R : S, V)), 'CHRhead_not_kept'(V) -> M :: R : S ; true, anonymous("38"))),
1850	no_delayed_goals(((maximum(I, B, W), minimum(J, C, X)), 'CHRkeep_heads_checking'(A :: I : J, H, A :: B : C, D, A :: W : X, Y))),
1851	!,
1852	coca(fired_rule(anonymous("38"))),
1853	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__182'(G, H, A :: I : J, K, L),
1854	(
1855	    'CHRhead_not_kept'(Y)
1856	->
1857	    A :: W : X
1858	;
1859	    true
1860	).
1861'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__182'([A|B], C, D, E, F) :-
1862	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__182'(B, C, D, E, F).
1863'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__182'([], A, B, C, D) :-
1864	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183'(B, A, C, D).
1865:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__182' / 5, leash, notrace).
1866'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183'(A :: B : C, D, E, F) ?-
1867	'CHRvar'(D),
1868	!,
1869	'CHRget_delayed_goals'(A, G),
1870	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__184'(G, D, A :: B : C, E, F).
1871'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183'(A :: B, C, D, E) :-
1872	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185'(A :: B, C, D, E).
1873:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183' / 4, leash, notrace).
1874'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__184'(['CHR::_2'(A :: B : C, D, E, F)|G], H, A :: I : J, K, L) ?-
1875	'CHRvar'(D),
1876	'CHRcheck_and_mark_applied'('21'(anonymous("38")), H, D, K, E),
1877	coca(try_double(L, A :: I : J, F, A :: B : C, M :: N : O, M :: P : Q, augmentation, ((maximum(P, N, R), minimum(Q, O, S)), 'CHRkeep_heads_checking'(M :: P : Q, T, M :: N : O, U, M :: R : S, V)), 'CHRhead_not_kept'(V) -> M :: R : S ; true, anonymous("38"))),
1878	no_delayed_goals(((maximum(B, I, W), minimum(C, J, X)), 'CHRkeep_heads_checking'(A :: B : C, D, A :: I : J, H, A :: W : X, Y))),
1879	!,
1880	coca(fired_rule(anonymous("38"))),
1881	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__184'(G, H, A :: I : J, K, L),
1882	(
1883	    'CHRhead_not_kept'(Y)
1884	->
1885	    A :: W : X
1886	;
1887	    true
1888	).
1889'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__184'([A|B], C, D, E, F) :-
1890	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__184'(B, C, D, E, F).
1891'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__184'([], A, B, C, D) :-
1892	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185'(B, A, C, D).
1893:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__184' / 5, leash, notrace).
1894'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185'(A :: B : C, D, E, F) ?-
1895	'CHRvar'(D),
1896	!,
1897	'CHRget_delayed_goals'(A, G),
1898	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__186'(G, D, A :: B : C, E, F).
1899'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185'(A :: B, C, D, E) :-
1900	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187'(A :: B, C, D, E).
1901:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185' / 4, leash, notrace).
1902'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__186'(['CHRle_2'(le(A, B), C, D, E)|F], G, B :: H : I, J, K) ?-
1903	'CHRvar'(C),
1904	'CHRcheck_and_mark_applied'(anonymous("45"), G, C, J, D),
1905	coca(try_double(K, B :: H : I, E, le(A, B), L :: M : N, le(O, L), augmentation, var(O), le(O, N), anonymous("45"))),
1906	no_delayed_goals(var(A)),
1907	!,
1908	coca(fired_rule(anonymous("45"))),
1909	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__186'(F, G, B :: H : I, J, K),
1910	le(A, I).
1911'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__186'([A|B], C, D, E, F) :-
1912	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__186'(B, C, D, E, F).
1913'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__186'([], A, B, C, D) :-
1914	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187'(B, A, C, D).
1915:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__186' / 5, leash, notrace).
1916'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187'(A :: B : C, D, E, F) ?-
1917	'CHRvar'(D),
1918	!,
1919	'CHRget_delayed_goals'(A, G),
1920	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__188'(G, D, A :: B : C, E, F).
1921'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187'(A :: B, C, D, E) :-
1922	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189'(A :: B, C, D, E).
1923:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187' / 4, leash, notrace).
1924'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__188'(['CHRle_2'(le(A, B), C, D, E)|F], G, A :: H : I, J, K) ?-
1925	'CHRvar'(C),
1926	'CHRcheck_and_mark_applied'(anonymous("46"), G, C, J, D),
1927	coca(try_double(K, A :: H : I, E, le(A, B), L :: M : N, le(L, O), augmentation, var(O), le(M, O), anonymous("46"))),
1928	no_delayed_goals(var(B)),
1929	!,
1930	coca(fired_rule(anonymous("46"))),
1931	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__188'(F, G, A :: H : I, J, K),
1932	le(H, B).
1933'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__188'([A|B], C, D, E, F) :-
1934	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__188'(B, C, D, E, F).
1935'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__188'([], A, B, C, D) :-
1936	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189'(B, A, C, D).
1937:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__188' / 5, leash, notrace).
1938'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189'(A :: B : C, D, E, F) ?-
1939	'CHRvar'(D),
1940	!,
1941	'CHRget_delayed_goals'(A, G),
1942	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__190'(G, D, A :: B : C, E, F).
1943'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189'(A :: B, C, D, E) :-
1944	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191'(A :: B, C, D, E).
1945:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189' / 4, leash, notrace).
1946'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__190'(['CHRlt_2'(lt(A, B), C, D, E)|F], G, B :: H : I, J, K) ?-
1947	'CHRvar'(C),
1948	'CHRcheck_and_mark_applied'(anonymous("47"), G, C, J, D),
1949	coca(try_double(K, B :: H : I, E, lt(A, B), L :: M : N, lt(O, L), augmentation, var(O), lt(O, N), anonymous("47"))),
1950	no_delayed_goals(var(A)),
1951	!,
1952	coca(fired_rule(anonymous("47"))),
1953	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__190'(F, G, B :: H : I, J, K),
1954	lt(A, I).
1955'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__190'([A|B], C, D, E, F) :-
1956	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__190'(B, C, D, E, F).
1957'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__190'([], A, B, C, D) :-
1958	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191'(B, A, C, D).
1959:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__190' / 5, leash, notrace).
1960'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191'(A :: B : C, D, E, F) ?-
1961	'CHRvar'(D),
1962	!,
1963	'CHRget_delayed_goals'(A, G),
1964	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__192'(G, D, A :: B : C, E, F).
1965'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191'(A :: B, C, D, E) :-
1966	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193'(A :: B, C, D, E).
1967:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191' / 4, leash, notrace).
1968'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__192'(['CHRlt_2'(lt(A, B), C, D, E)|F], G, A :: H : I, J, K) ?-
1969	'CHRvar'(C),
1970	'CHRcheck_and_mark_applied'(anonymous("48"), G, C, J, D),
1971	coca(try_double(K, A :: H : I, E, lt(A, B), L :: M : N, lt(L, O), augmentation, var(O), lt(M, O), anonymous("48"))),
1972	no_delayed_goals(var(B)),
1973	!,
1974	coca(fired_rule(anonymous("48"))),
1975	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__192'(F, G, A :: H : I, J, K),
1976	lt(H, B).
1977'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__192'([A|B], C, D, E, F) :-
1978	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__192'(B, C, D, E, F).
1979'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__192'([], A, B, C, D) :-
1980	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193'(B, A, C, D).
1981:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__192' / 5, leash, notrace).
1982'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193'(A :: B : C, D, E, F) ?-
1983	'CHRvar'(D),
1984	!,
1985	'CHRget_delayed_goals'(A, G),
1986	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__194'(G, D, A :: B : C, E, F).
1987'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193'(A :: B, C, D, E) :-
1988	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195'(A :: B, C, D, E).
1989:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193' / 4, leash, notrace).
1990'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__194'(['CHRmult_3'(mult(A, B, C), D, E, F)|G], H, A :: I : J, K, L) ?-
1991	'CHRvar'(D),
1992	'CHRcheck_and_mark_applied'(anonymous("51"), H, D, K, E),
1993	coca(try_double(L, A :: I : J, F, mult(A, B, C), M :: N : O, mult(M, P, Q), augmentation, true, (R is (Q - 1) // O + 1, S is Q // N, P :: R : S), anonymous("51"))),
1994	!,
1995	coca(fired_rule(anonymous("51"))),
1996	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__194'(G, H, A :: I : J, K, L),
1997	T is (C - 1) // J + 1,
1998	U is C // I,
1999	B :: T : U.
2000'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__194'([A|B], C, D, E, F) :-
2001	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__194'(B, C, D, E, F).
2002'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__194'([], A, B, C, D) :-
2003	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195'(B, A, C, D).
2004:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__194' / 5, leash, notrace).
2005'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195'(A :: B : C, D, E, F) ?-
2006	'CHRvar'(D),
2007	!,
2008	'CHRget_delayed_goals'(A, G),
2009	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__196'(G, D, A :: B : C, E, F).
2010'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195'(A :: B, C, D, E) :-
2011	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197'(A :: B, C, D, E).
2012:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195' / 4, leash, notrace).
2013'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__196'(['CHRmult_3'(mult(A, B, C), D, E, F)|G], H, B :: I : J, K, L) ?-
2014	'CHRvar'(D),
2015	'CHRcheck_and_mark_applied'(anonymous("52"), H, D, K, E),
2016	coca(try_double(L, B :: I : J, F, mult(A, B, C), M :: N : O, mult(P, M, Q), augmentation, true, (R is (Q - 1) // O + 1, S is Q // N, P :: R : S), anonymous("52"))),
2017	!,
2018	coca(fired_rule(anonymous("52"))),
2019	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__196'(G, H, B :: I : J, K, L),
2020	T is (C - 1) // J + 1,
2021	U is C // I,
2022	A :: T : U.
2023'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__196'([A|B], C, D, E, F) :-
2024	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__196'(B, C, D, E, F).
2025'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__196'([], A, B, C, D) :-
2026	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197'(B, A, C, D).
2027:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__196' / 5, leash, notrace).
2028'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197'(A :: [B|C], D, E, F) ?-
2029	'CHRvar'(D),
2030	!,
2031	'CHRget_delayed_goals'(A, G),
2032	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__198'(G, D, A :: [B|C], E, F).
2033'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197'(A :: B, C, D, E) :-
2034	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199'(A :: B, C, D, E).
2035:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197' / 4, leash, notrace).
2036'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__198'(['CHR::_2'(A - B :: C, D, E, F)|G], H, A :: [I|J], K, L) ?-
2037	'CHRvar'(D),
2038	'CHRcheck_and_mark_applied'('12'(anonymous("56")), H, D, K, E),
2039	coca(try_double(L, A :: [I|J], F, A - B :: C, M :: [N|O], M - P :: Q, augmentation, ((intersect(R :: [N|O], R - S :: Q, R - S :: T), length(Q, U), length(T, V), U > V), 'CHRkeep_heads_checking'(M :: [N|O], W, M - P :: Q, X, M - P :: T, Y)), 'CHRhead_not_kept'(Y) -> M - P :: T ; true, anonymous("56"))),
2040	no_delayed_goals(((intersect(Z :: [I|J], Z - A1 :: C, Z - A1 :: B1), length(C, C1), length(B1, D1), C1 > D1), 'CHRkeep_heads_checking'(A :: [I|J], H, A - B :: C, D, A - B :: B1, E1))),
2041	!,
2042	coca(fired_rule(anonymous("56"))),
2043	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__198'(G, H, A :: [I|J], K, L),
2044	(
2045	    'CHRhead_not_kept'(E1)
2046	->
2047	    A - B :: B1
2048	;
2049	    true
2050	).
2051'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__198'([A|B], C, D, E, F) :-
2052	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__198'(B, C, D, E, F).
2053'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__198'([], A, B, C, D) :-
2054	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199'(B, A, C, D).
2055:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__198' / 5, leash, notrace).
2056'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199'(A - B :: C, D, E, F) ?-
2057	'CHRvar'(D),
2058	!,
2059	'CHRget_delayed_goals'(A, G),
2060	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__200'(G, D, A - B :: C, E, F).
2061'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199'(A :: B, C, D, E) :-
2062	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201'(A :: B, C, D, E).
2063:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199' / 4, leash, notrace).
2064'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__200'(['CHR::_2'(A :: [B|C], D, E, F)|G], H, A - I :: J, K, L) ?-
2065	'CHRvar'(D),
2066	'CHRcheck_and_mark_applied'('21'(anonymous("56")), H, D, K, E),
2067	coca(try_double(L, A - I :: J, F, A :: [B|C], M - N :: O, M :: [P|Q], augmentation, ((intersect(R :: [P|Q], R - S :: O, R - S :: T), length(O, U), length(T, V), U > V), 'CHRkeep_heads_checking'(M :: [P|Q], W, M - N :: O, X, M - N :: T, Y)), 'CHRhead_not_kept'(Y) -> M - N :: T ; true, anonymous("56"))),
2068	no_delayed_goals(((intersect(Z :: [B|C], Z - A1 :: J, Z - A1 :: B1), length(J, C1), length(B1, D1), C1 > D1), 'CHRkeep_heads_checking'(A :: [B|C], D, A - I :: J, H, A - I :: B1, E1))),
2069	!,
2070	coca(fired_rule(anonymous("56"))),
2071	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__200'(G, H, A - I :: J, K, L),
2072	(
2073	    'CHRhead_not_kept'(E1)
2074	->
2075	    A - I :: B1
2076	;
2077	    true
2078	).
2079'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__200'([A|B], C, D, E, F) :-
2080	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__200'(B, C, D, E, F).
2081'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__200'([], A, B, C, D) :-
2082	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201'(B, A, C, D).
2083:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__200' / 5, leash, notrace).
2084'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201'(A :: [B|C], D, E, F) ?-
2085	'CHRvar'(D),
2086	!,
2087	'CHRget_delayed_goals'(A, G),
2088	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__202'(G, D, A :: [B|C], E, F).
2089'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201'(A :: B, C, D, E) :-
2090	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203'(A :: B, C, D, E).
2091:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201' / 4, leash, notrace).
2092'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__202'(['CHR::_2'(A - B :: C, D, E, F)|G], H, B :: [I|J], K, L) ?-
2093	'CHRvar'(D),
2094	'CHRcheck_and_mark_applied'('12'(anonymous("57")), H, D, K, E),
2095	coca(try_double(L, B :: [I|J], F, A - B :: C, M :: [N|O], P - M :: Q, augmentation, ((intersect(R :: [N|O], S - R :: Q, S - R :: T), length(Q, U), length(T, V), U > V), 'CHRkeep_heads_checking'(M :: [N|O], W, P - M :: Q, X, P - M :: T, Y)), 'CHRhead_not_kept'(Y) -> P - M :: T ; true, anonymous("57"))),
2096	no_delayed_goals(((intersect(Z :: [I|J], A1 - Z :: C, A1 - Z :: B1), length(C, C1), length(B1, D1), C1 > D1), 'CHRkeep_heads_checking'(B :: [I|J], H, A - B :: C, D, A - B :: B1, E1))),
2097	!,
2098	coca(fired_rule(anonymous("57"))),
2099	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__202'(G, H, B :: [I|J], K, L),
2100	(
2101	    'CHRhead_not_kept'(E1)
2102	->
2103	    A - B :: B1
2104	;
2105	    true
2106	).
2107'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__202'([A|B], C, D, E, F) :-
2108	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__202'(B, C, D, E, F).
2109'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__202'([], A, B, C, D) :-
2110	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203'(B, A, C, D).
2111:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__202' / 5, leash, notrace).
2112'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203'(A - B :: C, D, E, F) ?-
2113	'CHRvar'(D),
2114	!,
2115	'CHRget_delayed_goals'(B, G),
2116	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__204'(G, D, A - B :: C, E, F).
2117'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203'(A :: B, C, D, E) :-
2118	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205'(A :: B, C, D, E).
2119:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203' / 4, leash, notrace).
2120'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__204'(['CHR::_2'(A :: [B|C], D, E, F)|G], H, I - A :: J, K, L) ?-
2121	'CHRvar'(D),
2122	'CHRcheck_and_mark_applied'('21'(anonymous("57")), H, D, K, E),
2123	coca(try_double(L, I - A :: J, F, A :: [B|C], M - N :: O, N :: [P|Q], augmentation, ((intersect(R :: [P|Q], S - R :: O, S - R :: T), length(O, U), length(T, V), U > V), 'CHRkeep_heads_checking'(N :: [P|Q], W, M - N :: O, X, M - N :: T, Y)), 'CHRhead_not_kept'(Y) -> M - N :: T ; true, anonymous("57"))),
2124	no_delayed_goals(((intersect(Z :: [B|C], A1 - Z :: J, A1 - Z :: B1), length(J, C1), length(B1, D1), C1 > D1), 'CHRkeep_heads_checking'(A :: [B|C], D, I - A :: J, H, I - A :: B1, E1))),
2125	!,
2126	coca(fired_rule(anonymous("57"))),
2127	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__204'(G, H, I - A :: J, K, L),
2128	(
2129	    'CHRhead_not_kept'(E1)
2130	->
2131	    I - A :: B1
2132	;
2133	    true
2134	).
2135'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__204'([A|B], C, D, E, F) :-
2136	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__204'(B, C, D, E, F).
2137'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__204'([], A, B, C, D) :-
2138	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205'(B, A, C, D).
2139:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__204' / 5, leash, notrace).
2140'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205'(A - B :: C, D, E, F) ?-
2141	'CHRvar'(D),
2142	!,
2143	'CHRget_delayed_goals'(B, G),
2144	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__206'(G, D, A - B :: C, E, F).
2145'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205'(A :: B, C, D, E) :-
2146	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207'(A :: B, C, D, E).
2147:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205' / 4, leash, notrace).
2148'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__206'(['CHR::_2'(A - B :: C, D, E, F)|G], H, B - A :: I, J, K) ?-
2149	'CHRvar'(D),
2150	'CHRcheck_and_mark_applied'('12'(anonymous("58")), H, D, J, E),
2151	coca(try_double(K, B - A :: I, F, A - B :: C, L - M :: N, M - L :: O, augmentation, (intersect(P - Q :: N, Q - P :: O, P - Q :: R), 'CHRkeep_heads_checking'(L - M :: N, S, M - L :: O, T, L - M :: R, U)), 'CHRhead_not_kept'(U) -> L - M :: R ; true, anonymous("58"))),
2152	no_delayed_goals((intersect(V - W :: I, W - V :: C, V - W :: X), 'CHRkeep_heads_checking'(B - A :: I, H, A - B :: C, D, B - A :: X, Y))),
2153	!,
2154	coca(fired_rule(anonymous("58"))),
2155	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__206'(G, H, B - A :: I, J, K),
2156	(
2157	    'CHRhead_not_kept'(Y)
2158	->
2159	    B - A :: X
2160	;
2161	    true
2162	).
2163'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__206'([A|B], C, D, E, F) :-
2164	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__206'(B, C, D, E, F).
2165'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__206'([], A, B, C, D) :-
2166	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207'(B, A, C, D).
2167:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__206' / 5, leash, notrace).
2168'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207'(A - B :: C, D, E, F) ?-
2169	'CHRvar'(D),
2170	!,
2171	'CHRget_delayed_goals'(B, G),
2172	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__208'(G, D, A - B :: C, E, F).
2173'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207'(A :: B, C, D, E) :-
2174	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209'(A :: B, C, D, E).
2175:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207' / 4, leash, notrace).
2176'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__208'(['CHR::_2'(A - B :: C, D, E, F)|G], H, B - A :: I, J, K) ?-
2177	'CHRvar'(D),
2178	'CHRcheck_and_mark_applied'('21'(anonymous("58")), H, D, J, E),
2179	coca(try_double(K, B - A :: I, F, A - B :: C, L - M :: N, M - L :: O, augmentation, (intersect(P - Q :: O, Q - P :: N, P - Q :: R), 'CHRkeep_heads_checking'(M - L :: O, S, L - M :: N, T, M - L :: R, U)), 'CHRhead_not_kept'(U) -> M - L :: R ; true, anonymous("58"))),
2180	no_delayed_goals((intersect(V - W :: C, W - V :: I, V - W :: X), 'CHRkeep_heads_checking'(A - B :: C, D, B - A :: I, H, A - B :: X, Y))),
2181	!,
2182	coca(fired_rule(anonymous("58"))),
2183	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__208'(G, H, B - A :: I, J, K),
2184	(
2185	    'CHRhead_not_kept'(Y)
2186	->
2187	    A - B :: X
2188	;
2189	    true
2190	).
2191'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__208'([A|B], C, D, E, F) :-
2192	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__208'(B, C, D, E, F).
2193'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__208'([], A, B, C, D) :-
2194	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209'(B, A, C, D).
2195:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__208' / 5, leash, notrace).
2196'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209'(A - B :: C, D, E, F) ?-
2197	'CHRvar'(D),
2198	!,
2199	'CHRget_delayed_goals'(B, G),
2200	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__210'(G, D, A - B :: C, E, F).
2201'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209'(A :: B, C, D, E) :-
2202	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211'(A :: B, C, D, E).
2203:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209' / 4, leash, notrace).
2204'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__210'(['CHR::_2'(A - B :: C, D, E, F)|G], H, A - B :: I, J, K) ?-
2205	'CHRvar'(D),
2206	'CHRcheck_and_mark_applied'('12'(anonymous("59")), H, D, J, E),
2207	coca(try_double(K, A - B :: I, F, A - B :: C, L - M :: N, L - M :: O, augmentation, (intersect(P - Q :: N, P - Q :: O, P - Q :: R), 'CHRkeep_heads_checking'(L - M :: N, S, L - M :: O, T, L - M :: R, U)), 'CHRhead_not_kept'(U) -> L - M :: R ; true, anonymous("59"))),
2208	no_delayed_goals((intersect(V - W :: I, V - W :: C, V - W :: X), 'CHRkeep_heads_checking'(A - B :: I, H, A - B :: C, D, A - B :: X, Y))),
2209	!,
2210	coca(fired_rule(anonymous("59"))),
2211	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__210'(G, H, A - B :: I, J, K),
2212	(
2213	    'CHRhead_not_kept'(Y)
2214	->
2215	    A - B :: X
2216	;
2217	    true
2218	).
2219'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__210'([A|B], C, D, E, F) :-
2220	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__210'(B, C, D, E, F).
2221'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__210'([], A, B, C, D) :-
2222	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211'(B, A, C, D).
2223:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__210' / 5, leash, notrace).
2224'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211'(A - B :: C, D, E, F) ?-
2225	'CHRvar'(D),
2226	!,
2227	'CHRget_delayed_goals'(B, G),
2228	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211__212'(G, D, A - B :: C, E, F).
2229'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211'(A :: B, C, D, E) :-
2230	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211__213'(A :: B, C, D, E).
2231:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211' / 4, leash, notrace).
2232'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211__212'(['CHR::_2'(A - B :: C, D, E, F)|G], H, A - B :: I, J, K) ?-
2233	'CHRvar'(D),
2234	'CHRcheck_and_mark_applied'('21'(anonymous("59")), H, D, J, E),
2235	coca(try_double(K, A - B :: I, F, A - B :: C, L - M :: N, L - M :: O, augmentation, (intersect(P - Q :: O, P - Q :: N, P - Q :: R), 'CHRkeep_heads_checking'(L - M :: O, S, L - M :: N, T, L - M :: R, U)), 'CHRhead_not_kept'(U) -> L - M :: R ; true, anonymous("59"))),
2236	no_delayed_goals((intersect(V - W :: C, V - W :: I, V - W :: X), 'CHRkeep_heads_checking'(A - B :: C, D, A - B :: I, H, A - B :: X, Y))),
2237	!,
2238	coca(fired_rule(anonymous("59"))),
2239	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211__212'(G, H, A - B :: I, J, K),
2240	(
2241	    'CHRhead_not_kept'(Y)
2242	->
2243	    A - B :: X
2244	;
2245	    true
2246	).
2247'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211__212'([A|B], C, D, E, F) :-
2248	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211__212'(B, C, D, E, F).
2249'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211__212'([], A, B, C, D) :-
2250	'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211__213'(B, A, C, D).
2251:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211__212' / 5, leash, notrace).
2252'CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211__213'(A :: B, C, D, E) :-
2253	(
2254	    'CHRvar'(C)
2255	->
2256	    'CHRdelay'([C, A :: B], 'CHR::_2'(A :: B, C, D, E))
2257	;
2258	    true
2259	).
2260:- set_flag('CHR::_2__126__129__131__133__135__137__139__141__143__145__147__149__151__153__155__157__159__161__163__165__167__169__171__173__175__177__179__181__183__185__187__189__191__193__195__197__199__201__203__205__207__209__211__213' / 4, leash, notrace).
2261mult(A, B, C) :-
2262	'CHRgen_num'(D),
2263	coca(add_one_constraint(D, mult(A, B, C))),
2264	'CHRmult_3'(mult(A, B, C), E, F, D).
2265
2266
2267
2268%%% Rules handling for mult / 3
2269
2270'CHRmult_3'(mult(A, B, C), D, E, F) :-
2271	(
2272	    'CHRnonvar'(D)
2273	;
2274	    'CHRalready_in'('CHRmult_3'(mult(A, B, C), D, E, F)),
2275	    coca(already_in)
2276	),
2277	!.
2278'CHRmult_3'(mult(A, B, C), D, E, F) ?-
2279	coca(try_rule(F, mult(A, B, C), anonymous("49"), mult(G, H, I), replacement, ground(G), G =:= 0 -> I =:= 0 ; (0 =:= I mod G, H is I // G))),
2280	no_delayed_goals(ground(A)),
2281	!,
2282	'CHRkill'(D),
2283	coca(fired_rule(anonymous("49"))),
2284	(
2285	    A =:= 0
2286	->
2287	    C =:= 0
2288	;
2289	    0 =:= C mod A,
2290	    B is C // A
2291	).
2292'CHRmult_3'(mult(A, B, C), D, E, F) ?-
2293	coca(try_rule(F, mult(A, B, C), anonymous("50"), mult(G, H, I), replacement, ground(H), H =:= 0 -> I =:= 0 ; (0 =:= I mod H, G is I // H))),
2294	no_delayed_goals(ground(B)),
2295	!,
2296	'CHRkill'(D),
2297	coca(fired_rule(anonymous("50"))),
2298	(
2299	    B =:= 0
2300	->
2301	    C =:= 0
2302	;
2303	    0 =:= C mod B,
2304	    A is C // B
2305	).
2306'CHRmult_3'(mult(A, B, C), D, E, F) :-
2307	'CHRmult_3__214'(mult(A, B, C), D, E, F).
2308:- set_flag('CHRmult_3' / 4, leash, notrace).
2309:- current_macro('CHRmult_3' / 4, _68465, _68466, _68467) -> true ; define_macro('CHRmult_3' / 4, tr_chr / 2, [write]).
2310'CHRmult_3__214'(A, B, C, D) :-
2311	'CHRmult_3__215'(A, B, C, D).
2312:- set_flag('CHRmult_3__214' / 4, leash, notrace).
2313'CHRmult_3__215'(mult(A, B, C), D, E, F) ?-
2314	'CHRvar'(D),
2315	!,
2316	'CHRget_delayed_goals'(A, G),
2317	'CHRmult_3__215__216'(G, D, mult(A, B, C), E, F).
2318'CHRmult_3__215'(mult(A, B, C), D, E, F) :-
2319	'CHRmult_3__215__217'(mult(A, B, C), D, E, F).
2320:- set_flag('CHRmult_3__215' / 4, leash, notrace).
2321'CHRmult_3__215__216'(['CHR::_2'(A :: B : C, D, E, F)|G], H, mult(A, I, J), K, L) ?-
2322	'CHRvar'(D),
2323	'CHRcheck_and_mark_applied'(anonymous("51"), H, D, K, E),
2324	coca(try_double(L, mult(A, I, J), F, A :: B : C, mult(M, N, O), M :: P : Q, augmentation, true, (R is (O - 1) // Q + 1, S is O // P, N :: R : S), anonymous("51"))),
2325	!,
2326	coca(fired_rule(anonymous("51"))),
2327	'CHRmult_3__215__216'(G, H, mult(A, I, J), K, L),
2328	T is (J - 1) // C + 1,
2329	U is J // B,
2330	I :: T : U.
2331'CHRmult_3__215__216'([A|B], C, D, E, F) :-
2332	'CHRmult_3__215__216'(B, C, D, E, F).
2333'CHRmult_3__215__216'([], A, B, C, D) :-
2334	'CHRmult_3__215__217'(B, A, C, D).
2335:- set_flag('CHRmult_3__215__216' / 5, leash, notrace).
2336'CHRmult_3__215__217'(mult(A, B, C), D, E, F) ?-
2337	'CHRvar'(D),
2338	!,
2339	'CHRget_delayed_goals'(B, G),
2340	'CHRmult_3__215__217__218'(G, D, mult(A, B, C), E, F).
2341'CHRmult_3__215__217'(mult(A, B, C), D, E, F) :-
2342	'CHRmult_3__215__217__219'(mult(A, B, C), D, E, F).
2343:- set_flag('CHRmult_3__215__217' / 4, leash, notrace).
2344'CHRmult_3__215__217__218'(['CHR::_2'(A :: B : C, D, E, F)|G], H, mult(I, A, J), K, L) ?-
2345	'CHRvar'(D),
2346	'CHRcheck_and_mark_applied'(anonymous("52"), H, D, K, E),
2347	coca(try_double(L, mult(I, A, J), F, A :: B : C, mult(M, N, O), N :: P : Q, augmentation, true, (R is (O - 1) // Q + 1, S is O // P, M :: R : S), anonymous("52"))),
2348	!,
2349	coca(fired_rule(anonymous("52"))),
2350	'CHRmult_3__215__217__218'(G, H, mult(I, A, J), K, L),
2351	T is (J - 1) // C + 1,
2352	U is J // B,
2353	I :: T : U.
2354'CHRmult_3__215__217__218'([A|B], C, D, E, F) :-
2355	'CHRmult_3__215__217__218'(B, C, D, E, F).
2356'CHRmult_3__215__217__218'([], A, B, C, D) :-
2357	'CHRmult_3__215__217__219'(B, A, C, D).
2358:- set_flag('CHRmult_3__215__217__218' / 5, leash, notrace).
2359'CHRmult_3__215__217__219'(mult(A, B, C), D, E, F) :-
2360	(
2361	    'CHRvar'(D)
2362	->
2363	    'CHRdelay'([D, mult(A, B, C)], 'CHRmult_3'(mult(A, B, C), D, E, F))
2364	;
2365	    true
2366	).
2367:- set_flag('CHRmult_3__215__217__219' / 4, leash, notrace).
2368atmost(A, B, C, D) :-
2369	'CHRgen_num'(E),
2370	coca(add_one_constraint(E, atmost(A, B, C, D))),
2371	'CHRatmost_4'(atmost(A, B, C, D), F, G, E).
2372
2373
2374
2375%%% Rules handling for atmost / 4
2376
2377'CHRatmost_4'(atmost(A, B, C, D), E, F, G) :-
2378	(
2379	    'CHRnonvar'(E)
2380	;
2381	    'CHRalready_in'('CHRatmost_4'(atmost(A, B, C, D), E, F, G)),
2382	    coca(already_in)
2383	),
2384	!.
2385'CHRatmost_4'(atmost(A, B, C, D), E, F, G) ?-
2386	coca(try_rule(G, atmost(A, B, C, D), anonymous("67"), atmost(H, I, J, K), replacement, K =< H, true)),
2387	no_delayed_goals(D =< A),
2388	!,
2389	'CHRkill'(E),
2390	coca(fired_rule(anonymous("67"))).
2391'CHRatmost_4'(atmost(0, A, B, C), D, E, F) ?-
2392	coca(try_rule(F, atmost(0, A, B, C), anonymous("68"), atmost(0, G, H, I), replacement, ground(H) ; ground(G), outof(H, G))),
2393	no_delayed_goals(ground(B) ; ground(A)),
2394	!,
2395	'CHRkill'(D),
2396	coca(fired_rule(anonymous("68"))),
2397	outof(B, A).
2398'CHRatmost_4'(atmost(A, B, C, D), E, F, G) ?-
2399	coca(try_rule(G, atmost(A, B, C, D), anonymous("69"), atmost(H, I, J, K), replacement, (K > H, ground(J), delete_ground(L, I, M)), ((L == J -> N is H - 1 ; N = H), O is K - 1, atmost(N, M, J, O)))),
2400	no_delayed_goals((D > A, ground(C), delete_ground(P, B, Q))),
2401	!,
2402	'CHRkill'(E),
2403	coca(fired_rule(anonymous("69"))),
2404	(
2405	    P == C
2406	->
2407	    R is A - 1
2408	;
2409	    R = A
2410	),
2411	S is D - 1,
2412	atmost(R, Q, C, S).
2413'CHRatmost_4'(atmost(A, B, C, D), E, F, G) :-
2414	'CHRatmost_4__220'(atmost(A, B, C, D), E, F, G).
2415:- set_flag('CHRatmost_4' / 4, leash, notrace).
2416:- current_macro('CHRatmost_4' / 4, _70503, _70504, _70505) -> true ; define_macro('CHRatmost_4' / 4, tr_chr / 2, [write]).
2417'CHRatmost_4__220'(A, B, C, D) :-
2418	'CHRatmost_4__221'(A, B, C, D).
2419:- set_flag('CHRatmost_4__220' / 4, leash, notrace).
2420'CHRatmost_4__221'(atmost(A, B, C, D), E, F, G) :-
2421	(
2422	    'CHRvar'(E)
2423	->
2424	    'CHRdelay'([E, atmost(A, B, C, D)], 'CHRatmost_4'(atmost(A, B, C, D), E, F, G))
2425	;
2426	    true
2427	).
2428:- set_flag('CHRatmost_4__221' / 4, leash, notrace).
2429
2430
2431
2432%%% Prolog clauses for alldistinct / 1
2433
2434clause_alldistinct([]).
2435clause_alldistinct([A|B]) :-
2436	outof(A, B),
2437	alldistinct(B).
2438:- current_macro(clause_alldistinct / 1, _70773, _70774, _70775) -> true ; define_macro(clause_alldistinct / 1, tr_chr / 2, [write]).
2439alldistinct(A) :-
2440	'CHRgen_num'(B),
2441	coca(add_one_constraint(B, alldistinct(A))),
2442	'CHRalldistinct_1'(alldistinct(A), C, D, B).
2443
2444
2445
2446%%% Rules handling for alldistinct / 1
2447
2448'CHRalldistinct_1'(alldistinct(A), B, C, D) :-
2449	(
2450	    'CHRnonvar'(B)
2451	;
2452	    'CHRalready_in'('CHRalldistinct_1'(alldistinct(A), B, C, D)),
2453	    coca(already_in)
2454	),
2455	!.
2456'CHRalldistinct_1'(alldistinct([]), A, B, C) ?-
2457	coca(try_rule(C, alldistinct([]), anonymous("70"), alldistinct([]), replacement, true, true)),
2458	!,
2459	'CHRkill'(A),
2460	coca(fired_rule(anonymous("70"))).
2461'CHRalldistinct_1'(alldistinct([A]), B, C, D) ?-
2462	coca(try_rule(D, alldistinct([A]), anonymous("71"), alldistinct([E]), replacement, true, true)),
2463	!,
2464	'CHRkill'(B),
2465	coca(fired_rule(anonymous("71"))).
2466'CHRalldistinct_1'(alldistinct([A, B]), C, D, E) ?-
2467	coca(try_rule(E, alldistinct([A, B]), anonymous("72"), alldistinct([F, G]), replacement, true, ne(F, G))),
2468	!,
2469	'CHRkill'(C),
2470	coca(fired_rule(anonymous("72"))),
2471	ne(A, B).
2472'CHRalldistinct_1'(alldistinct([A|B]), C, D, E) ?-
2473	coca(try_rule(E, alldistinct([A|B]), anonymous("73"), alldistinct([F|G]), replacement, delete_ground(H, [F|G], I), (outof(H, I), alldistinct(I)))),
2474	no_delayed_goals(delete_ground(J, [A|B], K)),
2475	!,
2476	'CHRkill'(C),
2477	coca(fired_rule(anonymous("73"))),
2478	outof(J, K),
2479	alldistinct(K).
2480'CHRalldistinct_1'(alldistinct(A), B, C, D) :-
2481	'CHRalldistinct_1__222'(alldistinct(A), B, C, D).
2482:- set_flag('CHRalldistinct_1' / 4, leash, notrace).
2483:- current_macro('CHRalldistinct_1' / 4, _71513, _71514, _71515) -> true ; define_macro('CHRalldistinct_1' / 4, tr_chr / 2, [write]).
2484'CHRalldistinct_1__222'(A, B, C, D) :-
2485	'CHRalldistinct_1__223'(A, B, C, D).
2486:- set_flag('CHRalldistinct_1__222' / 4, leash, notrace).
2487'CHRalldistinct_1__223'(alldistinct(A), B, C, D) :-
2488	(
2489	    'CHRvar'(B)
2490	->
2491	    'CHRdelay'([B, alldistinct(A)], 'CHRalldistinct_1'(alldistinct(A), B, C, D))
2492	;
2493	    true
2494	).
2495:- set_flag('CHRalldistinct_1__223' / 4, leash, notrace).
2496alldistinct1(A, B) :-
2497	'CHRgen_num'(C),
2498	coca(add_one_constraint(C, alldistinct1(A, B))),
2499	'CHRalldistinct1_2'(alldistinct1(A, B), D, E, C).
2500
2501
2502
2503%%% Rules handling for alldistinct1 / 2
2504
2505'CHRalldistinct1_2'(alldistinct1(A, B), C, D, E) :-
2506	(
2507	    'CHRnonvar'(C)
2508	;
2509	    'CHRalready_in'('CHRalldistinct1_2'(alldistinct1(A, B), C, D, E)),
2510	    coca(already_in)
2511	),
2512	!.
2513'CHRalldistinct1_2'(alldistinct1(A, []), B, C, D) ?-
2514	coca(try_rule(D, alldistinct1(A, []), anonymous("74"), alldistinct1(E, []), replacement, true, true)),
2515	!,
2516	'CHRkill'(B),
2517	coca(fired_rule(anonymous("74"))).
2518'CHRalldistinct1_2'(alldistinct1(A, [B]), C, D, E) ?-
2519	coca(try_rule(E, alldistinct1(A, [B]), anonymous("76"), alldistinct1(F, [G]), replacement, ground(F) ; ground(G), outof(G, F))),
2520	no_delayed_goals(ground(A) ; ground(B)),
2521	!,
2522	'CHRkill'(C),
2523	coca(fired_rule(anonymous("76"))),
2524	outof(B, A).
2525'CHRalldistinct1_2'(alldistinct1(A, [B|C]), D, E, F) ?-
2526	coca(try_rule(F, alldistinct1(A, [B|C]), anonymous("77"), alldistinct1(G, [H|I]), replacement, (ground(G), delete_ground(J, [H|I], K)), member(J, G) -> fail ; alldistinct1([J|G], K))),
2527	no_delayed_goals((ground(A), delete_ground(L, [B|C], M))),
2528	!,
2529	'CHRkill'(D),
2530	coca(fired_rule(anonymous("77"))),
2531	(
2532	    member(L, A)
2533	->
2534	    fail
2535	;
2536	    alldistinct1([L|A], M)
2537	).
2538'CHRalldistinct1_2'(alldistinct1(A, [B]), C, D, E) ?-
2539	'CHRget_delayed_goals'(B, F),
2540	'CHRalldistinct1_2__225'(F, [B], [G, H, I], J),
2541	coca(try_double(E, alldistinct1(A, [B]), J, B :: [I|H], alldistinct1(K, [L]), L :: [M|N], keep_second, (ground(K), 'CHRkeep_heads_checking'(L :: [M|N], O, L :: P, Q)), (remove_list(K, [M|N], P), ('CHRhead_not_kept'(Q) -> L :: P ; true)), anonymous("75"))),
2542	no_delayed_goals((ground(A), 'CHRkeep_heads_checking'(B :: [I|H], G, B :: R, S))),
2543	!,
2544	'CHRkill'(C),
2545	coca(fired_rule(anonymous("75"))),
2546	remove_list(A, [I|H], R),
2547	(
2548	    'CHRhead_not_kept'(S)
2549	->
2550	    B :: R
2551	;
2552	    true
2553	).
2554'CHRalldistinct1_2'(alldistinct1(A, B), C, D, E) :-
2555	'CHRalldistinct1_2__224'(alldistinct1(A, B), C, D, E).
2556'CHRalldistinct1_2__225'(['CHR::_2'(A :: [B|C], D, E, F)|G], [A], [H, I, J], K) ?-
2557	'CHRvar'(D),
2558	'CHR='([D, C, B], [H, I, J]),
2559	'CHR='(F, K).
2560'CHRalldistinct1_2__225'([A|B], C, D, E) :-
2561	'CHRalldistinct1_2__225'(B, C, D, E).
2562:- set_flag('CHRalldistinct1_2__225' / 4, leash, notrace).
2563:- set_flag('CHRalldistinct1_2' / 4, leash, notrace).
2564:- current_macro('CHRalldistinct1_2' / 4, _72865, _72866, _72867) -> true ; define_macro('CHRalldistinct1_2' / 4, tr_chr / 2, [write]).
2565'CHRalldistinct1_2__224'(A, B, C, D) :-
2566	'CHRalldistinct1_2__226'(A, B, C, D).
2567:- set_flag('CHRalldistinct1_2__224' / 4, leash, notrace).
2568'CHRalldistinct1_2__226'(alldistinct1(A, B), C, D, E) :-
2569	(
2570	    'CHRvar'(C)
2571	->
2572	    'CHRdelay'([C, alldistinct1(A, B)], 'CHRalldistinct1_2'(alldistinct1(A, B), C, D, E))
2573	;
2574	    true
2575	).
2576:- set_flag('CHRalldistinct1_2__226' / 4, leash, notrace).
2577
2578:- getval(variable_names_flag, Val), set_flag(variable_names, Val).
2579