Otteri süntaksis planeerimisülesanne
Allikas: Lambda
set(prolog_style_variables).
set(tptp_eq).
%set(binary_unit_res).
set(auto).
list(sos).
holds(and(X,Y),State)
| -holds(X,State)
| -holds(Y,State).
holds(holding(X),do(pickup(X),State))
| -holds(empty,State)
| -holds(clear(X),State)
| -differ(X,table) .
holds(clear(Y),do(pickup(X),State))
| -holds(on(X,Y),State)
| -holds(clear(X),State)
| -holds(empty,State) .
holds(on(X,Y),do(pickup(Z),State))
| -holds(on(X,Y),State)
| -differ(X,Z) .
holds(clear(X),do(pickup(Z),State))
| -holds(clear(X),State)
| -differ(X,Z) .
holds(empty,do(putdown(X,Y),State))
| -holds(holding(X),State)
| -holds(clear(Y),State) .
holds(on(X,Y),do(putdown(X,Y),State))
| -holds(holding(X),State)
| -holds(clear(Y),State) .
holds(clear(X),do(putdown(X,Y),State))
| -holds(holding(X),State)
| -holds(clear(Y),State) .
holds(on(X,Y),do(putdown(Z,W),State))
| -holds(on(X,Y),State) .
holds(clear(Z),do(putdown(X,Y),State))
| -holds(clear(Z),State)
| -differ(Z,Y) .
differ(X,Y)
| -differ(Y,X) .
differ(a,b) .
differ(a,c) .
differ(a,d) .
differ(a,table).
differ(b,c) .
differ(b,d) .
differ(b,table) .
differ(c,d) .
differ(c,table) .
differ(d,table) .
holds(on(a,table),s0) .
holds(on(b,table),s0) .
holds(on(c,d),s0) .
holds(on(d,table),s0) .
holds(clear(a),s0) .
holds(clear(b),s0) .
holds(clear(c),s0) .
holds(empty,s0) .
holds(clear(table),State) .
% -holds(X,s0) | $ans(X).
end_of_list.
list(sos).
%-holds(and(on(a,d),on(d,b)),State).
-holds(on(a,d),State) | $ans(State).
end_of_list.