(define (domain mcd-blocksworld-axiom) (:requirements :adl :domain-axioms :quantified-preconditions) (:constants Table) (:predicates (on ?x ?y) (clear ?x) (block ?b) (above ?x ?y)) (:axiom :vars (?b ?x) :context (or (= ?x Table) (not (exists (?b) (on ?b ?x)))) :implies (clear ?x)) (:action puton :parameters (?x ?y ?d) :precondition (and (not (= ?x ?y)) (not (= ?x table)) (not (= ?d ?y)) (on ?x ?d) (clear ?x) (clear ?y)) :effect (and (on ?x ?y) (not (on ?x ?d)) (forall (?c) (when (or (= ?y ?c) (above ?y ?c)) (above ?x ?c))) (forall (?e) (when (and (above ?x ?e) (not (= ?y ?e)) (not (above ?y ?e))) (not (above ?x ?e)))))))