(define (domain METRO) (:requirements :strips :typing) (:types person station train) (:predicates (at ?x - train ?y - station) (in ?x - person ?y - train) (on ?x - person ?y - station) (connected ?x - station ?y - station)) (:action goto :parameters (?origin - station ?destination - station ?x - train ?y - person) :precondition (and (connected ?origin ?destination) (at ?x ?origin) (in ?y ?x)) :effect (and (not (in ?x ?origin)) (at ?x ?destination) (in ?y ?x))) ;; Person in train. (:action exit :parameters (?x - train ?y - person ?destination - station) :precondition (and (in ?y ?x) (at ?x ?destination)) :effect (and (not (in ?y ?x)) (on ?y ?destination))) (:action getin :parameters (?x - train ?y - person) :precondition (and (not (in ?y ?x))) :effect (and (in ?y ?x))))