in(X) v out(X) :- vtx(X). :- not inneighbor(X), not in(X), vtx(X). inneighbor(X) :- #sum{ W,Y: in(Y), edgewt(Y,X,W), edge(Y,X)} >= M , minweight(M), vtx(X). inneighbor(X) :- #sum{ W,Y: in(Y), edgewt(X,Y,W), edge(X,Y)} >= M , minweight(M), vtx(X). :- bound(K), #count{X: in(X)} > K.