color(red).
color(green).
color(blue).
color(yellow).
adjacent(鶴見, 神奈川).
adjacent(神奈川, 西).
adjacent(西, 中).
adjacent(中, 南).
adjacent(南, 港南).
adjacent(港南, 磯子).
adjacent(磯子, 金沢).
adjacent(金沢, 栄).
adjacent(栄, 港南).
adjacent(中, 保土ケ谷).
adjacent(保土ケ谷, 西).
adjacent(保土ケ谷, 旭).
adjacent(旭, 瀬谷).
adjacent(瀬谷, 泉).
adjacent(泉, 戸塚).
adjacent(戸塚, 栄).
adjacent(都筑, 港北).
adjacent(都筑, 青葉).
adjacent(都筑, 緑).
adjacent(港北, 神奈川).
adjacent(緑, 青葉).
adjacent(港北, 鶴見).
adjacent(保土ケ谷, 緑).
% 出力用
print_colors([]).
print_colors([区-色 | 残り]) :-
print_colors(残り).
% 実行ゴール
:-
Vars = [
鶴見-A, 神奈川-B, 西-C, 中-D, 南-E, 港南-F,
磯子-G, 金沢-H, 栄-I, 保土ケ谷-J, 旭-K, 瀬谷-L,
泉-M, 戸塚-N, 都筑-O, 港北-P, 緑-Q, 青葉-R
],
member(鶴見-A, Vars), color(A),
member(神奈川-B, Vars), color(B),
member(西-C, Vars), color(C),
member(中-D, Vars), color(D),
member(南-E, Vars), color(E),
member(港南-F, Vars), color(F),
member(磯子-G, Vars), color(G),
member(金沢-H, Vars), color(H),
member(栄-I, Vars), color(I),
member(保土ケ谷-J, Vars), color(J),
member(旭-K, Vars), color(K),
member(瀬谷-L, Vars), color(L),
member(泉-M, Vars), color(M),
member(戸塚-N, Vars), color(N),
member(都筑-O, Vars), color(O),
member(港北-P, Vars), color(P),
member(緑-Q, Vars), color(Q),
member(青葉-R, Vars), color(R),
% 隣接制約
forall((adjacent(X, Y), member(X-C1, Vars), member(Y-C2, Vars)), C1 \= C2),
print_colors(Vars).
Y29sb3IocmVkKS4KY29sb3IoZ3JlZW4pLgpjb2xvcihibHVlKS4KY29sb3IoeWVsbG93KS4KCmFkamFjZW50KOm2tOimiywg56We5aWI5bedKS4KYWRqYWNlbnQo56We5aWI5bedLCDopb8pLgphZGphY2VudCjopb8sIOS4rSkuCmFkamFjZW50KOS4rSwg5Y2XKS4KYWRqYWNlbnQo5Y2XLCDmuK/ljZcpLgphZGphY2VudCjmuK/ljZcsIOejr+WtkCkuCmFkamFjZW50KOejr+WtkCwg6YeR5rKiKS4KYWRqYWNlbnQo6YeR5rKiLCDmoIQpLgphZGphY2VudCjmoIQsIOa4r+WNlykuCmFkamFjZW50KOS4rSwg5L+d5Zyf44Kx6LC3KS4KYWRqYWNlbnQo5L+d5Zyf44Kx6LC3LCDopb8pLgphZGphY2VudCjkv53lnJ/jgrHosLcsIOaXrSkuCmFkamFjZW50KOaXrSwg54Cs6LC3KS4KYWRqYWNlbnQo54Cs6LC3LCDms4kpLgphZGphY2VudCjms4ksIOaIuOWhmikuCmFkamFjZW50KOaIuOWhmiwg5qCEKS4KYWRqYWNlbnQo6YO9562RLCDmuK/ljJcpLgphZGphY2VudCjpg73nrZEsIOmdkuiRiSkuCmFkamFjZW50KOmDveetkSwg57eRKS4KYWRqYWNlbnQo5riv5YyXLCDnpZ7lpYjlt50pLgphZGphY2VudCjnt5EsIOmdkuiRiSkuCmFkamFjZW50KOa4r+WMlywg6ba06KaLKS4KYWRqYWNlbnQo5L+d5Zyf44Kx6LC3LCDnt5EpLgoKJSDlh7rlipvnlKgKcHJpbnRfY29sb3JzKFtdKS4KcHJpbnRfY29sb3JzKFvljLot6ImyIHwg5q6L44KKXSkgOi0KICAgIHdyaXRlKOWMuiksIHdyaXRlKCcgLT4gJyksIHdyaXRlKOiJsiksIG5sLAogICAgcHJpbnRfY29sb3JzKOaui+OCiikuCgolIOWun+ihjOOCtOODvOODqwo6LSAKICAgIFZhcnMgPSBbCiAgICAgICAg6ba06KaLLUEsIOelnuWliOW3nS1CLCDopb8tQywg5LitLUQsIOWNly1FLCDmuK/ljZctRiwKICAgICAgICDno6/lrZAtRywg6YeR5rKiLUgsIOaghC1JLCDkv53lnJ/jgrHosLctSiwg5petLUssIOeArOiwty1MLAogICAgICAgIOaziS1NLCDmiLjloZotTiwg6YO9562RLU8sIOa4r+WMly1QLCDnt5EtUSwg6Z2S6JGJLVIKICAgIF0sCiAgICBtZW1iZXIo6ba06KaLLUEsIFZhcnMpLCBjb2xvcihBKSwKICAgIG1lbWJlcijnpZ7lpYjlt50tQiwgVmFycyksIGNvbG9yKEIpLAogICAgbWVtYmVyKOilvy1DLCBWYXJzKSwgY29sb3IoQyksCiAgICBtZW1iZXIo5LitLUQsIFZhcnMpLCBjb2xvcihEKSwKICAgIG1lbWJlcijljZctRSwgVmFycyksIGNvbG9yKEUpLAogICAgbWVtYmVyKOa4r+WNly1GLCBWYXJzKSwgY29sb3IoRiksCiAgICBtZW1iZXIo56Ov5a2QLUcsIFZhcnMpLCBjb2xvcihHKSwKICAgIG1lbWJlcijph5HmsqItSCwgVmFycyksIGNvbG9yKEgpLAogICAgbWVtYmVyKOaghC1JLCBWYXJzKSwgY29sb3IoSSksCiAgICBtZW1iZXIo5L+d5Zyf44Kx6LC3LUosIFZhcnMpLCBjb2xvcihKKSwKICAgIG1lbWJlcijml60tSywgVmFycyksIGNvbG9yKEspLAogICAgbWVtYmVyKOeArOiwty1MLCBWYXJzKSwgY29sb3IoTCksCiAgICBtZW1iZXIo5rOJLU0sIFZhcnMpLCBjb2xvcihNKSwKICAgIG1lbWJlcijmiLjloZotTiwgVmFycyksIGNvbG9yKE4pLAogICAgbWVtYmVyKOmDveetkS1PLCBWYXJzKSwgY29sb3IoTyksCiAgICBtZW1iZXIo5riv5YyXLVAsIFZhcnMpLCBjb2xvcihQKSwKICAgIG1lbWJlcijnt5EtUSwgVmFycyksIGNvbG9yKFEpLAogICAgbWVtYmVyKOmdkuiRiS1SLCBWYXJzKSwgY29sb3IoUiksCgogICAgJSDpmqPmjqXliLbntIQKICAgIGZvcmFsbCgoYWRqYWNlbnQoWCwgWSksIG1lbWJlcihYLUMxLCBWYXJzKSwgbWVtYmVyKFktQzIsIFZhcnMpKSwgQzEgXD0gQzIpLAoKICAgIHdyaXRlKCc06Imy44Gn5aGX44KK5YiG44GR5Y+v6IO9JyksIG5sLAogICAgcHJpbnRfY29sb3JzKFZhcnMpLgo=
ERROR: /home/mIIGih/prog:37:
adjacent/2: Caught signal 24 (xcpu)
Warning: /home/mIIGih/prog:37:
Goal (directive) failed: user:(_1356=[鶴見-_1360,神奈川-_1364,西-_1368,中-_1372,南-_1376,港南-_1380,磯子-_1384,金沢-_1388,栄-_1392,保土ケ谷-_1396,旭-_1400,瀬谷-_1404,泉-_1408,戸塚-_1412,都筑-_1416,港北-_1420,緑-_1424,青葉-_1428],member(鶴見-_1360,_1356),color(_1360),member(神奈川-_1364,_1356),color(_1364),member(西-_1368,_1356),color(_1368),member(中-_1372,_1356),color(_1372),member(南-_1376,_1356),color(_1376),member(港南-_1380,_1356),color(_1380),member(磯子-_1384,_1356),color(_1384),member(金沢-_1388,_1356),color(_1388),member(栄-_1392,_1356),color(_1392),member(保土ケ谷-_1396,_1356),color(_1396),member(旭-_1400,_1356),color(_1400),member(瀬谷-_1404,_1356),color(_1404),member(泉-_1408,_1356),color(_1408),member(戸塚-_1412,_1356),color(_1412),member(都筑-_1416,_1356),color(_1416),member(港北-_1420,_1356),color(_1420),member(緑-_1424,_1356),color(_1424),member(青葉-_1428,_1356),color(_1428),forall((adjacent(_1432,_1436),member(_1432-_1440,_1356),member(_1436-_1444,_1356)),_1440\=_1444),write('4色で塗り分け可能'),nl,print_colors(_1356))
ERROR: '$runtoplevel'/0: Undefined procedure: program/0
Exception: (3) program ? EOF: exit