back



;; monkeys and bananas


(literalize monkey
	    at
	    on
	    holds
)

(literalize object
	    name
	    at
	    weight
	    on
)

(literalize goal
	status
	type
	object
	to
)

(p mb1
   (goal ^status active ^type holds ^object )
   (object ^name  ^at 

^on ceiling) --> (make goal ^status active ^type move ^object ladder ^to

) ) (p mb2 (goal ^status active ^type holds ^object ) (object ^name ^at

^on ceiling) (object ^name ladder ^at

) --> (make goal ^status active ^type on ^object ladder) ) (p mb3 (goal ^status active ^type holds ^object ) (object ^name ^at

^on ceiling) (object ^name ladder ^at

) (monkey ^on ladder) --> (make goal ^status active ^type holds ^object nil) ) (p mb4 (goal ^status active ^type holds ^object ) (object ^name ^at

^on ceiling) (object ^name ladder ^at

) (monkey ^on ladder ^holds nil) --> (write (crlf) grab ) (modify 4 ^holds ) (modify 1 ^status satisfied) ) (p mb5 (goal ^status active ^type holds ^object ) (object ^name ^at

^on floor) --> (make goal ^status active ^type walk-to ^object

) ) (p mb6 (goal ^status active ^type holds ^object ) (object ^name ^at

^on floor) (monkey ^at

) --> (make goal ^status active ^type holds ^object nil) ) (p mb7 (goal ^status active ^type holds ^object ) (object ^name ^at

^on floor) (monkey ^at

^holds nil) --> (write (crlf) grab ) (modify 3 ^holds ) (modify 1 ^status satisfied) ) (p mb8 (goal ^status active ^type move ^object ^to

) (object ^name ^weight light ^at <>

) --> (make goal ^status active ^type holds ^object ) ) (p mb9 (goal ^status active ^type move ^object ^to

) (object ^name ^weight light ^at <>

) (monkey ^holds ) --> (make goal ^status active ^type walk-to ^object

) ) (p mb10 (goal ^status active ^type move ^object ^to

) (object ^name ^weight light ^at

) --> (modify 1 ^status satisfied) ) (p mb11 (goal ^status active ^type walk-to ^object

) --> (make goal ^status active ^type on ^object floor) ) (p mb12 (goal ^status active ^type walk-to ^object

) (monkey ^on floor ^at { <>

} ^holds nil) --> (write (crlf) walk to

) (modify 2 ^at

) (modify 1 ^status satisfied) ) (p mb13 (goal ^status active ^type walk-to ^object

) (monkey ^on floor ^at { <>

} ^holds { <> nil}) (object ^name ) --> (write (crlf) walk to

) (modify 2 ^at

) (modify 3 ^at

) (modify 1 ^status satisfied) ) (p mb14 (goal ^status active ^type on ^object floor) (monkey ^on { <> floor}) --> (write (crlf) jump onto the floor) (modify 2 ^on floor) (modify 1 ^status satisfied) ) (p mb15 (goal ^status active ^type on ^object ) (object ^name ^at

) --> (make goal ^status active ^type walk-to ^object

) ) (p mb16 (goal ^status active ^type on ^object ) (object ^name ^at

) (monkey ^at

) --> (make goal ^status active ^type holds ^object nil) ) (p mb17 (goal ^status active ^type on ^object ) (object ^name ^at

) (monkey ^at

^holds nil) --> (write (crlf) climb onto ) (modify 3 ^on ) (modify 1 ^status satisfied) ) (p mb18 (goal ^status active ^type holds ^object nil) (monkey ^holds { <> nil}) --> (write (crlf) drop ) (modify 2 ^holds nil) (modify 1 ^status satisfied) ) (p mb19 (goal ^status active) --> (modify 1 ^status not-processed) ) (p start (start) --> (make monkey ^at 5-7 ^on couch) (make object ^name couch ^at 5-7 ^weight heavy) (make object ^name bananas ^on ceiling ^at 2-2) (make object ^name ladder ^on floor ^at 9-5 ^weight light) (make goal ^status active ^type holds ^object bananas) )