%% database( { g(X:string,Y:string, C:integer) } ). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% export least_dist(X,Y,C). export ld(X,Y,C). %% ld(X,Y,mmin)<-g(X,Y,C). ld(X,Y,mmin)<-ld(X,Z,C1),ld(Z,Y,C2),C=C1+C2. least_dist(X,Y,min)<-ld(X,Y,C). single(mmin, X, X). multi(mmin, X, Old, M) <- min(X,Old,M). return(mmin, X, Old, M) <- min(X,Old,M). min(X,nil,X). min(X,Y,X)<-X<=Y. min(X,Y,Y)<-Y