btree2.pl

loading
details
attribute value
description
owner Johannes Waldmann
uploaded 2017-08-17 03:45:17.0
disk size 588 Bytes
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
% Adapted from LP/SGST06/btree.pl
% terminating

%query: goal(i).
goal(X) :- s2t(X,T), tree(T).

tree(nil).
tree(X) :- no(empty(X)), left(T,L), right(T,R), tree(L), tree(R).

s2t(0,nil).
s2t(X,node(T,_,T)) :- no(zero(X)), p(X,P), s2t(P,T).
s2t(X,node(nil,_,T)) :- no(zero(X)), p(X,P), s2t(P,T).
s2t(X,node(T,_,nil)) :- no(zero(X)), p(X,P), s2t(P,T).
s2t(X,node(nil,_,nil)) :- no(zero(X)).

left(nil,nil).
left(node(L,_,_),L).

right(nil,nil).
right(node(_,_,R),R).

p(0,0).
p(s(X),X).

empty(nil).

zero(0).

no(X) :- X, !, failure(a).
no(_).

failure(b).
popout

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

actions get anonymous link download benchmark