57 lines
1.8 KiB
Plaintext
57 lines
1.8 KiB
Plaintext
actions:
|
|
crossTogether(X,Y) requires animal(X), animal(Y), X < Y.
|
|
cross(X) requires animal(X).
|
|
|
|
fluents:
|
|
here(X) requires animal(X).
|
|
boat_here.
|
|
|
|
initially:
|
|
here(X).
|
|
boat_here.
|
|
|
|
always:
|
|
nonexecutable crossTogether(X,Y) if -here(X), here(Y).
|
|
nonexecutable crossTogether(X,Y) if here(X), -here(Y).
|
|
|
|
executable crossTogether(X,Y) if -here(X), -here(Y), -boat_here.
|
|
executable crossTogether(X,Y) if here(X), here(Y), boat_here.
|
|
|
|
executable cross(X) if here(X), boat_here.
|
|
executable cross(X) if -here(X), -boat_here.
|
|
|
|
caused -boat_here after crossTogether(_,_), boat_here.
|
|
caused boat_here after crossTogether(_,_), -boat_here.
|
|
|
|
caused -boat_here after cross(_), boat_here.
|
|
caused boat_here after cross(_), -boat_here.
|
|
|
|
caused here(X) after crossTogether(X,Y), -here(X).
|
|
caused here(Y) after crossTogether(X,Y), -here(Y).
|
|
caused -here(X) after crossTogether(X,Y), here(X).
|
|
caused -here(Y) after crossTogether(X,Y), here(Y).
|
|
|
|
caused here(X) after cross(X), -here(X).
|
|
caused -here(X) after cross(X), here(X).
|
|
|
|
forbidden here(wolf1), here(fox), -boat_here.
|
|
forbidden here(wolf2), here(fox), -boat_here.
|
|
forbidden here(wolf1), here(chicken), -boat_here.
|
|
forbidden here(wolf2), here(chicken), -boat_here.
|
|
forbidden here(fox), here(chicken), -boat_here.
|
|
forbidden here(chicken), here(worm), -boat_here.
|
|
|
|
forbidden -here(wolf1), -here(fox), boat_here.
|
|
forbidden -here(wolf2), -here(fox), boat_here.
|
|
forbidden -here(wolf1), -here(chicken), boat_here.
|
|
forbidden -here(wolf2), -here(chicken), boat_here.
|
|
forbidden -here(fox), -here(chicken), boat_here.
|
|
forbidden -here(chicken), -here(worm), boat_here.
|
|
|
|
inertial here(X).
|
|
inertial -here(X).
|
|
|
|
noConcurrency.
|
|
|
|
goal: -here(wolf1), -here(wolf2), -here(fox), -here(chicken), -here(worm)?
|