Monkey incomplete




fluents: at(O,L) requires object(O), #int(L).
onBox.

hasBanana.

objectIsSomewhere(O) requires object(O).
actions: walk(L) requires #int(L).
pushBox(L) requires #int(L).

climbBox.

graspBanana.
always: caused at(monkey,L) after walk(L).
caused -at(monkey,L) after walk(L1), at(monkey,L), L<>L1.

executable walk(L) if not onBox.

caused at(monkey,L) after pushBox(L).

caused at(box,L) after pushBox(L).

caused -at(monkey,L) after pushBox(L1), at(monkey,L), L<>L1.

caused -at(box,L) after pushBox(L1), at(box,L), L<>L1.

executable pushBox(L) if at(monkey,L1), at(box,L1), not onBox.

caused onBox after climbBox.

executable climbBox if not onBox, at(monkey,L), at(box,L).

caused hasBanana after graspBanana.

executable graspBanana if onBox, at(monkey,L), at(banana,L).

inertial at(O,L).

inertial onBox.

inertial hasBanana.
initially: at(box,2).
at(banana,3).

caused false if at(O,L), at(O,L1), L<>L1.

caused false if onBox, at(monkey,L), not atBox(L).

caused objectIsSomewhere(O) if at(O,L).

caused false if not objectIsSomewhere(O).
noConcurrency.

goal: hasBanana ? (4)