Salta ai contenuti. | Salta alla navigazione

Strumenti personali

Codice Sicstus Prolog Esercizio 1

text/x-perl icon ESERCIZIO1.pl — text/x-perl, 686 bytes

Contenuto del file

holds(on(a,d),s0).
holds(on(b,e),s0).
holds(on(c,f),s0).
holds(clear(a),s0).
holds(clear(b),s0).
holds(clear(c),s0).
holds(clear(g),s0).


% Effetti dell'azione move(X,Y,Z) (Post)

holds(clear(Y),do1(move(X,Y,Z),S)).
holds(on(X,Z),do1(move(X,Y,Z),S)).


% Clausola che esprime le precondizioni dell'azione move(X,Y,Z) (Pre)

pact(move(X,Y,Z),S):-
          holds(clear(X),S),holds(clear(Z),S),holds(on(X,Y),S),X\=Z.

% Clausola per esprimere le condizioni di frame (FA)

holds(V,do1(move(X,Y,Z),S)):-holds(V,S),V\=clear(Z),V\=on(X,Y).

% Clausola per esprimere la raggiungibilit? di uno stato (Meta-assioma)

poss(s0).
poss(do1(A,S)):-poss(S),pact(A,S).