Here is a table of all requirements in PDDL2.1. Some requirements imply others; some are abbreviations for common sets of requirements. If a domain stipulates no requirements, it is assumed to declare a requirement for :strips.
| Requirement | Description |
|---|---|
| :strips | Basic STRIPS-style adds and deletes |
| :typing | Allow type names in declarations of variables |
| :negative-preconditions | Allow not in goal descriptions |
| :disjunctive-preconditions | Allow or in goal descriptions |
| :equality | Support = as built-in predicate |
| :existential-preconditions | Allow exists in goal descriptions |
| :universal-preconditions | Allow forall in goal descriptions |
| :quantified-preconditions | = :existential-preconditions |
| + :universal-preconditions | |
| :conditional-effects | Allow when in action effects |
| :fluents | Allow function definitions and use of effects using |
| assignment operators and arithmetic preconditions. | |
| :adl | = :strips + :typing |
| + :negative-preconditions | |
| + :disjunctive-preconditions | |
| + :equality | |
| + :quantified-preconditions | |
| + :conditional-effects | |
| :durative-actions | Allows durative actions. |
| Note that this does not imply :fluents. | |
| :duration-inequalities | Allows duration constraints in durative |
| actions using inequalities. | |
| :continuous-effects | Allows durative actions to affect fluents |
| continuously over the duration of the actions. |