Rocket




fluents: atR(R,P) requires rocket(R), place(P).
atC(C,P) requires cargo(C), place(P).

in(C,R) requires rocket(R), cargo(C).

hasFuel(R) requires rocket(R).
actions: move(R,P) requires rocket(R), place(P).
load(C,R) requires rocket(R), cargo(C). unload(C,R) requires rocket(R), cargo(C).
always: caused atR(R,P) after move(R,P).
caused -atR(R,P) after move(R,P1), atR(R,P).

caused -hasFuel(R) after move(R,P).

executable move(R,P) if hasFuel(R), not atR(R,P).

caused in(C,R) after load(C,R).

caused -atC(C,P) after load(C,R), atC(C,P).

executable load(C,R) if atC(C,P), atR(R,P).

caused atC(C,P) after unload(C,R), atR(R,P).

caused -in(C,R) after unload(C,R).

executable unload(C,R) if in(C,R).

nonexecutable move(R,P) if load(C,R).

nonexecutable move(R,P) if unload(C,R).

nonexecutable move(R,P) if move(R,P1), P<>P1.

nonexecutable load(C,R) if load(C,R1), R<>R1.

inertial atC(C,L).

inertial atR(R,L).

inertial in(C,R).

inertial hasFuel(R).
initially: atR(R,earth).
atC(C,earth). hasFuel(R).
securePlan.

goal: atC(car,moon), atC(food,mir), atC(tools,mir)?(3)