disc d1 d2 d3 ?a ?b ?c peg p1 p2 p3 ?x ?y ##### OPERATOR movefromdisctodisc ?a ?x ?b ?y ?c IF at ?a ?x at ?b ?y clear ?a nil clear ?b nil on ?a ?c larger ?b ?a ADD on ?a ?b at ?a ?y clear ?c nil DELETE on ?a ?c at ?a ?x clear ?b nil ##### OPERATOR movefrombottomtodisc ?a ?x ?b ?y IF at ?a ?x at ?b ?y on ?a bottom clear ?a nil clear ?b nil larger ?b ?a ADD on ?a ?b at ?a ?y empty ?x nil DELETE at ?a ?x on ?a bottom clear ?b nil ##### OPERATOR movefromdisctobottom ?a ?x ?y ?c IF at ?a ?x on ?a ?c clear ?a nil empty ?y nil ADD at ?a ?y on ?a bottom clear ?c nil DELETE at ?a ?x on ?a ?c empty ?y nil ##### OPERATOR movefrombottomtobottom ?a ?x ?y IF at ?a ?x on ?a bottom clear ?a nil empty ?y nil ADD at ?a ?y empty ?x nil DELETE at ?a ?x empty ?y nil ##### INITIAL at d3 p1 at d2 p1 at d1 p1 on d3 bottom on d2 d3 on d1 d2 clear d1 nil larger d3 d1 larger d3 d2 larger d2 d1 empty p2 nil empty p3 nil ##### GOAL at d3 p3 at d2 p3 at d1 p3 on d3 bottom on d2 d3 on d1 d2