diff --git a/doc/output-format.md b/doc/output-format.md index 9928c59..b147079 100644 --- a/doc/output-format.md +++ b/doc/output-format.md @@ -87,3 +87,30 @@ With PDDL, Boolean variables are created from the PDDL predicates. Variables ared named after the PDDL predicates, `variable().` Each variable contains exactly two values (one true, one false) of the form `value(, )`. Note that with PDDL, variables and values are named identically. + +### Actions + +```prolog +% declares an +action(action()). + +% defines that as a precondition to , must have value +precondition(, , ). + +% defines that after executing , is assigned +postcondition(, effect(), , ). + +% defines the condition of a conditional effect +precondition(effect(), , ). +``` + +Actions may require certain variables to have specific values in order to be executed. +After applying an action, variables get new values according to the action's postconditions. + +Actions may have *conditional effects*, that is, certain postconditions are only applied if additional conditions are satisfied. +For this reason, each conditional effect is uniquely identified with a predicate `effect()` as the second argument of the `postcondition` facts. +The conditions of conditional effects are given by additional `precondition` facts that take the respective `effect()` predicates as the first argument. + +Unconditional effects are identified with `effect(unconditional)`. + +Conditional effects are currently only supported with SAS input problems.