We will look at examples including computing with annotated logic and Fitting's LP over bilattices.
:- import bagMin/2 from aggregs. :- hilog minimum. minimum(X,Y,Z) :- X =< Y -> Z=X ; Z=Y. sumlist([],0). sumlist([X|L],S) :- sumlist(L,S1), S is S1+X. :- op(500,xfx,@). G:D :- orFun(G,D). orFun(G,D) :- bagMin(andFun(G),D). andFun(G)(D) :- G@L,sumlist(L,D). p(X,Y)@[D] :- edge(X,Y):D. p(X,Y)@[D1,D2] :- p(X,Z):D1,edge(Z,Y):D2. edge(a,b)@[5]. edge(b,d)@[6]. edge(b,c)@[1]. edge(c,e)@[3]. edge(e,d)@[1]. edge(a,c)@[7]. edge(c,d)@[2].