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:- use_module(s_lists).
9:- op(700, xfx, [in, notin, incl, eq, #]).
10
11
12
13%%% Callables for set / 3
14
15'CHRlabel_with'(set(A, B, C), D, E) ?-
16	coca(try_clause(E, set(A, B, C), set(F, G, H), true)),
17	coca(clause_fired(E)),
18	'CHR='(D, clause_set(A, B, C)).
19
20
21
22%%% Prolog clauses for set / 3
23
24clause_set(A, B, C) :-
25	s_member(D, C),
26	\+ s_member(D, B),
27	!,
28	(
29	    in(D, A)
30	;
31	    notin(D, A)
32	).
33:- current_macro(clause_set / 3, _9150, _9151, _9152) -> true ; define_macro(clause_set / 3, tr_chr / 2, [write]).
34set(A, B, C) :-
35	'CHRgen_num'(D),
36	coca(add_one_constraint(D, set(A, B, C))),
37	'CHRset_3'(set(A, B, C), E, F, D).
38
39
40
41%%% Rules handling for set / 3
42
43'CHRset_3'(set(A, B, C), D, E, F) :-
44	(
45	    'CHRnonvar'(D)
46	;
47	    'CHRalready_in'('CHRset_3'(set(A, B, C), D, E, F)),
48	    coca(already_in)
49	),
50	!.
51'CHRset_3'(set(A, B, C), D, E, F) ?-
52	coca(try_rule(F, set(A, B, C), anonymous("0"), set(G, H, I), replacement, s_equality(H, I), G = H)),
53	no_global_bindings(s_equality(B, C), set(A, B, C)),
54	!,
55	'CHRkill'(D),
56	coca(fired_rule(anonymous("0"))),
57	A = B.
58'CHRset_3'(set(A, B, C), D, E, F) ?-
59	coca(try_rule(F, set(A, B, C), anonymous("1"), set(G, H, I), replacement, \+ s_included(H, I), fail)),
60	no_global_bindings(\+ s_included(B, C), set(A, B, C)),
61	!,
62	'CHRkill'(D),
63	coca(fired_rule(anonymous("1"))),
64	fail.
65'CHRset_3'(set(A, B, C), D, E, F) ?-
66	coca(try_rule(F, set(A, B, C), ground, set(G, H, I), replacement, is_set(G), (s_included(H, G), s_included(G, I)))),
67	no_global_bindings(is_set(A), set(A, B, C)),
68	!,
69	'CHRkill'(D),
70	coca(fired_rule(ground)),
71	s_included(B, A),
72	s_included(A, C).
73'CHRset_3'(set(A, B, C), D, E, F) ?-
74	'CHRget_delayed_goals'(A, G),
75	'CHRset_3__34'(G, [A], [H], I),
76	coca(try_double(F, set(A, B, C), I, #(A, H), set(J, K, L), #(J, M), replacement, s_card(K, M), J = K, anonymous("9"))),
77	no_global_bindings(s_card(B, H), (set(A, B, C), #(A, H))),
78	!,
79	'CHRkill'(D),
80	coca(fired_rule(anonymous("9"))),
81	A = B.
82'CHRset_3'(set(A, B, C), D, E, F) ?-
83	'CHRget_delayed_goals'(A, G),
84	'CHRset_3__35'(G, [A], [H], I),
85	coca(try_double(F, set(A, B, C), I, #(A, H), set(J, K, L), #(J, M), replacement, s_card(L, M), J = L, anonymous("10"))),
86	no_global_bindings(s_card(C, H), (set(A, B, C), #(A, H))),
87	!,
88	'CHRkill'(D),
89	coca(fired_rule(anonymous("10"))),
90	A = C.
91'CHRset_3'(set(A, B, C), D, E, F) :-
92	'CHRset_3__33'(set(A, B, C), D, E, F).
93'CHRset_3__34'(['CHR#_2'(#(A, B), C, D, E)|F], [A], [G], H) ?-
94	'CHRvar'(C),
95	'CHRkill'(C),
96	'CHR='([B], [G]),
97	'CHR='(E, H).
98'CHRset_3__34'([A|B], C, D, E) :-
99	'CHRset_3__34'(B, C, D, E).
100:- set_flag('CHRset_3__34' / 4, leash, notrace).
101'CHRset_3__35'(['CHR#_2'(#(A, B), C, D, E)|F], [A], [G], H) ?-
102	'CHRvar'(C),
103	'CHRkill'(C),
104	'CHR='([B], [G]),
105	'CHR='(E, H).
106'CHRset_3__35'([A|B], C, D, E) :-
107	'CHRset_3__35'(B, C, D, E).
108:- set_flag('CHRset_3__35' / 4, leash, notrace).
109:- set_flag('CHRset_3' / 4, leash, notrace).
110:- current_macro('CHRset_3' / 4, _10943, _10944, _10945) -> true ; define_macro('CHRset_3' / 4, tr_chr / 2, [write]).
111'CHRset_3__33'(A, B, C, D) :-
112	'CHRset_3__36'(A, B, C, D).
113:- set_flag('CHRset_3__33' / 4, leash, notrace).
114'CHRset_3__36'(set(A, B, C), D, E, F) ?-
115	'CHRvar'(D),
116	!,
117	'CHRget_delayed_goals'(A, G),
118	'CHRset_3__36__37'(G, D, set(A, B, C), E, F).
119'CHRset_3__36'(set(A, B, C), D, E, F) :-
120	'CHRset_3__36__38'(set(A, B, C), D, E, F).
121:- set_flag('CHRset_3__36' / 4, leash, notrace).
122'CHRset_3__36__37'(['CHRin_2'(in(A, B), C, D, E)|F], G, set(B, H, I), J, K) ?-
123	'CHRvar'(C),
124	coca(try_double(K, set(B, H, I), E, in(A, B), set(L, M, N), in(O, L), keep_first, ((nonvar(O), s_insertion(O, M, P)), 'CHRkeep_heads_checking'(set(L, M, N), Q, set(L, P, N), R)), (s_memberchk(O, N), ('CHRhead_not_kept'(R) -> set(L, P, N) ; true)), belonging)),
125	no_global_bindings(((nonvar(A), s_insertion(A, H, S)), 'CHRkeep_heads_checking'(set(B, H, I), G, set(B, S, I), T)), (set(B, H, I), in(A, B))),
126	!,
127	'CHRkill'(C),
128	coca(fired_rule(belonging)),
129	'CHRset_3__36__37'(F, G, set(B, H, I), J, K),
130	s_memberchk(A, I),
131	(
132	    'CHRhead_not_kept'(T)
133	->
134	    set(B, S, I)
135	;
136	    true
137	).
138'CHRset_3__36__37'([A|B], C, D, E, F) :-
139	'CHRset_3__36__37'(B, C, D, E, F).
140'CHRset_3__36__37'([], A, B, C, D) :-
141	'CHRset_3__36__38'(B, A, C, D).
142:- set_flag('CHRset_3__36__37' / 5, leash, notrace).
143'CHRset_3__36__38'(set(A, B, C), D, E, F) ?-
144	'CHRvar'(D),
145	!,
146	'CHRget_delayed_goals'(A, G),
147	'CHRset_3__36__38__39'(G, D, set(A, B, C), E, F).
148'CHRset_3__36__38'(set(A, B, C), D, E, F) :-
149	'CHRset_3__36__38__40'(set(A, B, C), D, E, F).
150:- set_flag('CHRset_3__36__38' / 4, leash, notrace).
151'CHRset_3__36__38__39'(['CHRnotin_2'(notin(A, B), C, D, E)|F], G, set(B, H, I), J, K) ?-
152	'CHRvar'(C),
153	coca(try_double(K, set(B, H, I), E, notin(A, B), set(L, M, N), notin(O, L), keep_first, ((nonvar(O), list2set([O], P), s_delta(N, P, Q)), 'CHRkeep_heads_checking'(set(L, M, N), R, set(L, M, Q), S)), (\+ s_memberchk(O, M), ('CHRhead_not_kept'(S) -> set(L, M, Q) ; true)), not_belonging)),
154	no_global_bindings(((nonvar(A), list2set([A], T), s_delta(I, T, U)), 'CHRkeep_heads_checking'(set(B, H, I), G, set(B, H, U), V)), (set(B, H, I), notin(A, B))),
155	!,
156	'CHRkill'(C),
157	coca(fired_rule(not_belonging)),
158	'CHRset_3__36__38__39'(F, G, set(B, H, I), J, K),
159	\+ s_memberchk(A, H),
160	(
161	    'CHRhead_not_kept'(V)
162	->
163	    set(B, H, U)
164	;
165	    true
166	).
167'CHRset_3__36__38__39'([A|B], C, D, E, F) :-
168	'CHRset_3__36__38__39'(B, C, D, E, F).
169'CHRset_3__36__38__39'([], A, B, C, D) :-
170	'CHRset_3__36__38__40'(B, A, C, D).
171:- set_flag('CHRset_3__36__38__39' / 5, leash, notrace).
172'CHRset_3__36__38__40'(set(A, B, C), D, E, F) ?-
173	'CHRvar'(D),
174	!,
175	'CHRget_delayed_goals'(A, G),
176	'CHRset_3__36__38__40__41'(G, D, set(A, B, C), E, F).
177'CHRset_3__36__38__40'(set(A, B, C), D, E, F) :-
178	'CHRset_3__36__38__40__42'(set(A, B, C), D, E, F).
179:- set_flag('CHRset_3__36__38__40' / 4, leash, notrace).
180'CHRset_3__36__38__40__41'(['CHRincl_2'(incl(A, B), C, D, E)|F], G, set(B, H, I), J, K) ?-
181	'CHRvar'(C),
182	coca(try_double(K, set(B, H, I), E, incl(A, B), set(L, M, N), incl(O, L), keep_first, ((is_set(O), s_union(O, M, P)), 'CHRkeep_heads_checking'(set(L, M, N), Q, set(L, P, N), R)), 'CHRhead_not_kept'(R) -> set(L, P, N) ; true, anonymous("2"))),
183	no_global_bindings(((is_set(A), s_union(A, H, S)), 'CHRkeep_heads_checking'(set(B, H, I), G, set(B, S, I), T)), (set(B, H, I), incl(A, B))),
184	!,
185	'CHRkill'(C),
186	coca(fired_rule(anonymous("2"))),
187	'CHRset_3__36__38__40__41'(F, G, set(B, H, I), J, K),
188	(
189	    'CHRhead_not_kept'(T)
190	->
191	    set(B, S, I)
192	;
193	    true
194	).
195'CHRset_3__36__38__40__41'([A|B], C, D, E, F) :-
196	'CHRset_3__36__38__40__41'(B, C, D, E, F).
197'CHRset_3__36__38__40__41'([], A, B, C, D) :-
198	'CHRset_3__36__38__40__42'(B, A, C, D).
199:- set_flag('CHRset_3__36__38__40__41' / 5, leash, notrace).
200'CHRset_3__36__38__40__42'(set(A, B, C), D, E, F) ?-
201	'CHRvar'(D),
202	!,
203	'CHRget_delayed_goals'(A, G),
204	'CHRset_3__36__38__40__42__43'(G, D, set(A, B, C), E, F).
205'CHRset_3__36__38__40__42'(set(A, B, C), D, E, F) :-
206	'CHRset_3__36__38__40__42__44'(set(A, B, C), D, E, F).
207:- set_flag('CHRset_3__36__38__40__42' / 4, leash, notrace).
208'CHRset_3__36__38__40__42__43'(['CHRincl_2'(incl(A, B), C, D, E)|F], G, set(A, H, I), J, K) ?-
209	'CHRvar'(C),
210	coca(try_double(K, set(A, H, I), E, incl(A, B), set(L, M, N), incl(L, O), keep_first, ((is_set(O), s_intersection(O, N, P)), 'CHRkeep_heads_checking'(set(L, M, N), Q, set(L, M, P), R)), 'CHRhead_not_kept'(R) -> set(L, M, P) ; true, anonymous("3"))),
211	no_global_bindings(((is_set(B), s_intersection(B, I, S)), 'CHRkeep_heads_checking'(set(A, H, I), G, set(A, H, S), T)), (set(A, H, I), incl(A, B))),
212	!,
213	'CHRkill'(C),
214	coca(fired_rule(anonymous("3"))),
215	'CHRset_3__36__38__40__42__43'(F, G, set(A, H, I), J, K),
216	(
217	    'CHRhead_not_kept'(T)
218	->
219	    set(A, H, S)
220	;
221	    true
222	).
223'CHRset_3__36__38__40__42__43'([A|B], C, D, E, F) :-
224	'CHRset_3__36__38__40__42__43'(B, C, D, E, F).
225'CHRset_3__36__38__40__42__43'([], A, B, C, D) :-
226	'CHRset_3__36__38__40__42__44'(B, A, C, D).
227:- set_flag('CHRset_3__36__38__40__42__43' / 5, leash, notrace).
228'CHRset_3__36__38__40__42__44'(set(A, B, C), D, E, F) ?-
229	'CHRvar'(D),
230	!,
231	'CHRget_delayed_goals'(A, G),
232	'CHRset_3__36__38__40__42__44__45'(G, D, set(A, B, C), E, F).
233'CHRset_3__36__38__40__42__44'(set(A, B, C), D, E, F) :-
234	'CHRset_3__36__38__40__42__44__46'(set(A, B, C), D, E, F).
235:- set_flag('CHRset_3__36__38__40__42__44' / 4, leash, notrace).
236'CHRset_3__36__38__40__42__44__45'(['CHRincl_set_5'(incl_set(A, B, C, D, E), F, G, H)|I], J, set(D, K, L), M, N) ?-
237	'CHRvar'(F),
238	coca(try_double(N, set(D, K, L), H, incl_set(A, B, C, D, E), set(O, P, Q), incl_set(R, S, T, O, U), keep_first, s_included(T, P), U = true, anonymous("6"))),
239	no_global_bindings(s_included(C, K), (set(D, K, L), incl_set(A, B, C, D, E))),
240	!,
241	'CHRkill'(F),
242	coca(fired_rule(anonymous("6"))),
243	'CHRset_3__36__38__40__42__44__45'(I, J, set(D, K, L), M, N),
244	E = true.
245'CHRset_3__36__38__40__42__44__45'([A|B], C, D, E, F) :-
246	'CHRset_3__36__38__40__42__44__45'(B, C, D, E, F).
247'CHRset_3__36__38__40__42__44__45'([], A, B, C, D) :-
248	'CHRset_3__36__38__40__42__44__46'(B, A, C, D).
249:- set_flag('CHRset_3__36__38__40__42__44__45' / 5, leash, notrace).
250'CHRset_3__36__38__40__42__44__46'(set(A, B, C), D, E, F) ?-
251	'CHRvar'(D),
252	!,
253	'CHRget_delayed_goals'(A, G),
254	'CHRset_3__36__38__40__42__44__46__47'(G, D, set(A, B, C), E, F).
255'CHRset_3__36__38__40__42__44__46'(set(A, B, C), D, E, F) :-
256	'CHRset_3__36__38__40__42__44__46__48'(set(A, B, C), D, E, F).
257:- set_flag('CHRset_3__36__38__40__42__44__46' / 4, leash, notrace).
258'CHRset_3__36__38__40__42__44__46__47'(['CHRincl_set_5'(incl_set(A, B, C, D, E), F, G, H)|I], J, set(D, K, L), M, N) ?-
259	'CHRvar'(F),
260	coca(try_double(N, set(D, K, L), H, incl_set(A, B, C, D, E), set(O, P, Q), incl_set(R, S, T, O, U), keep_first, (\+ s_included(T, P), s_intersection(T, Q, V), s_union(S, P, W)), (set(R, S, V), set(O, W, Q)), anonymous("7"))),
261	no_global_bindings((\+ s_included(C, K), s_intersection(C, L, X), s_union(B, K, Y)), (set(D, K, L), incl_set(A, B, C, D, E))),
262	!,
263	'CHRkill'(F),
264	coca(fired_rule(anonymous("7"))),
265	'CHRset_3__36__38__40__42__44__46__47'(I, J, set(D, K, L), M, N),
266	set(A, B, X),
267	set(D, Y, L).
268'CHRset_3__36__38__40__42__44__46__47'([A|B], C, D, E, F) :-
269	'CHRset_3__36__38__40__42__44__46__47'(B, C, D, E, F).
270'CHRset_3__36__38__40__42__44__46__47'([], A, B, C, D) :-
271	'CHRset_3__36__38__40__42__44__46__48'(B, A, C, D).
272:- set_flag('CHRset_3__36__38__40__42__44__46__47' / 5, leash, notrace).
273'CHRset_3__36__38__40__42__44__46__48'(set(A, B, C), D, E, F) ?-
274	'CHRvar'(D),
275	!,
276	'CHRget_delayed_goals'(A, G),
277	'CHRset_3__36__38__40__42__44__46__48__49'(G, D, set(A, B, C), E, F).
278'CHRset_3__36__38__40__42__44__46__48'(set(A, B, C), D, E, F) :-
279	'CHRset_3__36__38__40__42__44__46__48__50'(set(A, B, C), D, E, F).
280:- set_flag('CHRset_3__36__38__40__42__44__46__48' / 4, leash, notrace).
281'CHRset_3__36__38__40__42__44__46__48__49'(['CHRunion_set_5'(union_set(A, B, C, D, E), F, G, H)|I], J, set(A, K, L), M, N) ?-
282	'CHRvar'(F),
283	coca(try_double(N, set(A, K, L), H, union_set(A, B, C, D, E), set(O, P, Q), union_set(O, R, S, T, U), keep_first, (s_union(S, P, V), s_union(T, Q, W)), set(U, V, W), anonymous("14"))),
284	no_global_bindings((s_union(C, K, X), s_union(D, L, Y)), (set(A, K, L), union_set(A, B, C, D, E))),
285	!,
286	'CHRkill'(F),
287	coca(fired_rule(anonymous("14"))),
288	'CHRset_3__36__38__40__42__44__46__48__49'(I, J, set(A, K, L), M, N),
289	set(E, X, Y).
290'CHRset_3__36__38__40__42__44__46__48__49'([A|B], C, D, E, F) :-
291	'CHRset_3__36__38__40__42__44__46__48__49'(B, C, D, E, F).
292'CHRset_3__36__38__40__42__44__46__48__49'([], A, B, C, D) :-
293	'CHRset_3__36__38__40__42__44__46__48__50'(B, A, C, D).
294:- set_flag('CHRset_3__36__38__40__42__44__46__48__49' / 5, leash, notrace).
295'CHRset_3__36__38__40__42__44__46__48__50'(set(A, B, C), D, E, F) ?-
296	'CHRvar'(D),
297	!,
298	'CHRget_delayed_goals'(A, G),
299	'CHRset_3__36__38__40__42__44__46__48__50__51'(G, D, set(A, B, C), E, F).
300'CHRset_3__36__38__40__42__44__46__48__50'(set(A, B, C), D, E, F) :-
301	'CHRset_3__36__38__40__42__44__46__48__50__52'(set(A, B, C), D, E, F).
302:- set_flag('CHRset_3__36__38__40__42__44__46__48__50' / 4, leash, notrace).
303'CHRset_3__36__38__40__42__44__46__48__50__51'(['CHRunion_S_3'(union_S(A, B, C), D, E, F)|G], H, set(A, I, J), K, L) ?-
304	'CHRvar'(D),
305	coca(try_double(L, set(A, I, J), F, union_S(A, B, C), set(M, N, O), union_S(M, P, Q), keep_first, true, union_S_S1(P, M, O, Q), anonymous("16"))),
306	!,
307	'CHRkill'(D),
308	coca(fired_rule(anonymous("16"))),
309	'CHRset_3__36__38__40__42__44__46__48__50__51'(G, H, set(A, I, J), K, L),
310	union_S_S1(B, A, J, C).
311'CHRset_3__36__38__40__42__44__46__48__50__51'([A|B], C, D, E, F) :-
312	'CHRset_3__36__38__40__42__44__46__48__50__51'(B, C, D, E, F).
313'CHRset_3__36__38__40__42__44__46__48__50__51'([], A, B, C, D) :-
314	'CHRset_3__36__38__40__42__44__46__48__50__52'(B, A, C, D).
315:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__51' / 5, leash, notrace).
316'CHRset_3__36__38__40__42__44__46__48__50__52'(set(A, B, C), D, E, F) ?-
317	'CHRvar'(D),
318	!,
319	'CHRget_delayed_goals'(A, G),
320	'CHRset_3__36__38__40__42__44__46__48__50__52__53'(G, D, set(A, B, C), E, F).
321'CHRset_3__36__38__40__42__44__46__48__50__52'(set(A, B, C), D, E, F) :-
322	'CHRset_3__36__38__40__42__44__46__48__50__52__54'(set(A, B, C), D, E, F).
323:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52' / 4, leash, notrace).
324'CHRset_3__36__38__40__42__44__46__48__50__52__53'(['CHRunion_S_S1_4'(union_S_S1(A, B, C, D), E, F, G)|H], I, set(A, J, K), L, M) ?-
325	'CHRvar'(E),
326	coca(try_double(M, set(A, J, K), G, union_S_S1(A, B, C, D), set(N, O, P), union_S_S1(N, Q, R, S), keep_first, true, (s_delta(S, R, T), incl(T, N), s_delta(S, P, U), incl(U, Q)), anonymous("17"))),
327	!,
328	'CHRkill'(E),
329	coca(fired_rule(anonymous("17"))),
330	'CHRset_3__36__38__40__42__44__46__48__50__52__53'(H, I, set(A, J, K), L, M),
331	s_delta(D, C, V),
332	incl(V, A),
333	s_delta(D, K, W),
334	incl(W, B).
335'CHRset_3__36__38__40__42__44__46__48__50__52__53'([A|B], C, D, E, F) :-
336	'CHRset_3__36__38__40__42__44__46__48__50__52__53'(B, C, D, E, F).
337'CHRset_3__36__38__40__42__44__46__48__50__52__53'([], A, B, C, D) :-
338	'CHRset_3__36__38__40__42__44__46__48__50__52__54'(B, A, C, D).
339:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__53' / 5, leash, notrace).
340'CHRset_3__36__38__40__42__44__46__48__50__52__54'(set(A, B, C), D, E, F) ?-
341	'CHRvar'(D),
342	!,
343	'CHRget_delayed_goals'(A, G),
344	'CHRset_3__36__38__40__42__44__46__48__50__52__54__55'(G, D, set(A, B, C), E, F).
345'CHRset_3__36__38__40__42__44__46__48__50__52__54'(set(A, B, C), D, E, F) :-
346	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56'(set(A, B, C), D, E, F).
347:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54' / 4, leash, notrace).
348'CHRset_3__36__38__40__42__44__46__48__50__52__54__55'(['CHRdisjoint_2'(disjoint(A, B), C, D, E)|F], G, set(B, H, I), J, K) ?-
349	'CHRvar'(C),
350	coca(try_double(K, set(B, H, I), E, disjoint(A, B), set(L, M, N), disjoint(O, L), keep_first, ((is_set(O), s_delta(N, O, P)), 'CHRkeep_heads_checking'(set(L, M, N), Q, set(L, M, P), R)), 'CHRhead_not_kept'(R) -> set(L, M, P) ; true, anonymous("28"))),
351	no_global_bindings(((is_set(A), s_delta(I, A, S)), 'CHRkeep_heads_checking'(set(B, H, I), G, set(B, H, S), T)), (set(B, H, I), disjoint(A, B))),
352	!,
353	'CHRkill'(C),
354	coca(fired_rule(anonymous("28"))),
355	'CHRset_3__36__38__40__42__44__46__48__50__52__54__55'(F, G, set(B, H, I), J, K),
356	(
357	    'CHRhead_not_kept'(T)
358	->
359	    set(B, H, S)
360	;
361	    true
362	).
363'CHRset_3__36__38__40__42__44__46__48__50__52__54__55'([A|B], C, D, E, F) :-
364	'CHRset_3__36__38__40__42__44__46__48__50__52__54__55'(B, C, D, E, F).
365'CHRset_3__36__38__40__42__44__46__48__50__52__54__55'([], A, B, C, D) :-
366	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56'(B, A, C, D).
367:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__55' / 5, leash, notrace).
368'CHRset_3__36__38__40__42__44__46__48__50__52__54__56'(set(A, B, C), D, E, F) ?-
369	'CHRvar'(D),
370	!,
371	'CHRget_delayed_goals'(A, G),
372	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__57'(G, D, set(A, B, C), E, F).
373'CHRset_3__36__38__40__42__44__46__48__50__52__54__56'(set(A, B, C), D, E, F) :-
374	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58'(set(A, B, C), D, E, F).
375:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56' / 4, leash, notrace).
376'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__57'(['CHRdisjoint_2'(disjoint(A, B), C, D, E)|F], G, set(A, H, I), J, K) ?-
377	'CHRvar'(C),
378	coca(try_double(K, set(A, H, I), E, disjoint(A, B), set(L, M, N), disjoint(L, O), keep_first, ((is_set(O), s_delta(N, O, P)), 'CHRkeep_heads_checking'(set(L, M, N), Q, set(L, M, P), R)), 'CHRhead_not_kept'(R) -> set(L, M, P) ; true, anonymous("29"))),
379	no_global_bindings(((is_set(B), s_delta(I, B, S)), 'CHRkeep_heads_checking'(set(A, H, I), G, set(A, H, S), T)), (set(A, H, I), disjoint(A, B))),
380	!,
381	'CHRkill'(C),
382	coca(fired_rule(anonymous("29"))),
383	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__57'(F, G, set(A, H, I), J, K),
384	(
385	    'CHRhead_not_kept'(T)
386	->
387	    set(A, H, S)
388	;
389	    true
390	).
391'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__57'([A|B], C, D, E, F) :-
392	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__57'(B, C, D, E, F).
393'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__57'([], A, B, C, D) :-
394	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58'(B, A, C, D).
395:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__57' / 5, leash, notrace).
396'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58'(set(A, B, C), D, E, F) ?-
397	'CHRvar'(D),
398	!,
399	'CHRget_delayed_goals'(A, G),
400	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__59'(G, D, set(A, B, C), E, F).
401'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58'(set(A, B, C), D, E, F) :-
402	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60'(set(A, B, C), D, E, F).
403:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58' / 4, leash, notrace).
404'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__59'(['CHRset_disjoint_4'(set_disjoint(A, B, C, D), E, F, G)|H], I, set(A, J, K), L, M) ?-
405	'CHRvar'(E),
406	coca(try_double(M, set(A, J, K), G, set_disjoint(A, B, C, D), set(N, O, P), set_disjoint(N, Q, R, S), keep_first, ((s_delta(P, R, T), s_delta(S, O, U)), 'CHRkeep_heads_checking'(set(N, O, P), V, set(N, O, T), W)), (('CHRhead_not_kept'(W) -> set(N, O, T) ; true), set(Q, R, U)), anonymous("31"))),
407	no_global_bindings(((s_delta(K, C, X), s_delta(D, J, Y)), 'CHRkeep_heads_checking'(set(A, J, K), I, set(A, J, X), Z)), (set(A, J, K), set_disjoint(A, B, C, D))),
408	!,
409	'CHRkill'(E),
410	coca(fired_rule(anonymous("31"))),
411	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__59'(H, I, set(A, J, K), L, M),
412	(
413	    'CHRhead_not_kept'(Z)
414	->
415	    set(A, J, X)
416	;
417	    true
418	),
419	set(B, C, Y).
420'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__59'([A|B], C, D, E, F) :-
421	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__59'(B, C, D, E, F).
422'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__59'([], A, B, C, D) :-
423	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60'(B, A, C, D).
424:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__59' / 5, leash, notrace).
425'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60'(set(A, B, C), D, E, F) ?-
426	'CHRvar'(D),
427	!,
428	'CHRget_delayed_goals'(A, G),
429	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__61'(G, D, set(A, B, C), E, F).
430'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60'(set(A, B, C), D, E, F) :-
431	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62'(set(A, B, C), D, E, F).
432:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60' / 4, leash, notrace).
433'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__61'(['CHRset_3'(set(A, B, C), D, E, F)|G], H, set(A, I, J), K, L) ?-
434	'CHRvar'(D),
435	'CHRcheck_and_mark_applied'('12'(equality), H, D, K, E),
436	coca(try_double(L, set(A, I, J), F, set(A, B, C), set(M, N, O), set(M, P, Q), augmentation, ((s_union(N, P, R), s_intersection(O, Q, S)), 'CHRkeep_heads_checking'(set(M, N, O), T, set(M, P, Q), U, set(M, R, S), V)), 'CHRhead_not_kept'(V) -> set(M, R, S) ; true, equality)),
437	no_global_bindings(((s_union(I, B, W), s_intersection(J, C, X)), 'CHRkeep_heads_checking'(set(A, I, J), H, set(A, B, C), D, set(A, W, X), Y)), (set(A, I, J), set(A, B, C))),
438	!,
439	coca(fired_rule(equality)),
440	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__61'(G, H, set(A, I, J), K, L),
441	(
442	    'CHRhead_not_kept'(Y)
443	->
444	    set(A, W, X)
445	;
446	    true
447	).
448'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__61'([A|B], C, D, E, F) :-
449	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__61'(B, C, D, E, F).
450'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__61'([], A, B, C, D) :-
451	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62'(B, A, C, D).
452:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__61' / 5, leash, notrace).
453'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62'(set(A, B, C), D, E, F) ?-
454	'CHRvar'(D),
455	!,
456	'CHRget_delayed_goals'(A, G),
457	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__63'(G, D, set(A, B, C), E, F).
458'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62'(set(A, B, C), D, E, F) :-
459	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64'(set(A, B, C), D, E, F).
460:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62' / 4, leash, notrace).
461'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__63'(['CHRset_3'(set(A, B, C), D, E, F)|G], H, set(A, I, J), K, L) ?-
462	'CHRvar'(D),
463	'CHRcheck_and_mark_applied'('21'(equality), H, D, K, E),
464	coca(try_double(L, set(A, I, J), F, set(A, B, C), set(M, N, O), set(M, P, Q), augmentation, ((s_union(P, N, R), s_intersection(Q, O, S)), 'CHRkeep_heads_checking'(set(M, P, Q), T, set(M, N, O), U, set(M, R, S), V)), 'CHRhead_not_kept'(V) -> set(M, R, S) ; true, equality)),
465	no_global_bindings(((s_union(B, I, W), s_intersection(C, J, X)), 'CHRkeep_heads_checking'(set(A, B, C), D, set(A, I, J), H, set(A, W, X), Y)), (set(A, I, J), set(A, B, C))),
466	!,
467	coca(fired_rule(equality)),
468	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__63'(G, H, set(A, I, J), K, L),
469	(
470	    'CHRhead_not_kept'(Y)
471	->
472	    set(A, W, X)
473	;
474	    true
475	).
476'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__63'([A|B], C, D, E, F) :-
477	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__63'(B, C, D, E, F).
478'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__63'([], A, B, C, D) :-
479	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64'(B, A, C, D).
480:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__63' / 5, leash, notrace).
481'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64'(set(A, B, C), D, E, F) ?-
482	'CHRvar'(D),
483	!,
484	'CHRget_delayed_goals'(A, G),
485	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__65'(G, D, set(A, B, C), E, F).
486'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64'(set(A, B, C), D, E, F) :-
487	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66'(set(A, B, C), D, E, F).
488:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64' / 4, leash, notrace).
489'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__65'(['CHRincl_2'(incl(A, B), C, D, E)|F], G, set(A, H, I), J, K) ?-
490	'CHRvar'(C),
491	'CHRcheck_and_mark_applied'(anonymous("5"), G, C, J, D),
492	coca(try_double(K, set(A, H, I), E, incl(A, B), set(L, M, N), incl(L, O), augmentation, true, incl_set(L, M, N, O, P), anonymous("5"))),
493	!,
494	coca(fired_rule(anonymous("5"))),
495	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__65'(F, G, set(A, H, I), J, K),
496	incl_set(A, H, I, B, C).
497'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__65'([A|B], C, D, E, F) :-
498	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__65'(B, C, D, E, F).
499'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__65'([], A, B, C, D) :-
500	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66'(B, A, C, D).
501:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__65' / 5, leash, notrace).
502'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66'(set(A, B, C), D, E, F) ?-
503	'CHRvar'(D),
504	!,
505	'CHRget_delayed_goals'(A, G),
506	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__67'(G, D, set(A, B, C), E, F).
507'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66'(set(A, B, C), D, E, F) :-
508	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68'(set(A, B, C), D, E, F).
509:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66' / 4, leash, notrace).
510'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__67'(['CHR#_2'(#(A, B), C, D, E)|F], G, set(A, H, I), J, K) ?-
511	'CHRvar'(C),
512	'CHRcheck_and_mark_applied'(anonymous("8"), G, C, J, D),
513	coca(try_double(K, set(A, H, I), E, #(A, B), set(L, M, N), #(L, O), augmentation, true, (s_card(M, P), P =< O, s_card(N, Q), O =< Q), anonymous("8"))),
514	!,
515	coca(fired_rule(anonymous("8"))),
516	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__67'(F, G, set(A, H, I), J, K),
517	s_card(H, R),
518	R =< B,
519	s_card(I, S),
520	B =< S.
521'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__67'([A|B], C, D, E, F) :-
522	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__67'(B, C, D, E, F).
523'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__67'([], A, B, C, D) :-
524	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68'(B, A, C, D).
525:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__67' / 5, leash, notrace).
526'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68'(set(A, B, C), D, E, F) ?-
527	'CHRvar'(D),
528	!,
529	'CHRget_delayed_goals'(A, G),
530	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__69'(G, D, set(A, B, C), E, F).
531'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68'(set(A, B, C), D, E, F) :-
532	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70'(set(A, B, C), D, E, F).
533:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68' / 4, leash, notrace).
534'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__69'(['CHRset_union_3'(set_union(A, B, C), D, E, F)|G], H, set(A, I, J), K, L) ?-
535	'CHRvar'(D),
536	'CHRcheck_and_mark_applied'(anonymous("13"), H, D, K, E),
537	coca(try_double(L, set(A, I, J), F, set_union(A, B, C), set(M, N, O), set_union(M, P, Q), augmentation, true, union_set(P, M, N, O, Q), anonymous("13"))),
538	!,
539	coca(fired_rule(anonymous("13"))),
540	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__69'(G, H, set(A, I, J), K, L),
541	union_set(B, A, I, J, C).
542'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__69'([A|B], C, D, E, F) :-
543	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__69'(B, C, D, E, F).
544'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__69'([], A, B, C, D) :-
545	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70'(B, A, C, D).
546:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__69' / 5, leash, notrace).
547'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70'(set(A, B, C), D, E, F) ?-
548	'CHRvar'(D),
549	!,
550	'CHRget_delayed_goals'(A, G),
551	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__71'(G, D, set(A, B, C), E, F).
552'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70'(set(A, B, C), D, E, F) :-
553	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72'(set(A, B, C), D, E, F).
554:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70' / 4, leash, notrace).
555'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__71'(['CHRset_union_3'(set_union(A, B, C), D, E, F)|G], H, set(C, I, J), K, L) ?-
556	'CHRvar'(D),
557	'CHRcheck_and_mark_applied'(anonymous("15"), H, D, K, E),
558	coca(try_double(L, set(C, I, J), F, set_union(A, B, C), set(M, N, O), set_union(P, Q, M), augmentation, true, union_S(P, Q, N), anonymous("15"))),
559	!,
560	coca(fired_rule(anonymous("15"))),
561	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__71'(G, H, set(C, I, J), K, L),
562	union_S(A, B, I).
563'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__71'([A|B], C, D, E, F) :-
564	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__71'(B, C, D, E, F).
565'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__71'([], A, B, C, D) :-
566	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72'(B, A, C, D).
567:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__71' / 5, leash, notrace).
568'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72'(set(A, B, C), D, E, F) ?-
569	'CHRvar'(D),
570	!,
571	'CHRget_delayed_goals'(A, G),
572	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__73'(G, D, set(A, B, C), E, F).
573'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72'(set(A, B, C), D, E, F) :-
574	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74'(set(A, B, C), D, E, F).
575:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72' / 4, leash, notrace).
576'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__73'(['CHRset_union_3'(set_union(A, B, C), D, E, F)|G], H, set(B, I, J), K, L) ?-
577	'CHRvar'(D),
578	'CHRcheck_and_mark_applied'(anonymous("20"), H, D, K, E),
579	coca(try_double(L, set(B, I, J), F, set_union(A, B, C), set(M, N, O), set_union(P, M, Q), augmentation, (is_set(P), s_union(P, N, R), s_union(P, O, S)), set(Q, R, S), anonymous("20"))),
580	no_global_bindings((is_set(A), s_union(A, I, T), s_union(A, J, U)), (set(B, I, J), set_union(A, B, C))),
581	!,
582	coca(fired_rule(anonymous("20"))),
583	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__73'(G, H, set(B, I, J), K, L),
584	set(C, T, U).
585'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__73'([A|B], C, D, E, F) :-
586	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__73'(B, C, D, E, F).
587'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__73'([], A, B, C, D) :-
588	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74'(B, A, C, D).
589:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__73' / 5, leash, notrace).
590'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74'(set(A, B, C), D, E, F) ?-
591	'CHRvar'(D),
592	!,
593	'CHRget_delayed_goals'(A, G),
594	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__75'(G, D, set(A, B, C), E, F).
595'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74'(set(A, B, C), D, E, F) :-
596	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76'(set(A, B, C), D, E, F).
597:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74' / 4, leash, notrace).
598'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__75'(['CHRset_union_3'(set_union(A, B, C), D, E, F)|G], H, set(A, I, J), K, L) ?-
599	'CHRvar'(D),
600	'CHRcheck_and_mark_applied'(anonymous("21"), H, D, K, E),
601	coca(try_double(L, set(A, I, J), F, set_union(A, B, C), set(M, N, O), set_union(M, P, Q), augmentation, (is_set(P), s_union(P, N, R), s_union(P, O, S)), set(Q, R, S), anonymous("21"))),
602	no_global_bindings((is_set(B), s_union(B, I, T), s_union(B, J, U)), (set(A, I, J), set_union(A, B, C))),
603	!,
604	coca(fired_rule(anonymous("21"))),
605	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__75'(G, H, set(A, I, J), K, L),
606	set(C, T, U).
607'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__75'([A|B], C, D, E, F) :-
608	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__75'(B, C, D, E, F).
609'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__75'([], A, B, C, D) :-
610	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76'(B, A, C, D).
611:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__75' / 5, leash, notrace).
612'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76'(set(A, B, C), D, E, F) ?-
613	'CHRvar'(D),
614	!,
615	'CHRget_delayed_goals'(A, G),
616	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__77'(G, D, set(A, B, C), E, F).
617'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76'(set(A, B, C), D, E, F) :-
618	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78'(set(A, B, C), D, E, F).
619:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76' / 4, leash, notrace).
620'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__77'(['CHRground_union_3'(ground_union(A, B, C), D, E, F)|G], H, set(A, I, J), K, L) ?-
621	'CHRvar'(D),
622	'CHRcheck_and_mark_applied'(anonymous("25"), H, D, K, E),
623	coca(try_double(L, set(A, I, J), F, ground_union(A, B, C), set(M, N, O), ground_union(M, P, Q), augmentation, true, (s_delta(Q, O, R), incl(R, P)), anonymous("25"))),
624	!,
625	coca(fired_rule(anonymous("25"))),
626	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__77'(G, H, set(A, I, J), K, L),
627	s_delta(C, J, S),
628	incl(S, B).
629'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__77'([A|B], C, D, E, F) :-
630	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__77'(B, C, D, E, F).
631'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__77'([], A, B, C, D) :-
632	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78'(B, A, C, D).
633:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__77' / 5, leash, notrace).
634'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78'(set(A, B, C), D, E, F) ?-
635	'CHRvar'(D),
636	!,
637	'CHRget_delayed_goals'(A, G),
638	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__79'(G, D, set(A, B, C), E, F).
639'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78'(set(A, B, C), D, E, F) :-
640	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80'(set(A, B, C), D, E, F).
641:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78' / 4, leash, notrace).
642'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__79'(['CHRground_union_3'(ground_union(A, B, C), D, E, F)|G], H, set(B, I, J), K, L) ?-
643	'CHRvar'(D),
644	'CHRcheck_and_mark_applied'(anonymous("26"), H, D, K, E),
645	coca(try_double(L, set(B, I, J), F, ground_union(A, B, C), set(M, N, O), ground_union(P, M, Q), augmentation, true, (s_delta(Q, O, R), incl(R, P)), anonymous("26"))),
646	!,
647	coca(fired_rule(anonymous("26"))),
648	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__79'(G, H, set(B, I, J), K, L),
649	s_delta(C, J, S),
650	incl(S, A).
651'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__79'([A|B], C, D, E, F) :-
652	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__79'(B, C, D, E, F).
653'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__79'([], A, B, C, D) :-
654	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80'(B, A, C, D).
655:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__79' / 5, leash, notrace).
656'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80'(set(A, B, C), D, E, F) ?-
657	'CHRvar'(D),
658	!,
659	'CHRget_delayed_goals'(A, G),
660	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80__81'(G, D, set(A, B, C), E, F).
661'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80'(set(A, B, C), D, E, F) :-
662	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80__82'(set(A, B, C), D, E, F).
663:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80' / 4, leash, notrace).
664'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80__81'(['CHRdisjoint_2'(disjoint(A, B), C, D, E)|F], G, set(A, H, I), J, K) ?-
665	'CHRvar'(C),
666	'CHRcheck_and_mark_applied'(anonymous("30"), G, C, J, D),
667	coca(try_double(K, set(A, H, I), E, disjoint(A, B), set(L, M, N), disjoint(L, O), augmentation, true, set_disjoint(O, L, M, N), anonymous("30"))),
668	!,
669	coca(fired_rule(anonymous("30"))),
670	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80__81'(F, G, set(A, H, I), J, K),
671	set_disjoint(B, A, H, I).
672'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80__81'([A|B], C, D, E, F) :-
673	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80__81'(B, C, D, E, F).
674'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80__81'([], A, B, C, D) :-
675	'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80__82'(B, A, C, D).
676:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80__81' / 5, leash, notrace).
677'CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80__82'(set(A, B, C), D, E, F) :-
678	(
679	    'CHRvar'(D)
680	->
681	    'CHRdelay'([D, set(A, B, C)], 'CHRset_3'(set(A, B, C), D, E, F))
682	;
683	    true
684	).
685:- set_flag('CHRset_3__36__38__40__42__44__46__48__50__52__54__56__58__60__62__64__66__68__70__72__74__76__78__80__82' / 4, leash, notrace).
686in(A, B) :-
687	'CHRgen_num'(C),
688	coca(add_one_constraint(C, in(A, B))),
689	'CHRin_2'(in(A, B), D, E, C).
690
691
692
693%%% Rules handling for in / 2
694
695'CHRin_2'(in(A, B), C, D, E) :-
696	(
697	    'CHRnonvar'(C)
698	;
699	    'CHRalready_in'('CHRin_2'(in(A, B), C, D, E)),
700	    coca(already_in)
701	),
702	!.
703'CHRin_2'(in(A, B), C, D, E) ?-
704	'CHRget_delayed_goals'(B, F),
705	'CHRin_2__84'(F, [B], [G, H, I], J),
706	coca(try_double(E, in(A, B), J, set(B, I, H), in(K, L), set(L, M, N), keep_second, ((nonvar(K), s_insertion(K, M, O)), 'CHRkeep_heads_checking'(set(L, M, N), P, set(L, O, N), Q)), (s_memberchk(K, N), ('CHRhead_not_kept'(Q) -> set(L, O, N) ; true)), belonging)),
707	no_global_bindings(((nonvar(A), s_insertion(A, I, R)), 'CHRkeep_heads_checking'(set(B, I, H), G, set(B, R, H), S)), (in(A, B), set(B, I, H))),
708	!,
709	'CHRkill'(C),
710	coca(fired_rule(belonging)),
711	s_memberchk(A, H),
712	(
713	    'CHRhead_not_kept'(S)
714	->
715	    set(B, R, H)
716	;
717	    true
718	).
719'CHRin_2'(in(A, B), C, D, E) :-
720	'CHRin_2__83'(in(A, B), C, D, E).
721'CHRin_2__84'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H, I, J], K) ?-
722	'CHRvar'(D),
723	'CHR='([D, C, B], [H, I, J]),
724	'CHR='(F, K).
725'CHRin_2__84'([A|B], C, D, E) :-
726	'CHRin_2__84'(B, C, D, E).
727:- set_flag('CHRin_2__84' / 4, leash, notrace).
728:- set_flag('CHRin_2' / 4, leash, notrace).
729:- current_macro('CHRin_2' / 4, _27523, _27524, _27525) -> true ; define_macro('CHRin_2' / 4, tr_chr / 2, [write]).
730'CHRin_2__83'(A, B, C, D) :-
731	'CHRin_2__85'(A, B, C, D).
732:- set_flag('CHRin_2__83' / 4, leash, notrace).
733'CHRin_2__85'(in(A, B), C, D, E) :-
734	(
735	    'CHRvar'(C)
736	->
737	    'CHRdelay'([C, in(A, B)], 'CHRin_2'(in(A, B), C, D, E))
738	;
739	    true
740	).
741:- set_flag('CHRin_2__85' / 4, leash, notrace).
742notin(A, B) :-
743	'CHRgen_num'(C),
744	coca(add_one_constraint(C, notin(A, B))),
745	'CHRnotin_2'(notin(A, B), D, E, C).
746
747
748
749%%% Rules handling for notin / 2
750
751'CHRnotin_2'(notin(A, B), C, D, E) :-
752	(
753	    'CHRnonvar'(C)
754	;
755	    'CHRalready_in'('CHRnotin_2'(notin(A, B), C, D, E)),
756	    coca(already_in)
757	),
758	!.
759'CHRnotin_2'(notin(A, B), C, D, E) ?-
760	'CHRget_delayed_goals'(B, F),
761	'CHRnotin_2__87'(F, [B], [G, H, I], J),
762	coca(try_double(E, notin(A, B), J, set(B, I, H), notin(K, L), set(L, M, N), keep_second, ((nonvar(K), list2set([K], O), s_delta(N, O, P)), 'CHRkeep_heads_checking'(set(L, M, N), Q, set(L, M, P), R)), (\+ s_memberchk(K, M), ('CHRhead_not_kept'(R) -> set(L, M, P) ; true)), not_belonging)),
763	no_global_bindings(((nonvar(A), list2set([A], S), s_delta(H, S, T)), 'CHRkeep_heads_checking'(set(B, I, H), G, set(B, I, T), U)), (notin(A, B), set(B, I, H))),
764	!,
765	'CHRkill'(C),
766	coca(fired_rule(not_belonging)),
767	\+ s_memberchk(A, I),
768	(
769	    'CHRhead_not_kept'(U)
770	->
771	    set(B, I, T)
772	;
773	    true
774	).
775'CHRnotin_2'(notin(A, B), C, D, E) :-
776	'CHRnotin_2__86'(notin(A, B), C, D, E).
777'CHRnotin_2__87'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H, I, J], K) ?-
778	'CHRvar'(D),
779	'CHR='([D, C, B], [H, I, J]),
780	'CHR='(F, K).
781'CHRnotin_2__87'([A|B], C, D, E) :-
782	'CHRnotin_2__87'(B, C, D, E).
783:- set_flag('CHRnotin_2__87' / 4, leash, notrace).
784:- set_flag('CHRnotin_2' / 4, leash, notrace).
785:- current_macro('CHRnotin_2' / 4, _28743, _28744, _28745) -> true ; define_macro('CHRnotin_2' / 4, tr_chr / 2, [write]).
786'CHRnotin_2__86'(A, B, C, D) :-
787	'CHRnotin_2__88'(A, B, C, D).
788:- set_flag('CHRnotin_2__86' / 4, leash, notrace).
789'CHRnotin_2__88'(notin(A, B), C, D, E) :-
790	(
791	    'CHRvar'(C)
792	->
793	    'CHRdelay'([C, notin(A, B)], 'CHRnotin_2'(notin(A, B), C, D, E))
794	;
795	    true
796	).
797:- set_flag('CHRnotin_2__88' / 4, leash, notrace).
798incl(A, B) :-
799	'CHRgen_num'(C),
800	coca(add_one_constraint(C, incl(A, B))),
801	'CHRincl_2'(incl(A, B), D, E, C).
802
803
804
805%%% Rules handling for incl / 2
806
807'CHRincl_2'(incl(A, B), C, D, E) :-
808	(
809	    'CHRnonvar'(C)
810	;
811	    'CHRalready_in'('CHRincl_2'(incl(A, B), C, D, E)),
812	    coca(already_in)
813	),
814	!.
815'CHRincl_2'(incl(A, B), C, D, E) ?-
816	coca(try_rule(E, incl(A, B), anonymous("4"), incl(F, G), replacement, (is_set(F), is_set(G)), s_included(F, G))),
817	no_global_bindings((is_set(A), is_set(B)), incl(A, B)),
818	!,
819	'CHRkill'(C),
820	coca(fired_rule(anonymous("4"))),
821	s_included(A, B).
822'CHRincl_2'(incl(A, B), C, D, E) ?-
823	'CHRget_delayed_goals'(B, F),
824	'CHRincl_2__90'(F, [B], [G, H, I], J),
825	coca(try_double(E, incl(A, B), J, set(B, I, H), incl(K, L), set(L, M, N), keep_second, ((is_set(K), s_union(K, M, O)), 'CHRkeep_heads_checking'(set(L, M, N), P, set(L, O, N), Q)), 'CHRhead_not_kept'(Q) -> set(L, O, N) ; true, anonymous("2"))),
826	no_global_bindings(((is_set(A), s_union(A, I, R)), 'CHRkeep_heads_checking'(set(B, I, H), G, set(B, R, H), S)), (incl(A, B), set(B, I, H))),
827	!,
828	'CHRkill'(C),
829	coca(fired_rule(anonymous("2"))),
830	(
831	    'CHRhead_not_kept'(S)
832	->
833	    set(B, R, H)
834	;
835	    true
836	).
837'CHRincl_2'(incl(A, B), C, D, E) ?-
838	'CHRget_delayed_goals'(A, F),
839	'CHRincl_2__91'(F, [A], [G, H, I], J),
840	coca(try_double(E, incl(A, B), J, set(A, I, H), incl(K, L), set(K, M, N), keep_second, ((is_set(L), s_intersection(L, N, O)), 'CHRkeep_heads_checking'(set(K, M, N), P, set(K, M, O), Q)), 'CHRhead_not_kept'(Q) -> set(K, M, O) ; true, anonymous("3"))),
841	no_global_bindings(((is_set(B), s_intersection(B, H, R)), 'CHRkeep_heads_checking'(set(A, I, H), G, set(A, I, R), S)), (incl(A, B), set(A, I, H))),
842	!,
843	'CHRkill'(C),
844	coca(fired_rule(anonymous("3"))),
845	(
846	    'CHRhead_not_kept'(S)
847	->
848	    set(A, I, R)
849	;
850	    true
851	).
852'CHRincl_2'(incl(A, B), C, D, E) :-
853	'CHRincl_2__89'(incl(A, B), C, D, E).
854'CHRincl_2__90'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H, I, J], K) ?-
855	'CHRvar'(D),
856	'CHR='([D, C, B], [H, I, J]),
857	'CHR='(F, K).
858'CHRincl_2__90'([A|B], C, D, E) :-
859	'CHRincl_2__90'(B, C, D, E).
860:- set_flag('CHRincl_2__90' / 4, leash, notrace).
861'CHRincl_2__91'(['CHRset_3'(set(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'CHRincl_2__91'([A|B], C, D, E) :-
866	'CHRincl_2__91'(B, C, D, E).
867:- set_flag('CHRincl_2__91' / 4, leash, notrace).
868:- set_flag('CHRincl_2' / 4, leash, notrace).
869:- current_macro('CHRincl_2' / 4, _30663, _30664, _30665) -> true ; define_macro('CHRincl_2' / 4, tr_chr / 2, [write]).
870'CHRincl_2__89'(A, B, C, D) :-
871	'CHRincl_2__92'(A, B, C, D).
872:- set_flag('CHRincl_2__89' / 4, leash, notrace).
873'CHRincl_2__92'(incl(A, B), C, D, E) ?-
874	'CHRvar'(C),
875	!,
876	'CHRget_delayed_goals'(A, F),
877	'CHRincl_2__92__93'(F, C, incl(A, B), D, E).
878'CHRincl_2__92'(incl(A, B), C, D, E) :-
879	'CHRincl_2__92__94'(incl(A, B), C, D, E).
880:- set_flag('CHRincl_2__92' / 4, leash, notrace).
881'CHRincl_2__92__93'(['CHRset_3'(set(A, B, C), D, E, F)|G], H, incl(A, I), J, K) ?-
882	'CHRvar'(D),
883	'CHRcheck_and_mark_applied'(anonymous("5"), H, D, J, E),
884	coca(try_double(K, incl(A, I), F, set(A, B, C), incl(L, M), set(L, N, O), augmentation, true, incl_set(L, N, O, M, P), anonymous("5"))),
885	!,
886	coca(fired_rule(anonymous("5"))),
887	'CHRincl_2__92__93'(G, H, incl(A, I), J, K),
888	incl_set(A, B, C, I, H).
889'CHRincl_2__92__93'([A|B], C, D, E, F) :-
890	'CHRincl_2__92__93'(B, C, D, E, F).
891'CHRincl_2__92__93'([], A, B, C, D) :-
892	'CHRincl_2__92__94'(B, A, C, D).
893:- set_flag('CHRincl_2__92__93' / 5, leash, notrace).
894'CHRincl_2__92__94'(incl(A, B), C, D, E) :-
895	(
896	    'CHRvar'(C)
897	->
898	    'CHRdelay'([C, incl(A, B)], 'CHRincl_2'(incl(A, B), C, D, E))
899	;
900	    true
901	).
902:- set_flag('CHRincl_2__92__94' / 4, leash, notrace).
903#(A, B) :-
904	'CHRgen_num'(C),
905	coca(add_one_constraint(C, #(A, B))),
906	'CHR#_2'(#(A, B), D, E, C).
907
908
909
910%%% Rules handling for # / 2
911
912'CHR#_2'(#(A, B), C, D, E) :-
913	(
914	    'CHRnonvar'(C)
915	;
916	    'CHRalready_in'('CHR#_2'(#(A, B), C, D, E)),
917	    coca(already_in)
918	),
919	!.
920'CHR#_2'(#(A, B), C, D, E) ?-
921	coca(try_rule(E, #(A, B), anonymous("11"), #(F, G), replacement, is_set(F), s_card(F, G))),
922	no_global_bindings(is_set(A), #(A, B)),
923	!,
924	'CHRkill'(C),
925	coca(fired_rule(anonymous("11"))),
926	s_card(A, B).
927'CHR#_2'(#(A, B), C, D, E) ?-
928	'CHRget_delayed_goals'(A, F),
929	'CHR#_2__96'(F, [A], [G], H),
930	coca(try_double(E, #(A, B), H, set(A, G, I), #(J, K), set(J, L, M), replacement, s_card(L, K), J = L, anonymous("9"))),
931	no_global_bindings(s_card(G, B), (#(A, B), set(A, G, I))),
932	!,
933	'CHRkill'(C),
934	coca(fired_rule(anonymous("9"))),
935	A = G.
936'CHR#_2'(#(A, B), C, D, E) ?-
937	'CHRget_delayed_goals'(A, F),
938	'CHR#_2__97'(F, [A], [G], H),
939	coca(try_double(E, #(A, B), H, set(A, I, G), #(J, K), set(J, L, M), replacement, s_card(M, K), J = M, anonymous("10"))),
940	no_global_bindings(s_card(G, B), (#(A, B), set(A, I, G))),
941	!,
942	'CHRkill'(C),
943	coca(fired_rule(anonymous("10"))),
944	A = G.
945'CHR#_2'(#(A, B), C, D, E) :-
946	'CHR#_2__95'(#(A, B), C, D, E).
947'CHR#_2__96'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H], I) ?-
948	'CHRvar'(D),
949	'CHRkill'(D),
950	'CHR='([B], [H]),
951	'CHR='(F, I).
952'CHR#_2__96'([A|B], C, D, E) :-
953	'CHR#_2__96'(B, C, D, E).
954:- set_flag('CHR#_2__96' / 4, leash, notrace).
955'CHR#_2__97'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H], I) ?-
956	'CHRvar'(D),
957	'CHRkill'(D),
958	'CHR='([C], [H]),
959	'CHR='(F, I).
960'CHR#_2__97'([A|B], C, D, E) :-
961	'CHR#_2__97'(B, C, D, E).
962:- set_flag('CHR#_2__97' / 4, leash, notrace).
963:- set_flag('CHR#_2' / 4, leash, notrace).
964:- current_macro('CHR#_2' / 4, _32996, _32997, _32998) -> true ; define_macro('CHR#_2' / 4, tr_chr / 2, [write]).
965'CHR#_2__95'(A, B, C, D) :-
966	'CHR#_2__98'(A, B, C, D).
967:- set_flag('CHR#_2__95' / 4, leash, notrace).
968'CHR#_2__98'(#(A, B), C, D, E) ?-
969	'CHRvar'(C),
970	!,
971	'CHRget_delayed_goals'(A, F),
972	'CHR#_2__98__99'(F, C, #(A, B), D, E).
973'CHR#_2__98'(#(A, B), C, D, E) :-
974	'CHR#_2__98__100'(#(A, B), C, D, E).
975:- set_flag('CHR#_2__98' / 4, leash, notrace).
976'CHR#_2__98__99'(['CHRset_3'(set(A, B, C), D, E, F)|G], H, #(A, I), J, K) ?-
977	'CHRvar'(D),
978	'CHRcheck_and_mark_applied'(anonymous("8"), H, D, J, E),
979	coca(try_double(K, #(A, I), F, set(A, B, C), #(L, M), set(L, N, O), augmentation, true, (s_card(N, P), P =< M, s_card(O, Q), M =< Q), anonymous("8"))),
980	!,
981	coca(fired_rule(anonymous("8"))),
982	'CHR#_2__98__99'(G, H, #(A, I), J, K),
983	s_card(B, R),
984	R =< I,
985	s_card(C, S),
986	I =< S.
987'CHR#_2__98__99'([A|B], C, D, E, F) :-
988	'CHR#_2__98__99'(B, C, D, E, F).
989'CHR#_2__98__99'([], A, B, C, D) :-
990	'CHR#_2__98__100'(B, A, C, D).
991:- set_flag('CHR#_2__98__99' / 5, leash, notrace).
992'CHR#_2__98__100'(#(A, B), C, D, E) :-
993	(
994	    'CHRvar'(C)
995	->
996	    'CHRdelay'([C, #(A, B)], 'CHR#_2'(#(A, B), C, D, E))
997	;
998	    true
999	).
1000:- set_flag('CHR#_2__98__100' / 4, leash, notrace).
1001set_union(A, B, C) :-
1002	'CHRgen_num'(D),
1003	coca(add_one_constraint(D, set_union(A, B, C))),
1004	'CHRset_union_3'(set_union(A, B, C), E, F, D).
1005
1006
1007
1008%%% Rules handling for set_union / 3
1009
1010'CHRset_union_3'(set_union(A, B, C), D, E, F) :-
1011	(
1012	    'CHRnonvar'(D)
1013	;
1014	    'CHRalready_in'('CHRset_union_3'(set_union(A, B, C), D, E, F)),
1015	    coca(already_in)
1016	),
1017	!.
1018'CHRset_union_3'(set_union(A, B, C), D, E, F) ?-
1019	coca(try_rule(F, set_union(A, B, C), anonymous("19"), set_union(G, H, I), replacement, (is_set(G), is_set(H)), s_union(G, H, I))),
1020	no_global_bindings((is_set(A), is_set(B)), set_union(A, B, C)),
1021	!,
1022	'CHRkill'(D),
1023	coca(fired_rule(anonymous("19"))),
1024	s_union(A, B, C).
1025'CHRset_union_3'(set_union(A, B, C), D, E, F) ?-
1026	coca(try_rule(F, set_union(A, B, C), anonymous("22"), set_union(G, H, I), replacement, is_set(I), ground_union(G, H, I))),
1027	no_global_bindings(is_set(C), set_union(A, B, C)),
1028	!,
1029	'CHRkill'(D),
1030	coca(fired_rule(anonymous("22"))),
1031	ground_union(A, B, C).
1032'CHRset_union_3'(set_union(A, B, C), D, E, F) :-
1033	'CHRset_union_3__101'(set_union(A, B, C), D, E, F).
1034:- set_flag('CHRset_union_3' / 4, leash, notrace).
1035:- current_macro('CHRset_union_3' / 4, _34584, _34585, _34586) -> true ; define_macro('CHRset_union_3' / 4, tr_chr / 2, [write]).
1036'CHRset_union_3__101'(set_union(A, B, C), D, E, F) ?-
1037	'CHRvar'(D),
1038	'CHRcheck_and_mark_applied'('CHRset_union_3__101', E),
1039	coca(try_rule(F, set_union(A, B, C), anonymous("12"), set_union(G, H, I), augmentation, true, (incl(G, I), incl(H, I)))),
1040	!,
1041	'CHRset_union_3__101__103'(set_union(A, B, C), D, E, F),
1042	coca(fired_rule(anonymous("12"))),
1043	incl(A, C),
1044	incl(B, C).
1045'CHRset_union_3__101'(A, B, C, D) ?-
1046	'CHRset_union_3__101__103'(A, B, C, D).
1047:- set_flag('CHRset_union_3__101' / 4, leash, notrace).
1048'CHRset_union_3__101__103'(A, B, C, D) :-
1049	'CHRset_union_3__102'(A, B, C, D).
1050:- set_flag('CHRset_union_3__101__103' / 4, leash, notrace).
1051'CHRset_union_3__102'(set_union(A, B, C), D, E, F) ?-
1052	'CHRvar'(D),
1053	!,
1054	'CHRget_delayed_goals'(A, G),
1055	'CHRset_union_3__102__104'(G, D, set_union(A, B, C), E, F).
1056'CHRset_union_3__102'(set_union(A, B, C), D, E, F) :-
1057	'CHRset_union_3__102__105'(set_union(A, B, C), D, E, F).
1058:- set_flag('CHRset_union_3__102' / 4, leash, notrace).
1059'CHRset_union_3__102__104'(['CHRset_3'(set(A, B, C), D, E, F)|G], H, set_union(A, I, J), K, L) ?-
1060	'CHRvar'(D),
1061	'CHRcheck_and_mark_applied'(anonymous("13"), H, D, K, E),
1062	coca(try_double(L, set_union(A, I, J), F, set(A, B, C), set_union(M, N, O), set(M, P, Q), augmentation, true, union_set(N, M, P, Q, O), anonymous("13"))),
1063	!,
1064	coca(fired_rule(anonymous("13"))),
1065	'CHRset_union_3__102__104'(G, H, set_union(A, I, J), K, L),
1066	union_set(I, A, B, C, J).
1067'CHRset_union_3__102__104'([A|B], C, D, E, F) :-
1068	'CHRset_union_3__102__104'(B, C, D, E, F).
1069'CHRset_union_3__102__104'([], A, B, C, D) :-
1070	'CHRset_union_3__102__105'(B, A, C, D).
1071:- set_flag('CHRset_union_3__102__104' / 5, leash, notrace).
1072'CHRset_union_3__102__105'(set_union(A, B, C), D, E, F) ?-
1073	'CHRvar'(D),
1074	!,
1075	'CHRget_delayed_goals'(C, G),
1076	'CHRset_union_3__102__105__106'(G, D, set_union(A, B, C), E, F).
1077'CHRset_union_3__102__105'(set_union(A, B, C), D, E, F) :-
1078	'CHRset_union_3__102__105__107'(set_union(A, B, C), D, E, F).
1079:- set_flag('CHRset_union_3__102__105' / 4, leash, notrace).
1080'CHRset_union_3__102__105__106'(['CHRset_3'(set(A, B, C), D, E, F)|G], H, set_union(I, J, A), K, L) ?-
1081	'CHRvar'(D),
1082	'CHRcheck_and_mark_applied'(anonymous("15"), H, D, K, E),
1083	coca(try_double(L, set_union(I, J, A), F, set(A, B, C), set_union(M, N, O), set(O, P, Q), augmentation, true, union_S(M, N, P), anonymous("15"))),
1084	!,
1085	coca(fired_rule(anonymous("15"))),
1086	'CHRset_union_3__102__105__106'(G, H, set_union(I, J, A), K, L),
1087	union_S(I, J, B).
1088'CHRset_union_3__102__105__106'([A|B], C, D, E, F) :-
1089	'CHRset_union_3__102__105__106'(B, C, D, E, F).
1090'CHRset_union_3__102__105__106'([], A, B, C, D) :-
1091	'CHRset_union_3__102__105__107'(B, A, C, D).
1092:- set_flag('CHRset_union_3__102__105__106' / 5, leash, notrace).
1093'CHRset_union_3__102__105__107'(set_union(A, B, C), D, E, F) ?-
1094	'CHRvar'(D),
1095	!,
1096	'CHRget_delayed_goals'(B, G),
1097	'CHRset_union_3__102__105__107__108'(G, D, set_union(A, B, C), E, F).
1098'CHRset_union_3__102__105__107'(set_union(A, B, C), D, E, F) :-
1099	'CHRset_union_3__102__105__107__109'(set_union(A, B, C), D, E, F).
1100:- set_flag('CHRset_union_3__102__105__107' / 4, leash, notrace).
1101'CHRset_union_3__102__105__107__108'(['CHRset_3'(set(A, B, C), D, E, F)|G], H, set_union(I, A, J), K, L) ?-
1102	'CHRvar'(D),
1103	'CHRcheck_and_mark_applied'(anonymous("20"), H, D, K, E),
1104	coca(try_double(L, set_union(I, A, J), F, set(A, B, C), set_union(M, N, O), set(N, P, Q), augmentation, (is_set(M), s_union(M, P, R), s_union(M, Q, S)), set(O, R, S), anonymous("20"))),
1105	no_global_bindings((is_set(I), s_union(I, B, T), s_union(I, C, U)), (set_union(I, A, J), set(A, B, C))),
1106	!,
1107	coca(fired_rule(anonymous("20"))),
1108	'CHRset_union_3__102__105__107__108'(G, H, set_union(I, A, J), K, L),
1109	set(J, T, U).
1110'CHRset_union_3__102__105__107__108'([A|B], C, D, E, F) :-
1111	'CHRset_union_3__102__105__107__108'(B, C, D, E, F).
1112'CHRset_union_3__102__105__107__108'([], A, B, C, D) :-
1113	'CHRset_union_3__102__105__107__109'(B, A, C, D).
1114:- set_flag('CHRset_union_3__102__105__107__108' / 5, leash, notrace).
1115'CHRset_union_3__102__105__107__109'(set_union(A, B, C), D, E, F) ?-
1116	'CHRvar'(D),
1117	!,
1118	'CHRget_delayed_goals'(A, G),
1119	'CHRset_union_3__102__105__107__109__110'(G, D, set_union(A, B, C), E, F).
1120'CHRset_union_3__102__105__107__109'(set_union(A, B, C), D, E, F) :-
1121	'CHRset_union_3__102__105__107__109__111'(set_union(A, B, C), D, E, F).
1122:- set_flag('CHRset_union_3__102__105__107__109' / 4, leash, notrace).
1123'CHRset_union_3__102__105__107__109__110'(['CHRset_3'(set(A, B, C), D, E, F)|G], H, set_union(A, I, J), K, L) ?-
1124	'CHRvar'(D),
1125	'CHRcheck_and_mark_applied'(anonymous("21"), H, D, K, E),
1126	coca(try_double(L, set_union(A, I, J), F, set(A, B, C), set_union(M, N, O), set(M, P, Q), augmentation, (is_set(N), s_union(N, P, R), s_union(N, Q, S)), set(O, R, S), anonymous("21"))),
1127	no_global_bindings((is_set(I), s_union(I, B, T), s_union(I, C, U)), (set_union(A, I, J), set(A, B, C))),
1128	!,
1129	coca(fired_rule(anonymous("21"))),
1130	'CHRset_union_3__102__105__107__109__110'(G, H, set_union(A, I, J), K, L),
1131	set(J, T, U).
1132'CHRset_union_3__102__105__107__109__110'([A|B], C, D, E, F) :-
1133	'CHRset_union_3__102__105__107__109__110'(B, C, D, E, F).
1134'CHRset_union_3__102__105__107__109__110'([], A, B, C, D) :-
1135	'CHRset_union_3__102__105__107__109__111'(B, A, C, D).
1136:- set_flag('CHRset_union_3__102__105__107__109__110' / 5, leash, notrace).
1137'CHRset_union_3__102__105__107__109__111'(set_union(A, B, C), D, E, F) :-
1138	(
1139	    'CHRvar'(D)
1140	->
1141	    'CHRdelay'([D, set_union(A, B, C)], 'CHRset_union_3'(set_union(A, B, C), D, E, F))
1142	;
1143	    true
1144	).
1145:- set_flag('CHRset_union_3__102__105__107__109__111' / 4, leash, notrace).
1146disjoint(A, B) :-
1147	'CHRgen_num'(C),
1148	coca(add_one_constraint(C, disjoint(A, B))),
1149	'CHRdisjoint_2'(disjoint(A, B), D, E, C).
1150
1151
1152
1153%%% Rules handling for disjoint / 2
1154
1155'CHRdisjoint_2'(disjoint(A, B), C, D, E) :-
1156	(
1157	    'CHRnonvar'(C)
1158	;
1159	    'CHRalready_in'('CHRdisjoint_2'(disjoint(A, B), C, D, E)),
1160	    coca(already_in)
1161	),
1162	!.
1163'CHRdisjoint_2'(disjoint(A, B), C, D, E) ?-
1164	coca(try_rule(E, disjoint(A, B), anonymous("27"), disjoint(F, G), replacement, (is_set(F), is_set(G)), s_intersection(F, G, {}))),
1165	no_global_bindings((is_set(A), is_set(B)), disjoint(A, B)),
1166	!,
1167	'CHRkill'(C),
1168	coca(fired_rule(anonymous("27"))),
1169	s_intersection(A, B, {}).
1170'CHRdisjoint_2'(disjoint(A, B), C, D, E) ?-
1171	'CHRget_delayed_goals'(B, F),
1172	'CHRdisjoint_2__113'(F, [B], [G, H, I], J),
1173	coca(try_double(E, disjoint(A, B), J, set(B, I, H), disjoint(K, L), set(L, M, N), keep_second, ((is_set(K), s_delta(N, K, O)), 'CHRkeep_heads_checking'(set(L, M, N), P, set(L, M, O), Q)), 'CHRhead_not_kept'(Q) -> set(L, M, O) ; true, anonymous("28"))),
1174	no_global_bindings(((is_set(A), s_delta(H, A, R)), 'CHRkeep_heads_checking'(set(B, I, H), G, set(B, I, R), S)), (disjoint(A, B), set(B, I, H))),
1175	!,
1176	'CHRkill'(C),
1177	coca(fired_rule(anonymous("28"))),
1178	(
1179	    'CHRhead_not_kept'(S)
1180	->
1181	    set(B, I, R)
1182	;
1183	    true
1184	).
1185'CHRdisjoint_2'(disjoint(A, B), C, D, E) ?-
1186	'CHRget_delayed_goals'(A, F),
1187	'CHRdisjoint_2__114'(F, [A], [G, H, I], J),
1188	coca(try_double(E, disjoint(A, B), J, set(A, I, H), disjoint(K, L), set(K, M, N), keep_second, ((is_set(L), s_delta(N, L, O)), 'CHRkeep_heads_checking'(set(K, M, N), P, set(K, M, O), Q)), 'CHRhead_not_kept'(Q) -> set(K, M, O) ; true, anonymous("29"))),
1189	no_global_bindings(((is_set(B), s_delta(H, B, R)), 'CHRkeep_heads_checking'(set(A, I, H), G, set(A, I, R), S)), (disjoint(A, B), set(A, I, H))),
1190	!,
1191	'CHRkill'(C),
1192	coca(fired_rule(anonymous("29"))),
1193	(
1194	    'CHRhead_not_kept'(S)
1195	->
1196	    set(A, I, R)
1197	;
1198	    true
1199	).
1200'CHRdisjoint_2'(disjoint(A, B), C, D, E) :-
1201	'CHRdisjoint_2__112'(disjoint(A, B), C, D, E).
1202'CHRdisjoint_2__113'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H, I, J], K) ?-
1203	'CHRvar'(D),
1204	'CHR='([D, C, B], [H, I, J]),
1205	'CHR='(F, K).
1206'CHRdisjoint_2__113'([A|B], C, D, E) :-
1207	'CHRdisjoint_2__113'(B, C, D, E).
1208:- set_flag('CHRdisjoint_2__113' / 4, leash, notrace).
1209'CHRdisjoint_2__114'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H, I, J], K) ?-
1210	'CHRvar'(D),
1211	'CHR='([D, C, B], [H, I, J]),
1212	'CHR='(F, K).
1213'CHRdisjoint_2__114'([A|B], C, D, E) :-
1214	'CHRdisjoint_2__114'(B, C, D, E).
1215:- set_flag('CHRdisjoint_2__114' / 4, leash, notrace).
1216:- set_flag('CHRdisjoint_2' / 4, leash, notrace).
1217:- current_macro('CHRdisjoint_2' / 4, _39330, _39331, _39332) -> true ; define_macro('CHRdisjoint_2' / 4, tr_chr / 2, [write]).
1218'CHRdisjoint_2__112'(A, B, C, D) :-
1219	'CHRdisjoint_2__115'(A, B, C, D).
1220:- set_flag('CHRdisjoint_2__112' / 4, leash, notrace).
1221'CHRdisjoint_2__115'(disjoint(A, B), C, D, E) ?-
1222	'CHRvar'(C),
1223	!,
1224	'CHRget_delayed_goals'(A, F),
1225	'CHRdisjoint_2__115__116'(F, C, disjoint(A, B), D, E).
1226'CHRdisjoint_2__115'(disjoint(A, B), C, D, E) :-
1227	'CHRdisjoint_2__115__117'(disjoint(A, B), C, D, E).
1228:- set_flag('CHRdisjoint_2__115' / 4, leash, notrace).
1229'CHRdisjoint_2__115__116'(['CHRset_3'(set(A, B, C), D, E, F)|G], H, disjoint(A, I), J, K) ?-
1230	'CHRvar'(D),
1231	'CHRcheck_and_mark_applied'(anonymous("30"), H, D, J, E),
1232	coca(try_double(K, disjoint(A, I), F, set(A, B, C), disjoint(L, M), set(L, N, O), augmentation, true, set_disjoint(M, L, N, O), anonymous("30"))),
1233	!,
1234	coca(fired_rule(anonymous("30"))),
1235	'CHRdisjoint_2__115__116'(G, H, disjoint(A, I), J, K),
1236	set_disjoint(I, A, B, C).
1237'CHRdisjoint_2__115__116'([A|B], C, D, E, F) :-
1238	'CHRdisjoint_2__115__116'(B, C, D, E, F).
1239'CHRdisjoint_2__115__116'([], A, B, C, D) :-
1240	'CHRdisjoint_2__115__117'(B, A, C, D).
1241:- set_flag('CHRdisjoint_2__115__116' / 5, leash, notrace).
1242'CHRdisjoint_2__115__117'(disjoint(A, B), C, D, E) :-
1243	(
1244	    'CHRvar'(C)
1245	->
1246	    'CHRdelay'([C, disjoint(A, B)], 'CHRdisjoint_2'(disjoint(A, B), C, D, E))
1247	;
1248	    true
1249	).
1250:- set_flag('CHRdisjoint_2__115__117' / 4, leash, notrace).
1251incl_set(A, B, C, D, E) :-
1252	'CHRgen_num'(F),
1253	coca(add_one_constraint(F, incl_set(A, B, C, D, E))),
1254	'CHRincl_set_5'(incl_set(A, B, C, D, E), G, H, F).
1255
1256
1257
1258%%% Rules handling for incl_set / 5
1259
1260'CHRincl_set_5'(incl_set(A, B, C, D, E), F, G, H) :-
1261	(
1262	    'CHRnonvar'(F)
1263	;
1264	    'CHRalready_in'('CHRincl_set_5'(incl_set(A, B, C, D, E), F, G, H)),
1265	    coca(already_in)
1266	),
1267	!.
1268'CHRincl_set_5'(incl_set(A, B, C, D, E), F, G, H) ?-
1269	'CHRget_delayed_goals'(D, I),
1270	'CHRincl_set_5__119'(I, [D], [J], K),
1271	coca(try_double(H, incl_set(A, B, C, D, E), K, set(D, J, L), incl_set(M, N, O, P, Q), set(P, R, S), keep_second, s_included(O, R), Q = true, anonymous("6"))),
1272	no_global_bindings(s_included(C, J), (incl_set(A, B, C, D, E), set(D, J, L))),
1273	!,
1274	'CHRkill'(F),
1275	coca(fired_rule(anonymous("6"))),
1276	E = true.
1277'CHRincl_set_5'(incl_set(A, B, C, D, E), F, G, H) ?-
1278	'CHRget_delayed_goals'(D, I),
1279	'CHRincl_set_5__120'(I, [D], [J, K], L),
1280	coca(try_double(H, incl_set(A, B, C, D, E), L, set(D, K, J), incl_set(M, N, O, P, Q), set(P, R, S), keep_second, (\+ s_included(O, R), s_intersection(O, S, T), s_union(N, R, U)), (set(M, N, T), set(P, U, S)), anonymous("7"))),
1281	no_global_bindings((\+ s_included(C, K), s_intersection(C, J, V), s_union(B, K, W)), (incl_set(A, B, C, D, E), set(D, K, J))),
1282	!,
1283	'CHRkill'(F),
1284	coca(fired_rule(anonymous("7"))),
1285	set(A, B, V),
1286	set(D, W, J).
1287'CHRincl_set_5'(incl_set(A, B, C, D, E), F, G, H) :-
1288	'CHRincl_set_5__118'(incl_set(A, B, C, D, E), F, G, H).
1289'CHRincl_set_5__119'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H], I) ?-
1290	'CHRvar'(D),
1291	'CHR='([B], [H]),
1292	'CHR='(F, I).
1293'CHRincl_set_5__119'([A|B], C, D, E) :-
1294	'CHRincl_set_5__119'(B, C, D, E).
1295:- set_flag('CHRincl_set_5__119' / 4, leash, notrace).
1296'CHRincl_set_5__120'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H, I], J) ?-
1297	'CHRvar'(D),
1298	'CHR='([C, B], [H, I]),
1299	'CHR='(F, J).
1300'CHRincl_set_5__120'([A|B], C, D, E) :-
1301	'CHRincl_set_5__120'(B, C, D, E).
1302:- set_flag('CHRincl_set_5__120' / 4, leash, notrace).
1303:- set_flag('CHRincl_set_5' / 4, leash, notrace).
1304:- current_macro('CHRincl_set_5' / 4, _41626, _41627, _41628) -> true ; define_macro('CHRincl_set_5' / 4, tr_chr / 2, [write]).
1305'CHRincl_set_5__118'(A, B, C, D) :-
1306	'CHRincl_set_5__121'(A, B, C, D).
1307:- set_flag('CHRincl_set_5__118' / 4, leash, notrace).
1308'CHRincl_set_5__121'(incl_set(A, B, C, D, E), F, G, H) :-
1309	(
1310	    'CHRvar'(F)
1311	->
1312	    'CHRdelay'([F, incl_set(A, B, C, D, E)], 'CHRincl_set_5'(incl_set(A, B, C, D, E), F, G, H))
1313	;
1314	    true
1315	).
1316:- set_flag('CHRincl_set_5__121' / 4, leash, notrace).
1317set_set(A, B, C, D, E, F) :-
1318	'CHRgen_num'(G),
1319	coca(add_one_constraint(G, set_set(A, B, C, D, E, F))),
1320	'CHRset_set_6'(set_set(A, B, C, D, E, F), H, I, G).
1321
1322
1323
1324%%% Rules handling for set_set / 6
1325
1326'CHRset_set_6'(set_set(A, B, C, D, E, F), G, H, I) :-
1327	(
1328	    'CHRnonvar'(G)
1329	;
1330	    'CHRalready_in'('CHRset_set_6'(set_set(A, B, C, D, E, F), G, H, I)),
1331	    coca(already_in)
1332	),
1333	!.
1334'CHRset_set_6'(set_set(A, B, C, D, E, F), G, H, I) :-
1335	'CHRset_set_6__122'(set_set(A, B, C, D, E, F), G, H, I).
1336:- set_flag('CHRset_set_6' / 4, leash, notrace).
1337:- current_macro('CHRset_set_6' / 4, _42265, _42266, _42267) -> true ; define_macro('CHRset_set_6' / 4, tr_chr / 2, [write]).
1338'CHRset_set_6__122'(A, B, C, D) :-
1339	'CHRset_set_6__123'(A, B, C, D).
1340:- set_flag('CHRset_set_6__122' / 4, leash, notrace).
1341'CHRset_set_6__123'(set_set(A, B, C, D, E, F), G, H, I) :-
1342	(
1343	    'CHRvar'(G)
1344	->
1345	    'CHRdelay'([G, set_set(A, B, C, D, E, F)], 'CHRset_set_6'(set_set(A, B, C, D, E, F), G, H, I))
1346	;
1347	    true
1348	).
1349:- set_flag('CHRset_set_6__123' / 4, leash, notrace).
1350union_set(A, B, C, D, E) :-
1351	'CHRgen_num'(F),
1352	coca(add_one_constraint(F, union_set(A, B, C, D, E))),
1353	'CHRunion_set_5'(union_set(A, B, C, D, E), G, H, F).
1354
1355
1356
1357%%% Rules handling for union_set / 5
1358
1359'CHRunion_set_5'(union_set(A, B, C, D, E), F, G, H) :-
1360	(
1361	    'CHRnonvar'(F)
1362	;
1363	    'CHRalready_in'('CHRunion_set_5'(union_set(A, B, C, D, E), F, G, H)),
1364	    coca(already_in)
1365	),
1366	!.
1367'CHRunion_set_5'(union_set(A, B, C, D, E), F, G, H) ?-
1368	'CHRget_delayed_goals'(A, I),
1369	'CHRunion_set_5__125'(I, [A], [J, K], L),
1370	coca(try_double(H, union_set(A, B, C, D, E), L, set(A, K, J), union_set(M, N, O, P, Q), set(M, R, S), keep_second, (s_union(O, R, T), s_union(P, S, U)), set(Q, T, U), anonymous("14"))),
1371	no_global_bindings((s_union(C, K, V), s_union(D, J, W)), (union_set(A, B, C, D, E), set(A, K, J))),
1372	!,
1373	'CHRkill'(F),
1374	coca(fired_rule(anonymous("14"))),
1375	set(E, V, W).
1376'CHRunion_set_5'(union_set(A, B, C, D, E), F, G, H) :-
1377	'CHRunion_set_5__124'(union_set(A, B, C, D, E), F, G, H).
1378'CHRunion_set_5__125'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H, I], J) ?-
1379	'CHRvar'(D),
1380	'CHR='([C, B], [H, I]),
1381	'CHR='(F, J).
1382'CHRunion_set_5__125'([A|B], C, D, E) :-
1383	'CHRunion_set_5__125'(B, C, D, E).
1384:- set_flag('CHRunion_set_5__125' / 4, leash, notrace).
1385:- set_flag('CHRunion_set_5' / 4, leash, notrace).
1386:- current_macro('CHRunion_set_5' / 4, _43432, _43433, _43434) -> true ; define_macro('CHRunion_set_5' / 4, tr_chr / 2, [write]).
1387'CHRunion_set_5__124'(A, B, C, D) :-
1388	'CHRunion_set_5__126'(A, B, C, D).
1389:- set_flag('CHRunion_set_5__124' / 4, leash, notrace).
1390'CHRunion_set_5__126'(union_set(A, B, C, D, E), F, G, H) :-
1391	(
1392	    'CHRvar'(F)
1393	->
1394	    'CHRdelay'([F, union_set(A, B, C, D, E)], 'CHRunion_set_5'(union_set(A, B, C, D, E), F, G, H))
1395	;
1396	    true
1397	).
1398:- set_flag('CHRunion_set_5__126' / 4, leash, notrace).
1399set_disjoint(A, B, C, D) :-
1400	'CHRgen_num'(E),
1401	coca(add_one_constraint(E, set_disjoint(A, B, C, D))),
1402	'CHRset_disjoint_4'(set_disjoint(A, B, C, D), F, G, E).
1403
1404
1405
1406%%% Rules handling for set_disjoint / 4
1407
1408'CHRset_disjoint_4'(set_disjoint(A, B, C, D), E, F, G) :-
1409	(
1410	    'CHRnonvar'(E)
1411	;
1412	    'CHRalready_in'('CHRset_disjoint_4'(set_disjoint(A, B, C, D), E, F, G)),
1413	    coca(already_in)
1414	),
1415	!.
1416'CHRset_disjoint_4'(set_disjoint(A, B, C, D), E, F, G) ?-
1417	coca(try_rule(G, set_disjoint(A, B, C, D), anonymous("32"), set_disjoint(H, I, J, K), replacement, is_set(H) ; is_set(I), true)),
1418	no_global_bindings(is_set(A) ; is_set(B), set_disjoint(A, B, C, D)),
1419	!,
1420	'CHRkill'(E),
1421	coca(fired_rule(anonymous("32"))).
1422'CHRset_disjoint_4'(set_disjoint(A, B, C, D), E, F, G) ?-
1423	'CHRget_delayed_goals'(A, H),
1424	'CHRset_disjoint_4__128'(H, [A], [I, J, K], L),
1425	coca(try_double(G, set_disjoint(A, B, C, D), L, set(A, K, J), set_disjoint(M, N, O, P), set(M, Q, R), keep_second, ((s_delta(R, O, S), s_delta(P, Q, T)), 'CHRkeep_heads_checking'(set(M, Q, R), U, set(M, Q, S), V)), (('CHRhead_not_kept'(V) -> set(M, Q, S) ; true), set(N, O, T)), anonymous("31"))),
1426	no_global_bindings(((s_delta(J, C, W), s_delta(D, K, X)), 'CHRkeep_heads_checking'(set(A, K, J), I, set(A, K, W), Y)), (set_disjoint(A, B, C, D), set(A, K, J))),
1427	!,
1428	'CHRkill'(E),
1429	coca(fired_rule(anonymous("31"))),
1430	(
1431	    'CHRhead_not_kept'(Y)
1432	->
1433	    set(A, K, W)
1434	;
1435	    true
1436	),
1437	set(B, C, X).
1438'CHRset_disjoint_4'(set_disjoint(A, B, C, D), E, F, G) :-
1439	'CHRset_disjoint_4__127'(set_disjoint(A, B, C, D), E, F, G).
1440'CHRset_disjoint_4__128'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H, I, J], K) ?-
1441	'CHRvar'(D),
1442	'CHR='([D, C, B], [H, I, J]),
1443	'CHR='(F, K).
1444'CHRset_disjoint_4__128'([A|B], C, D, E) :-
1445	'CHRset_disjoint_4__128'(B, C, D, E).
1446:- set_flag('CHRset_disjoint_4__128' / 4, leash, notrace).
1447:- set_flag('CHRset_disjoint_4' / 4, leash, notrace).
1448:- current_macro('CHRset_disjoint_4' / 4, _44839, _44840, _44841) -> true ; define_macro('CHRset_disjoint_4' / 4, tr_chr / 2, [write]).
1449'CHRset_disjoint_4__127'(A, B, C, D) :-
1450	'CHRset_disjoint_4__129'(A, B, C, D).
1451:- set_flag('CHRset_disjoint_4__127' / 4, leash, notrace).
1452'CHRset_disjoint_4__129'(set_disjoint(A, B, C, D), E, F, G) :-
1453	(
1454	    'CHRvar'(E)
1455	->
1456	    'CHRdelay'([E, set_disjoint(A, B, C, D)], 'CHRset_disjoint_4'(set_disjoint(A, B, C, D), E, F, G))
1457	;
1458	    true
1459	).
1460:- set_flag('CHRset_disjoint_4__129' / 4, leash, notrace).
1461ground_union(A, B, C) :-
1462	'CHRgen_num'(D),
1463	coca(add_one_constraint(D, ground_union(A, B, C))),
1464	'CHRground_union_3'(ground_union(A, B, C), E, F, D).
1465
1466
1467
1468%%% Rules handling for ground_union / 3
1469
1470'CHRground_union_3'(ground_union(A, B, C), D, E, F) :-
1471	(
1472	    'CHRnonvar'(D)
1473	;
1474	    'CHRalready_in'('CHRground_union_3'(ground_union(A, B, C), D, E, F)),
1475	    coca(already_in)
1476	),
1477	!.
1478'CHRground_union_3'(ground_union(A, B, C), D, E, F) ?-
1479	coca(try_rule(F, ground_union(A, B, C), anonymous("23"), ground_union(G, H, I), replacement, is_set(G), (s_delta(I, G, J), incl(J, H)))),
1480	no_global_bindings(is_set(A), ground_union(A, B, C)),
1481	!,
1482	'CHRkill'(D),
1483	coca(fired_rule(anonymous("23"))),
1484	s_delta(C, A, K),
1485	incl(K, B).
1486'CHRground_union_3'(ground_union(A, B, C), D, E, F) ?-
1487	coca(try_rule(F, ground_union(A, B, C), anonymous("24"), ground_union(G, H, I), replacement, is_set(H), (s_delta(I, H, J), incl(J, G)))),
1488	no_global_bindings(is_set(B), ground_union(A, B, C)),
1489	!,
1490	'CHRkill'(D),
1491	coca(fired_rule(anonymous("24"))),
1492	s_delta(C, B, K),
1493	incl(K, A).
1494'CHRground_union_3'(ground_union(A, B, C), D, E, F) :-
1495	'CHRground_union_3__130'(ground_union(A, B, C), D, E, F).
1496:- set_flag('CHRground_union_3' / 4, leash, notrace).
1497:- current_macro('CHRground_union_3' / 4, _45815, _45816, _45817) -> true ; define_macro('CHRground_union_3' / 4, tr_chr / 2, [write]).
1498'CHRground_union_3__130'(A, B, C, D) :-
1499	'CHRground_union_3__131'(A, B, C, D).
1500:- set_flag('CHRground_union_3__130' / 4, leash, notrace).
1501'CHRground_union_3__131'(ground_union(A, B, C), D, E, F) ?-
1502	'CHRvar'(D),
1503	!,
1504	'CHRget_delayed_goals'(A, G),
1505	'CHRground_union_3__131__132'(G, D, ground_union(A, B, C), E, F).
1506'CHRground_union_3__131'(ground_union(A, B, C), D, E, F) :-
1507	'CHRground_union_3__131__133'(ground_union(A, B, C), D, E, F).
1508:- set_flag('CHRground_union_3__131' / 4, leash, notrace).
1509'CHRground_union_3__131__132'(['CHRset_3'(set(A, B, C), D, E, F)|G], H, ground_union(A, I, J), K, L) ?-
1510	'CHRvar'(D),
1511	'CHRcheck_and_mark_applied'(anonymous("25"), H, D, K, E),
1512	coca(try_double(L, ground_union(A, I, J), F, set(A, B, C), ground_union(M, N, O), set(M, P, Q), augmentation, true, (s_delta(O, Q, R), incl(R, N)), anonymous("25"))),
1513	!,
1514	coca(fired_rule(anonymous("25"))),
1515	'CHRground_union_3__131__132'(G, H, ground_union(A, I, J), K, L),
1516	s_delta(J, C, S),
1517	incl(S, I).
1518'CHRground_union_3__131__132'([A|B], C, D, E, F) :-
1519	'CHRground_union_3__131__132'(B, C, D, E, F).
1520'CHRground_union_3__131__132'([], A, B, C, D) :-
1521	'CHRground_union_3__131__133'(B, A, C, D).
1522:- set_flag('CHRground_union_3__131__132' / 5, leash, notrace).
1523'CHRground_union_3__131__133'(ground_union(A, B, C), D, E, F) ?-
1524	'CHRvar'(D),
1525	!,
1526	'CHRget_delayed_goals'(B, G),
1527	'CHRground_union_3__131__133__134'(G, D, ground_union(A, B, C), E, F).
1528'CHRground_union_3__131__133'(ground_union(A, B, C), D, E, F) :-
1529	'CHRground_union_3__131__133__135'(ground_union(A, B, C), D, E, F).
1530:- set_flag('CHRground_union_3__131__133' / 4, leash, notrace).
1531'CHRground_union_3__131__133__134'(['CHRset_3'(set(A, B, C), D, E, F)|G], H, ground_union(I, A, J), K, L) ?-
1532	'CHRvar'(D),
1533	'CHRcheck_and_mark_applied'(anonymous("26"), H, D, K, E),
1534	coca(try_double(L, ground_union(I, A, J), F, set(A, B, C), ground_union(M, N, O), set(N, P, Q), augmentation, true, (s_delta(O, Q, R), incl(R, M)), anonymous("26"))),
1535	!,
1536	coca(fired_rule(anonymous("26"))),
1537	'CHRground_union_3__131__133__134'(G, H, ground_union(I, A, J), K, L),
1538	s_delta(J, C, S),
1539	incl(S, I).
1540'CHRground_union_3__131__133__134'([A|B], C, D, E, F) :-
1541	'CHRground_union_3__131__133__134'(B, C, D, E, F).
1542'CHRground_union_3__131__133__134'([], A, B, C, D) :-
1543	'CHRground_union_3__131__133__135'(B, A, C, D).
1544:- set_flag('CHRground_union_3__131__133__134' / 5, leash, notrace).
1545'CHRground_union_3__131__133__135'(ground_union(A, B, C), D, E, F) :-
1546	(
1547	    'CHRvar'(D)
1548	->
1549	    'CHRdelay'([D, ground_union(A, B, C)], 'CHRground_union_3'(ground_union(A, B, C), D, E, F))
1550	;
1551	    true
1552	).
1553:- set_flag('CHRground_union_3__131__133__135' / 4, leash, notrace).
1554union_S(A, B, C) :-
1555	'CHRgen_num'(D),
1556	coca(add_one_constraint(D, union_S(A, B, C))),
1557	'CHRunion_S_3'(union_S(A, B, C), E, F, D).
1558
1559
1560
1561%%% Rules handling for union_S / 3
1562
1563'CHRunion_S_3'(union_S(A, B, C), D, E, F) :-
1564	(
1565	    'CHRnonvar'(D)
1566	;
1567	    'CHRalready_in'('CHRunion_S_3'(union_S(A, B, C), D, E, F)),
1568	    coca(already_in)
1569	),
1570	!.
1571'CHRunion_S_3'(union_S(A, B, C), D, E, F) ?-
1572	coca(try_rule(F, union_S(A, B, C), anonymous("18"), union_S(G, H, I), replacement, (nonvar(G), nonvar(H)), true)),
1573	no_global_bindings((nonvar(A), nonvar(B)), union_S(A, B, C)),
1574	!,
1575	'CHRkill'(D),
1576	coca(fired_rule(anonymous("18"))).
1577'CHRunion_S_3'(union_S(A, B, C), D, E, F) ?-
1578	'CHRget_delayed_goals'(A, G),
1579	'CHRunion_S_3__137'(G, [A], [H], I),
1580	coca(try_double(F, union_S(A, B, C), I, set(A, J, H), union_S(K, L, M), set(K, N, O), keep_second, true, union_S_S1(L, K, O, M), anonymous("16"))),
1581	!,
1582	'CHRkill'(D),
1583	coca(fired_rule(anonymous("16"))),
1584	union_S_S1(B, A, H, C).
1585'CHRunion_S_3'(union_S(A, B, C), D, E, F) :-
1586	'CHRunion_S_3__136'(union_S(A, B, C), D, E, F).
1587'CHRunion_S_3__137'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H], I) ?-
1588	'CHRvar'(D),
1589	'CHR='([C], [H]),
1590	'CHR='(F, I).
1591'CHRunion_S_3__137'([A|B], C, D, E) :-
1592	'CHRunion_S_3__137'(B, C, D, E).
1593:- set_flag('CHRunion_S_3__137' / 4, leash, notrace).
1594:- set_flag('CHRunion_S_3' / 4, leash, notrace).
1595:- current_macro('CHRunion_S_3' / 4, _48338, _48339, _48340) -> true ; define_macro('CHRunion_S_3' / 4, tr_chr / 2, [write]).
1596'CHRunion_S_3__136'(A, B, C, D) :-
1597	'CHRunion_S_3__138'(A, B, C, D).
1598:- set_flag('CHRunion_S_3__136' / 4, leash, notrace).
1599'CHRunion_S_3__138'(union_S(A, B, C), D, E, F) :-
1600	(
1601	    'CHRvar'(D)
1602	->
1603	    'CHRdelay'([D, union_S(A, B, C)], 'CHRunion_S_3'(union_S(A, B, C), D, E, F))
1604	;
1605	    true
1606	).
1607:- set_flag('CHRunion_S_3__138' / 4, leash, notrace).
1608union_S_S1(A, B, C, D) :-
1609	'CHRgen_num'(E),
1610	coca(add_one_constraint(E, union_S_S1(A, B, C, D))),
1611	'CHRunion_S_S1_4'(union_S_S1(A, B, C, D), F, G, E).
1612
1613
1614
1615%%% Rules handling for union_S_S1 / 4
1616
1617'CHRunion_S_S1_4'(union_S_S1(A, B, C, D), E, F, G) :-
1618	(
1619	    'CHRnonvar'(E)
1620	;
1621	    'CHRalready_in'('CHRunion_S_S1_4'(union_S_S1(A, B, C, D), E, F, G)),
1622	    coca(already_in)
1623	),
1624	!.
1625'CHRunion_S_S1_4'(union_S_S1(A, B, C, D), E, F, G) ?-
1626	'CHRget_delayed_goals'(A, H),
1627	'CHRunion_S_S1_4__140'(H, [A], [I], J),
1628	coca(try_double(G, union_S_S1(A, B, C, D), J, set(A, K, I), union_S_S1(L, M, N, O), set(L, P, Q), keep_second, true, (s_delta(O, N, R), incl(R, L), s_delta(O, Q, S), incl(S, M)), anonymous("17"))),
1629	!,
1630	'CHRkill'(E),
1631	coca(fired_rule(anonymous("17"))),
1632	s_delta(D, C, T),
1633	incl(T, A),
1634	s_delta(D, I, U),
1635	incl(U, B).
1636'CHRunion_S_S1_4'(union_S_S1(A, B, C, D), E, F, G) :-
1637	'CHRunion_S_S1_4__139'(union_S_S1(A, B, C, D), E, F, G).
1638'CHRunion_S_S1_4__140'(['CHRset_3'(set(A, B, C), D, E, F)|G], [A], [H], I) ?-
1639	'CHRvar'(D),
1640	'CHR='([C], [H]),
1641	'CHR='(F, I).
1642'CHRunion_S_S1_4__140'([A|B], C, D, E) :-
1643	'CHRunion_S_S1_4__140'(B, C, D, E).
1644:- set_flag('CHRunion_S_S1_4__140' / 4, leash, notrace).
1645:- set_flag('CHRunion_S_S1_4' / 4, leash, notrace).
1646:- current_macro('CHRunion_S_S1_4' / 4, _49517, _49518, _49519) -> true ; define_macro('CHRunion_S_S1_4' / 4, tr_chr / 2, [write]).
1647'CHRunion_S_S1_4__139'(A, B, C, D) :-
1648	'CHRunion_S_S1_4__141'(A, B, C, D).
1649:- set_flag('CHRunion_S_S1_4__139' / 4, leash, notrace).
1650'CHRunion_S_S1_4__141'(union_S_S1(A, B, C, D), E, F, G) :-
1651	(
1652	    'CHRvar'(E)
1653	->
1654	    'CHRdelay'([E, union_S_S1(A, B, C, D)], 'CHRunion_S_S1_4'(union_S_S1(A, B, C, D), E, F, G))
1655	;
1656	    true
1657	).
1658:- set_flag('CHRunion_S_S1_4__141' / 4, leash, notrace).
1659
1660:- getval(variable_names_flag, Val), set_flag(variable_names, Val).
1661