6% p :- not q. 7% q :- not p. 8% %result(S) :- S = #count{ :p}. 9 10% r:- s_result(1). 11% s:- r_result(1). 12 13% s_result(S) :- S = #count{ :s}. 14% r_result(S) :- S = #count{ :r}. 15 16 17 18 19% t(a) :- N = #count{X:u(X)}, N = 0. 20% u(a) :- N = #count{X:t(X)}, N = 0. 21 22% t(a) :- N = #count{X:u(X)}, N = 0. 23% u(a) :- N = #count{X:t(X)}, N = 0. 24 25 26 27% Party 28 29% coming(X) :- required(X,K), N= #count{ :kc(X,_)}, N >= K. 30% kc(X,Y) :- knows(X,Y), coming(Y). 31 32% %coming(a). 33% required(a,1). 34% required(b,1). 35% knows(a,b). 36% knows(b,a). 37 38 39% r(a).r(b). 40% p(b). 41% q(b). 42% p(a) :- N = #count{ r(X): q(X)}, N = 1. 43% q(a) :- 1 = #count{ r(X): p(X)}. 44 45 46p(0). 47p(1). 48p(2). 49 50r(1..2). 51 52p(0) :- N = #min {X : p(X)}, N = 0. 53 54#