2vertex(0).
3vertex(1).
4vertex(2).
5vertex(3).
6
8edge(0, 1).
9edge(1, 2).
10edge(2, 3).
11edge(3, 0).
12
13edge(2, 0).
14edge(0, 3).
15edge(3, 1).
16
17reachable(V) :- chosen(U, V), reachable(U).
18reachable(0) :- chosen(V, 0).
19
20% Every vertex must be reachable.
21:- vertex(U), not reachable(U).
22
24other(U, V) :-
25 vertex(U), vertex(V), vertex(W),
26 edge(U, W), V \= W, chosen(U, W).
27chosen(U, V) :-
28 edge(U, V), not other(U, V).
29
31:- chosen(U, W), chosen(V, W), U \= V. 32
33?- chosen(1,2).