(define (domain gripper) (:requirements :strips) (:predicates (on ?x ?y) (on-table ?x) (clear ?x) (holding ?x) (grip-empty)) (:action pick-up :parameters (?x) :precondition (and (clear ?x) (on-table ?x) (grip-empty)) :effect (and (not (on-table ?x)) (not (clear ?x)) (not (grip-empty)) (holding ?x))) (:action unstack :parameters (?top ?below) :precondition (and (on ?top ?below) (clear ?top) (grip-empty)) :effect (and (holding ?top) (clear ?below) (not (clear ?top)) (not (grip-empty)) (not (on ?top ?below)))) (:action put-down :parameters (?x) :precondition (holding ?x) :effect (and (on-table ?x) (clear ?x) (grip-empty) (not (holding ?x)))) (:action stack :parameters (?top ?below) :precondition (and (holding ?top) (clear ?below)) :effect (and (not (holding ?top)) (not (clear ?below)) (clear ?top) (grip-empty) (on ?top ?below))) )