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).
8globalize(_819) :- suspend(true, 2, _819 - _834 -> inst), _834 = fired.
9path1(1, _1143, _1146, [_1151], p - p, _1159) :- check_pp(_1143, _1146, _1151).
10path1(1, _1190, _1193, [_1198], p - i, _1206) :- check_pi(_1190, _1193, _1198).
11path1(1, _1237, _1240, [_1245], i - p, _1253) :- check_ip(_1240, _1237, _1245).
12path1(1, _1284, _1287, [_1292], i - i, _1300) :- check_ii(_1284, _1287, _1292).
13
14
15
16%%% Callables for path / 6
17
18'CHRlabel_with'(path(A, B, C, D, E, F), G, H) ?-
19	coca(try_clause(H, path(A, B, C, D, E, F), path(I, J, K, L, M, N), I > 1)),
20	no_delayed_goals(A > 1),
21	coca(clause_fired(H)),
22	'CHR='(G, clause_path(A, B, C, D, E, F)).
23arc(A, B, C, D) :-
24	'CHRgen_num'(E),
25	coca(add_one_constraint(E, arc(A, B, C, D))),
26	'CHRarc_4'(arc(A, B, C, D), F, G, E).
27
28
29
30%%% Rules handling for arc / 4
31
32'CHRarc_4'(arc(A, B, C, D), E, F, G) :-
33	'CHRnonvar'(E),
34	!.
35'CHRarc_4'(arc(A, B, C, D), E, F, G) ?-
36	coca(try_rule(G, arc(A, B, C, D), add_path, arc(H, I, J, K), replacement, (ground(J), ground(K), length(J, L)), (globalize(H - I), path(L, H, I, J, K, 1)))),
37	no_delayed_goals((ground(C), ground(D), length(C, M))),
38	!,
39	'CHRkill'(E),
40	coca(fired_rule(add_path)),
41	globalize(A - B),
42	path(M, A, B, C, D, 1).
43'CHRarc_4'(arc(A, B, C, D), E, F, G) :-
44	'CHRarc_4__0'(arc(A, B, C, D), E, F, G).
45:- set_flag('CHRarc_4' / 4, leash, notrace).
46:- current_macro('CHRarc_4' / 4, _5867, _5868, _5869) -> true ; define_macro('CHRarc_4' / 4, tr_chr / 2, [write]).
47'CHRarc_4__0'(A, B, C, D) :-
48	'CHRarc_4__1'(A, B, C, D).
49:- set_flag('CHRarc_4__0' / 4, leash, notrace).
50'CHRarc_4__1'(arc(A, B, C, D), E, F, G) :-
51	(
52	    'CHRvar'(E)
53	->
54	    'CHRdelay'([E, arc(A, B, C, D)], 'CHRarc_4'(arc(A, B, C, D), E, F, G))
55	;
56	    true
57	).
58:- set_flag('CHRarc_4__1' / 4, leash, notrace).
59
60
61
62%%% Prolog clauses for path / 6
63
64clause_path(A, B, C, D, E, F) :-
65	member(G, D),
66	path(1, B, C, [G], E, F).
67:- current_macro(clause_path / 6, _6139, _6140, _6141) -> true ; define_macro(clause_path / 6, tr_chr / 2, [write]).
68path(A, B, C, D, E, F) :-
69	'CHRgen_num'(G),
70	coca(add_one_constraint(G, path(A, B, C, D, E, F))),
71	'CHRpath_6'(path(A, B, C, D, E, F), H, I, G).
72
73
74
75%%% Rules handling for path / 6
76
77'CHRpath_6'(path(A, B, C, D, E, F), G, H, I) :-
78	'CHRnonvar'(G),
79	!.
80'CHRpath_6'(path(A, B, C, D, E, F), G, H, I) ?-
81	coca(try_rule(I, path(A, B, C, D, E, F), ground, path(J, K, L, M, N, O), replacement, ground(K - L - M - N), path1(J, K, L, M, N, O))),
82	no_delayed_goals(ground(B - C - D - E)),
83	!,
84	'CHRkill'(G),
85	coca(fired_rule(ground)),
86	path1(A, B, C, D, E, F).
87'CHRpath_6'(path(A, B, C, D, E, F), G, H, I) ?-
88	coca(try_rule(I, path(A, B, C, D, E, F), empty, path(J, K, L, M, N, O), replacement, empty(J, M, N), fail)),
89	no_delayed_goals(empty(A, D, E)),
90	!,
91	'CHRkill'(G),
92	coca(fired_rule(empty)),
93	fail.
94'CHRpath_6'(path(A, B, C, D, E, F), G, H, I) ?-
95	coca(try_rule(I, path(A, B, C, D, E, F), universal, path(J, K, L, M, N, O), replacement, universal(J, M, N), true)),
96	no_delayed_goals(universal(A, D, E)),
97	!,
98	'CHRkill'(G),
99	coca(fired_rule(universal)).
100'CHRpath_6'(path(A, B, B, C, D, E), F, G, H) ?-
101	coca(try_rule(H, path(A, B, B, C, D, E), equality, path(I, J, J, K, L, M), replacement, true, equality(K, L))),
102	!,
103	'CHRkill'(F),
104	coca(fired_rule(equality)),
105	equality(C, D).
106'CHRpath_6'(path(1, A, B, C, D, E), F, G, H) ?-
107	coca(try_rule(H, path(1, A, B, C, D, E), unify, path(1, I, J, K, L, M), replacement, (unique(K), equality(K, L)), I = J)),
108	no_delayed_goals((unique(C), equality(C, D))),
109	!,
110	'CHRkill'(F),
111	coca(fired_rule(unify)),
112	A = B.
113'CHRpath_6'(path(1, A, B, C, p - p, D), E, F, G) ?-
114	coca(try_rule(G, path(1, A, B, C, p - p, D), findom_unique, path(1, H, I, J, p - p, K), replacement, (number(H), unique(J)), bind_value(H, I, J))),
115	no_delayed_goals((number(A), unique(C))),
116	!,
117	'CHRkill'(E),
118	coca(fired_rule(findom_unique)),
119	bind_value(A, B, C).
120'CHRpath_6'(path(A, B, C, D, p - p, E), F, G, H) ?-
121	coca(try_rule(H, path(A, B, C, D, p - p, E), findom_x, path(I, J, K, L, p - p, M), replacement, (number(J), J =\= 0, shift_interval(J, L, N)), path(I, 0, K, N, p - p, M))),
122	no_delayed_goals((number(B), B =\= 0, shift_interval(B, D, O))),
123	!,
124	'CHRkill'(F),
125	coca(fired_rule(findom_x)),
126	path(A, 0, C, O, p - p, E).
127'CHRpath_6'(path(A, B, C, D, p - p, E), F, G, H) ?-
128	coca(try_rule(H, path(A, B, C, D, p - p, E), findom_y, path(I, J, K, L, p - p, M), replacement, (number(K), equality([N], p - p), transl(L, O, [N], p - p - p), shift_interval(K, O, P)), path(I, 0, J, P, p - p, M))),
129	no_delayed_goals((number(C), equality([Q], p - p), transl(D, R, [Q], p - p - p), shift_interval(C, R, S))),
130	!,
131	'CHRkill'(F),
132	coca(fired_rule(findom_y)),
133	path(A, 0, B, S, p - p, E).
134'CHRpath_6'(path(A, B, C, D, E, F), G, H, I) :-
135	'CHRpath_6__2'(path(A, B, C, D, E, F), G, H, I).
136:- set_flag('CHRpath_6' / 4, leash, notrace).
137:- current_macro('CHRpath_6' / 4, _7569, _7570, _7571) -> true ; define_macro('CHRpath_6' / 4, tr_chr / 2, [write]).
138'CHRpath_6__2'(A, B, C, D) :-
139	'CHRpath_6__3'(A, B, C, D).
140:- set_flag('CHRpath_6__2' / 4, leash, notrace).
141'CHRpath_6__3'(path(A, B, C, D, E - F, G), H, I, J) ?-
142	'CHRvar'(H),
143	!,
144	'CHRget_delayed_goals'(F, K),
145	'CHRpath_6__3__4'(K, H, path(A, B, C, D, E - F, G), I, J).
146'CHRpath_6__3'(path(A, B, C, D, E, F), G, H, I) :-
147	'CHRpath_6__3__5'(path(A, B, C, D, E, F), G, H, I).
148:- set_flag('CHRpath_6__3' / 4, leash, notrace).
149'CHRpath_6__3__4'(['CHRpath_6'(path(A, B, C, D, E - F, G), H, I, J)|K], L, path(M, B, C, N, E - F, O), P, Q) ?-
150	'CHRvar'(H),
151	'CHRcheck_and_mark_applied'('12'(intersect_xy_xy), L, H, P, I),
152	coca(try_double(Q, path(M, B, C, N, E - F, O), J, path(A, B, C, D, E - F, G), path(R, S, T, U, V - W, X), path(Y, S, T, Z, V - W, A1), augmentation, ((intersection(U, Z, B1, V - W), length(B1, C1), D1 is min(X, A1)), 'CHRkeep_heads_checking'(path(R, S, T, U, V - W, X), E1, path(Y, S, T, Z, V - W, A1), F1, path(C1, S, T, B1, V - W, D1), G1)), 'CHRhead_not_kept'(G1) -> path(C1, S, T, B1, V - W, D1) ; true, intersect_xy_xy)),
153	no_delayed_goals(((intersection(N, D, H1, E - F), length(H1, I1), J1 is min(O, G)), 'CHRkeep_heads_checking'(path(M, B, C, N, E - F, O), L, path(A, B, C, D, E - F, G), H, path(I1, B, C, H1, E - F, J1), K1))),
154	!,
155	coca(fired_rule(intersect_xy_xy)),
156	'CHRpath_6__3__4'(K, L, path(M, B, C, N, E - F, O), P, Q),
157	(
158	    'CHRhead_not_kept'(K1)
159	->
160	    path(I1, B, C, H1, E - F, J1)
161	;
162	    true
163	).
164'CHRpath_6__3__4'([A|B], C, D, E, F) :-
165	'CHRpath_6__3__4'(B, C, D, E, F).
166'CHRpath_6__3__4'([], A, B, C, D) :-
167	'CHRpath_6__3__5'(B, A, C, D).
168:- set_flag('CHRpath_6__3__4' / 5, leash, notrace).
169'CHRpath_6__3__5'(path(A, B, C, D, E - F, G), H, I, J) ?-
170	'CHRvar'(H),
171	!,
172	'CHRget_delayed_goals'(F, K),
173	'CHRpath_6__3__5__6'(K, H, path(A, B, C, D, E - F, G), I, J).
174'CHRpath_6__3__5'(path(A, B, C, D, E, F), G, H, I) :-
175	'CHRpath_6__3__5__7'(path(A, B, C, D, E, F), G, H, I).
176:- set_flag('CHRpath_6__3__5' / 4, leash, notrace).
177'CHRpath_6__3__5__6'(['CHRpath_6'(path(A, B, C, D, E - F, G), H, I, J)|K], L, path(M, B, C, N, E - F, O), P, Q) ?-
178	'CHRvar'(H),
179	'CHRcheck_and_mark_applied'('21'(intersect_xy_xy), L, H, P, I),
180	coca(try_double(Q, path(M, B, C, N, E - F, O), J, path(A, B, C, D, E - F, G), path(R, S, T, U, V - W, X), path(Y, S, T, Z, V - W, A1), augmentation, ((intersection(Z, U, B1, V - W), length(B1, C1), D1 is min(A1, X)), 'CHRkeep_heads_checking'(path(Y, S, T, Z, V - W, A1), E1, path(R, S, T, U, V - W, X), F1, path(C1, S, T, B1, V - W, D1), G1)), 'CHRhead_not_kept'(G1) -> path(C1, S, T, B1, V - W, D1) ; true, intersect_xy_xy)),
181	no_delayed_goals(((intersection(D, N, H1, E - F), length(H1, I1), J1 is min(G, O)), 'CHRkeep_heads_checking'(path(A, B, C, D, E - F, G), H, path(M, B, C, N, E - F, O), L, path(I1, B, C, H1, E - F, J1), K1))),
182	!,
183	coca(fired_rule(intersect_xy_xy)),
184	'CHRpath_6__3__5__6'(K, L, path(M, B, C, N, E - F, O), P, Q),
185	(
186	    'CHRhead_not_kept'(K1)
187	->
188	    path(I1, B, C, H1, E - F, J1)
189	;
190	    true
191	).
192'CHRpath_6__3__5__6'([A|B], C, D, E, F) :-
193	'CHRpath_6__3__5__6'(B, C, D, E, F).
194'CHRpath_6__3__5__6'([], A, B, C, D) :-
195	'CHRpath_6__3__5__7'(B, A, C, D).
196:- set_flag('CHRpath_6__3__5__6' / 5, leash, notrace).
197'CHRpath_6__3__5__7'(path(A, B, C, D, E - F, G), H, I, J) ?-
198	'CHRvar'(H),
199	!,
200	'CHRget_delayed_goals'(F, K),
201	'CHRpath_6__3__5__7__8'(K, H, path(A, B, C, D, E - F, G), I, J).
202'CHRpath_6__3__5__7'(path(A, B, C, D, E, F), G, H, I) :-
203	'CHRpath_6__3__5__7__9'(path(A, B, C, D, E, F), G, H, I).
204:- set_flag('CHRpath_6__3__5__7' / 4, leash, notrace).
205'CHRpath_6__3__5__7__8'(['CHRpath_6'(path(A, B, C, D, E - F, G), H, I, J)|K], L, path(M, C, B, N, F - E, O), P, Q) ?-
206	'CHRvar'(H),
207	'CHRcheck_and_mark_applied'('12'(intersect_yx_xy), L, H, P, I),
208	coca(try_double(Q, path(M, C, B, N, F - E, O), J, path(A, B, C, D, E - F, G), path(R, S, T, U, V - W, X), path(Y, T, S, Z, W - V, A1), augmentation, ((equality([B1], W - W), transl(Z, C1, [B1], W - V - W), intersection(U, C1, D1, V - W), length(D1, E1), F1 is min(X, A1)), 'CHRkeep_heads_checking'(path(R, S, T, U, V - W, X), G1, path(Y, T, S, Z, W - V, A1), H1, path(E1, S, T, D1, V - W, F1), I1)), 'CHRhead_not_kept'(I1) -> path(E1, S, T, D1, V - W, F1) ; true, intersect_yx_xy)),
209	no_delayed_goals(((equality([J1], E - E), transl(D, K1, [J1], E - F - E), intersection(N, K1, L1, F - E), length(L1, M1), N1 is min(O, G)), 'CHRkeep_heads_checking'(path(M, C, B, N, F - E, O), L, path(A, B, C, D, E - F, G), H, path(M1, C, B, L1, F - E, N1), O1))),
210	!,
211	coca(fired_rule(intersect_yx_xy)),
212	'CHRpath_6__3__5__7__8'(K, L, path(M, C, B, N, F - E, O), P, Q),
213	(
214	    'CHRhead_not_kept'(O1)
215	->
216	    path(M1, C, B, L1, F - E, N1)
217	;
218	    true
219	).
220'CHRpath_6__3__5__7__8'([A|B], C, D, E, F) :-
221	'CHRpath_6__3__5__7__8'(B, C, D, E, F).
222'CHRpath_6__3__5__7__8'([], A, B, C, D) :-
223	'CHRpath_6__3__5__7__9'(B, A, C, D).
224:- set_flag('CHRpath_6__3__5__7__8' / 5, leash, notrace).
225'CHRpath_6__3__5__7__9'(path(A, B, C, D, E - F, G), H, I, J) ?-
226	'CHRvar'(H),
227	!,
228	'CHRget_delayed_goals'(F, K),
229	'CHRpath_6__3__5__7__9__10'(K, H, path(A, B, C, D, E - F, G), I, J).
230'CHRpath_6__3__5__7__9'(path(A, B, C, D, E, F), G, H, I) :-
231	'CHRpath_6__3__5__7__9__11'(path(A, B, C, D, E, F), G, H, I).
232:- set_flag('CHRpath_6__3__5__7__9' / 4, leash, notrace).
233'CHRpath_6__3__5__7__9__10'(['CHRpath_6'(path(A, B, C, D, E - F, G), H, I, J)|K], L, path(M, C, B, N, F - E, O), P, Q) ?-
234	'CHRvar'(H),
235	'CHRcheck_and_mark_applied'('21'(intersect_yx_xy), L, H, P, I),
236	coca(try_double(Q, path(M, C, B, N, F - E, O), J, path(A, B, C, D, E - F, G), path(R, S, T, U, V - W, X), path(Y, T, S, Z, W - V, A1), augmentation, ((equality([B1], V - V), transl(U, C1, [B1], V - W - V), intersection(Z, C1, D1, W - V), length(D1, E1), F1 is min(A1, X)), 'CHRkeep_heads_checking'(path(Y, T, S, Z, W - V, A1), G1, path(R, S, T, U, V - W, X), H1, path(E1, T, S, D1, W - V, F1), I1)), 'CHRhead_not_kept'(I1) -> path(E1, T, S, D1, W - V, F1) ; true, intersect_yx_xy)),
237	no_delayed_goals(((equality([J1], F - F), transl(N, K1, [J1], F - E - F), intersection(D, K1, L1, E - F), length(L1, M1), N1 is min(G, O)), 'CHRkeep_heads_checking'(path(A, B, C, D, E - F, G), H, path(M, C, B, N, F - E, O), L, path(M1, B, C, L1, E - F, N1), O1))),
238	!,
239	coca(fired_rule(intersect_yx_xy)),
240	'CHRpath_6__3__5__7__9__10'(K, L, path(M, C, B, N, F - E, O), P, Q),
241	(
242	    'CHRhead_not_kept'(O1)
243	->
244	    path(M1, B, C, L1, E - F, N1)
245	;
246	    true
247	).
248'CHRpath_6__3__5__7__9__10'([A|B], C, D, E, F) :-
249	'CHRpath_6__3__5__7__9__10'(B, C, D, E, F).
250'CHRpath_6__3__5__7__9__10'([], A, B, C, D) :-
251	'CHRpath_6__3__5__7__9__11'(B, A, C, D).
252:- set_flag('CHRpath_6__3__5__7__9__10' / 5, leash, notrace).
253'CHRpath_6__3__5__7__9__11'(path(A, B, C, D, E - F, G), H, I, J) ?-
254	'CHRvar'(H),
255	!,
256	'CHRget_delayed_goals'(F, K),
257	'CHRpath_6__3__5__7__9__11__12'(K, H, path(A, B, C, D, E - F, G), I, J).
258'CHRpath_6__3__5__7__9__11'(path(A, B, C, D, E, F), G, H, I) :-
259	'CHRpath_6__3__5__7__9__11__13'(path(A, B, C, D, E, F), G, H, I).
260:- set_flag('CHRpath_6__3__5__7__9__11' / 4, leash, notrace).
261'CHRpath_6__3__5__7__9__11__12'(['CHRpath_6'(path(A, B, C, D, E - F, G), H, I, J)|K], L, path(M, N, B, O, P - E, Q), R, S) ?-
262	'CHRvar'(H),
263	'CHRcheck_and_mark_applied'('12'(propagate_xy_yz), L, H, R, I),
264	coca(try_double(S, path(M, N, B, O, P - E, Q), J, path(A, B, C, D, E - F, G), path(T, U, V, W, X - Y, Z), path(A1, V, B1, C1, Y - D1, E1), augmentation, (nonground(V), E1 = 1, (Z = 1 -> U @< B1 ; true), transl(W, C1, F1, X - Y - D1), length(F1, G1), H1 is Z + E1), path(G1, U, B1, F1, X - D1, H1), propagate_xy_yz)),
265	no_delayed_goals((nonground(B), G = 1, (Q = 1 -> N @< C ; true), transl(O, D, I1, P - E - F), length(I1, J1), K1 is Q + G)),
266	!,
267	coca(fired_rule(propagate_xy_yz)),
268	'CHRpath_6__3__5__7__9__11__12'(K, L, path(M, N, B, O, P - E, Q), R, S),
269	path(J1, N, C, I1, P - F, K1).
270'CHRpath_6__3__5__7__9__11__12'([A|B], C, D, E, F) :-
271	'CHRpath_6__3__5__7__9__11__12'(B, C, D, E, F).
272'CHRpath_6__3__5__7__9__11__12'([], A, B, C, D) :-
273	'CHRpath_6__3__5__7__9__11__13'(B, A, C, D).
274:- set_flag('CHRpath_6__3__5__7__9__11__12' / 5, leash, notrace).
275'CHRpath_6__3__5__7__9__11__13'(path(A, B, C, D, E - F, G), H, I, J) ?-
276	'CHRvar'(H),
277	!,
278	'CHRget_delayed_goals'(E, K),
279	'CHRpath_6__3__5__7__9__11__13__14'(K, H, path(A, B, C, D, E - F, G), I, J).
280'CHRpath_6__3__5__7__9__11__13'(path(A, B, C, D, E, F), G, H, I) :-
281	'CHRpath_6__3__5__7__9__11__13__15'(path(A, B, C, D, E, F), G, H, I).
282:- set_flag('CHRpath_6__3__5__7__9__11__13' / 4, leash, notrace).
283'CHRpath_6__3__5__7__9__11__13__14'(['CHRpath_6'(path(A, B, C, D, E - F, G), H, I, J)|K], L, path(M, C, N, O, F - P, Q), R, S) ?-
284	'CHRvar'(H),
285	'CHRcheck_and_mark_applied'('21'(propagate_xy_yz), L, H, R, I),
286	coca(try_double(S, path(M, C, N, O, F - P, Q), J, path(A, B, C, D, E - F, G), path(T, U, V, W, X - Y, Z), path(A1, B1, U, C1, D1 - X, E1), augmentation, (nonground(U), Z = 1, (E1 = 1 -> B1 @< V ; true), transl(C1, W, F1, D1 - X - Y), length(F1, G1), H1 is E1 + Z), path(G1, B1, V, F1, D1 - Y, H1), propagate_xy_yz)),
287	no_delayed_goals((nonground(C), Q = 1, (G = 1 -> B @< N ; true), transl(D, O, I1, E - F - P), length(I1, J1), K1 is G + Q)),
288	!,
289	coca(fired_rule(propagate_xy_yz)),
290	'CHRpath_6__3__5__7__9__11__13__14'(K, L, path(M, C, N, O, F - P, Q), R, S),
291	path(J1, B, N, I1, E - P, K1).
292'CHRpath_6__3__5__7__9__11__13__14'([A|B], C, D, E, F) :-
293	'CHRpath_6__3__5__7__9__11__13__14'(B, C, D, E, F).
294'CHRpath_6__3__5__7__9__11__13__14'([], A, B, C, D) :-
295	'CHRpath_6__3__5__7__9__11__13__15'(B, A, C, D).
296:- set_flag('CHRpath_6__3__5__7__9__11__13__14' / 5, leash, notrace).
297'CHRpath_6__3__5__7__9__11__13__15'(path(A, B, C, D, E - F, G), H, I, J) ?-
298	'CHRvar'(H),
299	!,
300	'CHRget_delayed_goals'(E, K),
301	'CHRpath_6__3__5__7__9__11__13__15__16'(K, H, path(A, B, C, D, E - F, G), I, J).
302'CHRpath_6__3__5__7__9__11__13__15'(path(A, B, C, D, E, F), G, H, I) :-
303	'CHRpath_6__3__5__7__9__11__13__15__17'(path(A, B, C, D, E, F), G, H, I).
304:- set_flag('CHRpath_6__3__5__7__9__11__13__15' / 4, leash, notrace).
305'CHRpath_6__3__5__7__9__11__13__15__16'(['CHRpath_6'(path(A, B, C, D, E - F, G), H, I, J)|K], L, path(M, B, N, O, E - P, Q), R, S) ?-
306	'CHRvar'(H),
307	'CHRcheck_and_mark_applied'('12'(propagate_xy_xz), L, H, R, I),
308	coca(try_double(S, path(M, B, N, O, E - P, Q), J, path(A, B, C, D, E - F, G), path(T, U, V, W, X - Y, Z), path(A1, U, B1, C1, X - D1, E1), augmentation, (nonground(U), min(Z, E1, 1), V @< B1, transl(W, F1, C1, X - Y - D1), length(F1, G1), H1 is Z + E1), path(G1, V, B1, F1, Y - D1, H1), propagate_xy_xz)),
309	no_delayed_goals((nonground(B), min(Q, G, 1), N @< C, transl(O, I1, D, E - P - F), length(I1, J1), K1 is Q + G)),
310	!,
311	coca(fired_rule(propagate_xy_xz)),
312	'CHRpath_6__3__5__7__9__11__13__15__16'(K, L, path(M, B, N, O, E - P, Q), R, S),
313	path(J1, N, C, I1, P - F, K1).
314'CHRpath_6__3__5__7__9__11__13__15__16'([A|B], C, D, E, F) :-
315	'CHRpath_6__3__5__7__9__11__13__15__16'(B, C, D, E, F).
316'CHRpath_6__3__5__7__9__11__13__15__16'([], A, B, C, D) :-
317	'CHRpath_6__3__5__7__9__11__13__15__17'(B, A, C, D).
318:- set_flag('CHRpath_6__3__5__7__9__11__13__15__16' / 5, leash, notrace).
319'CHRpath_6__3__5__7__9__11__13__15__17'(path(A, B, C, D, E - F, G), H, I, J) ?-
320	'CHRvar'(H),
321	!,
322	'CHRget_delayed_goals'(E, K),
323	'CHRpath_6__3__5__7__9__11__13__15__17__18'(K, H, path(A, B, C, D, E - F, G), I, J).
324'CHRpath_6__3__5__7__9__11__13__15__17'(path(A, B, C, D, E, F), G, H, I) :-
325	'CHRpath_6__3__5__7__9__11__13__15__17__19'(path(A, B, C, D, E, F), G, H, I).
326:- set_flag('CHRpath_6__3__5__7__9__11__13__15__17' / 4, leash, notrace).
327'CHRpath_6__3__5__7__9__11__13__15__17__18'(['CHRpath_6'(path(A, B, C, D, E - F, G), H, I, J)|K], L, path(M, B, N, O, E - P, Q), R, S) ?-
328	'CHRvar'(H),
329	'CHRcheck_and_mark_applied'('21'(propagate_xy_xz), L, H, R, I),
330	coca(try_double(S, path(M, B, N, O, E - P, Q), J, path(A, B, C, D, E - F, G), path(T, U, V, W, X - Y, Z), path(A1, U, B1, C1, X - D1, E1), augmentation, (nonground(U), min(E1, Z, 1), B1 @< V, transl(C1, F1, W, X - D1 - Y), length(F1, G1), H1 is E1 + Z), path(G1, B1, V, F1, D1 - Y, H1), propagate_xy_xz)),
331	no_delayed_goals((nonground(B), min(G, Q, 1), C @< N, transl(D, I1, O, E - F - P), length(I1, J1), K1 is G + Q)),
332	!,
333	coca(fired_rule(propagate_xy_xz)),
334	'CHRpath_6__3__5__7__9__11__13__15__17__18'(K, L, path(M, B, N, O, E - P, Q), R, S),
335	path(J1, C, N, I1, F - P, K1).
336'CHRpath_6__3__5__7__9__11__13__15__17__18'([A|B], C, D, E, F) :-
337	'CHRpath_6__3__5__7__9__11__13__15__17__18'(B, C, D, E, F).
338'CHRpath_6__3__5__7__9__11__13__15__17__18'([], A, B, C, D) :-
339	'CHRpath_6__3__5__7__9__11__13__15__17__19'(B, A, C, D).
340:- set_flag('CHRpath_6__3__5__7__9__11__13__15__17__18' / 5, leash, notrace).
341'CHRpath_6__3__5__7__9__11__13__15__17__19'(path(A, B, C, D, E - F, G), H, I, J) ?-
342	'CHRvar'(H),
343	!,
344	'CHRget_delayed_goals'(F, K),
345	'CHRpath_6__3__5__7__9__11__13__15__17__19__20'(K, H, path(A, B, C, D, E - F, G), I, J).
346'CHRpath_6__3__5__7__9__11__13__15__17__19'(path(A, B, C, D, E, F), G, H, I) :-
347	'CHRpath_6__3__5__7__9__11__13__15__17__19__21'(path(A, B, C, D, E, F), G, H, I).
348:- set_flag('CHRpath_6__3__5__7__9__11__13__15__17__19' / 4, leash, notrace).
349'CHRpath_6__3__5__7__9__11__13__15__17__19__20'(['CHRpath_6'(path(A, B, C, D, E - F, G), H, I, J)|K], L, path(M, N, C, O, P - F, Q), R, S) ?-
350	'CHRvar'(H),
351	'CHRcheck_and_mark_applied'('12'(propagate_xy_zy), L, H, R, I),
352	coca(try_double(S, path(M, N, C, O, P - F, Q), J, path(A, B, C, D, E - F, G), path(T, U, V, W, X - Y, Z), path(A1, B1, V, C1, D1 - Y, E1), augmentation, (nonground(V), min(Z, E1, 1), U @< B1, transl(F1, C1, W, X - D1 - Y), length(F1, G1), H1 is Z + E1), path(G1, U, B1, F1, X - D1, H1), propagate_xy_zy)),
353	no_delayed_goals((nonground(C), min(Q, G, 1), N @< B, transl(I1, D, O, P - E - F), length(I1, J1), K1 is Q + G)),
354	!,
355	coca(fired_rule(propagate_xy_zy)),
356	'CHRpath_6__3__5__7__9__11__13__15__17__19__20'(K, L, path(M, N, C, O, P - F, Q), R, S),
357	path(J1, N, B, I1, P - E, K1).
358'CHRpath_6__3__5__7__9__11__13__15__17__19__20'([A|B], C, D, E, F) :-
359	'CHRpath_6__3__5__7__9__11__13__15__17__19__20'(B, C, D, E, F).
360'CHRpath_6__3__5__7__9__11__13__15__17__19__20'([], A, B, C, D) :-
361	'CHRpath_6__3__5__7__9__11__13__15__17__19__21'(B, A, C, D).
362:- set_flag('CHRpath_6__3__5__7__9__11__13__15__17__19__20' / 5, leash, notrace).
363'CHRpath_6__3__5__7__9__11__13__15__17__19__21'(path(A, B, C, D, E - F, G), H, I, J) ?-
364	'CHRvar'(H),
365	!,
366	'CHRget_delayed_goals'(F, K),
367	'CHRpath_6__3__5__7__9__11__13__15__17__19__21__22'(K, H, path(A, B, C, D, E - F, G), I, J).
368'CHRpath_6__3__5__7__9__11__13__15__17__19__21'(path(A, B, C, D, E, F), G, H, I) :-
369	'CHRpath_6__3__5__7__9__11__13__15__17__19__21__23'(path(A, B, C, D, E, F), G, H, I).
370:- set_flag('CHRpath_6__3__5__7__9__11__13__15__17__19__21' / 4, leash, notrace).
371'CHRpath_6__3__5__7__9__11__13__15__17__19__21__22'(['CHRpath_6'(path(A, B, C, D, E - F, G), H, I, J)|K], L, path(M, N, C, O, P - F, Q), R, S) ?-
372	'CHRvar'(H),
373	'CHRcheck_and_mark_applied'('21'(propagate_xy_zy), L, H, R, I),
374	coca(try_double(S, path(M, N, C, O, P - F, Q), J, path(A, B, C, D, E - F, G), path(T, U, V, W, X - Y, Z), path(A1, B1, V, C1, D1 - Y, E1), augmentation, (nonground(V), min(E1, Z, 1), B1 @< U, transl(F1, W, C1, D1 - X - Y), length(F1, G1), H1 is E1 + Z), path(G1, B1, U, F1, D1 - X, H1), propagate_xy_zy)),
375	no_delayed_goals((nonground(C), min(G, Q, 1), B @< N, transl(I1, O, D, E - P - F), length(I1, J1), K1 is G + Q)),
376	!,
377	coca(fired_rule(propagate_xy_zy)),
378	'CHRpath_6__3__5__7__9__11__13__15__17__19__21__22'(K, L, path(M, N, C, O, P - F, Q), R, S),
379	path(J1, B, N, I1, E - P, K1).
380'CHRpath_6__3__5__7__9__11__13__15__17__19__21__22'([A|B], C, D, E, F) :-
381	'CHRpath_6__3__5__7__9__11__13__15__17__19__21__22'(B, C, D, E, F).
382'CHRpath_6__3__5__7__9__11__13__15__17__19__21__22'([], A, B, C, D) :-
383	'CHRpath_6__3__5__7__9__11__13__15__17__19__21__23'(B, A, C, D).
384:- set_flag('CHRpath_6__3__5__7__9__11__13__15__17__19__21__22' / 5, leash, notrace).
385'CHRpath_6__3__5__7__9__11__13__15__17__19__21__23'(path(A, B, C, D, E, F), G, H, I) :-
386	(
387	    'CHRvar'(G)
388	->
389	    'CHRdelay'([G, path(A, B, C, D, E, F)], 'CHRpath_6'(path(A, B, C, D, E, F), G, H, I))
390	;
391	    true
392	).
393:- set_flag('CHRpath_6__3__5__7__9__11__13__15__17__19__21__23' / 4, leash, notrace).
394
395:- getval(variable_names_flag, Val), set_flag(variable_names, Val).
396