vangelder.pl

loading
details
attribute value
description
owner Johannes Waldmann
uploaded 2017-08-17 03:45:07.0
disk size 1.1 KB
downloadable true
type
attribute value
name no_type
processor id 1
description this is the default benchmark type for rejected benchmarks and benchmarks that are not associated with a type.
owning community none
loading contents
%query: q(i,i).
%From sagiv Tue Jan  7 10:56:23 1992
%Received: by humus.huji.ac.il (5.65b+IDA/HU-4.7)
%	id AA16201; Tue, 7 Jan 92 10:56:22 +0200
%From: yehoshua Sagiv <sagiv>
%Date: Tue, 7 Jan 92 10:56:22 +0200
%Message-Id: <9201070856.AA16201@humus.huji.ac.il>
%To: naomil
%Subject: example
%Status: R

%Following is an example that is referred to in footnote 4.
%It is due to Allen Van Gelder (originally, I gave another example, but
%Allen pointed out that his algorithm could handle it by first applying
%unfolding; later Allen emblished my original example to the following one
%and showed that unfolding does not help his method in this case).
%Note that in the following example there is a cycle involving q, p, r, t,
%and q again,such that nothing gets smaller along that cycle.
 

e(a,b).
q(X,Y)       :- e(X,Y).
q(X,f(f(X))) :- p(X,f(f(X))), q(X,f(X)).
q(X,f(f(Y))) :- p(X,f(Y)).
 
p(X,Y)       :- e(X,Y).
p(X,f(Y))    :- r(X,f(Y)), p(X,Y).
 
r(X,Y)       :- e(X,Y).
r(X,f(Y))    :- q(X,Y), r(X,Y).
r(f(X),f(X)) :- t(f(X),f(X)).
 
t(X,Y)       :- e(X,Y).
t(f(X),f(Y)) :- q(f(X),f(Y)), t(X,Y).
 
%---Shuky Sagiv

popout

content may be truncated. 'popout' for larger text window.

actions get anonymous link download benchmark