Вы проверяли языковую функцию "подразумевать", как определено в PDDL 2.1? (Может быть, это уже было определено до 2.1 - не уверен.) С его помощью вы можете определить:
(forall (?pPrime - plant)
(imply (at ?s ?pPrime) (analyzed-plant ?pPrime ?s))
)
Примечание: я не уверен, что порядок параметров в (at ?s ?pPrime)
правильный. Предполагается кодировать, что завод ?pPrime
находится в секторе ?s
.
Условие распространяется на большой набор значений, считая, что для всех растений p'
(независимо от того, где они находятся) выполняется: "if plant p' is in s, then it's analyzed in s
". Это должно кодировать именно то, что вы ищете.