- For each (pre)condition p of action A, we use [stpA
, etpA
] to represent the duration in which p should hold (stpA = etpA
if p is an instant precondition).

- For each effect e of action A, we use eteA
to represent the time point at which e occurs.

- For each resource r that is checked in preconditions or used by some action A, we use
[strA
, etrA
] to represent the duration over which r is accessed by A.

- The initial and goal states are represented by two new actions AI and AG. AI starts before all other actions in the Ppc, it has no precondition and has effects representing the initial state. AG starts after all other actions in Ppc, has no effect, and has top-level goals as its preconditions.

- The symbol ′′ ≺′′ is used throughout this section to denote the relative precedence orderings between two time points.
Note that the values of stpA
, etpA
, eteA
, strA
, etrA
are fixed in the p.c plan but are only partially ordered in the o.c plan. The o.c plan Poc is built from a p.c plan Ppc as follows:
Supporting Actions: For each precondition p of action A, we choose the earliest possible action A′in the p.c plan that can support p:
1. p ∈ *Effect*(A′) and etpA′ **< st**pA
in the p.c. plan Ppc.

2. There is no action B such that: ¬p ∈ *Effect*(B) and etpA′ **< et**¬p B **< st**pA
in Ppc.

3. There is no other action C that also satisfies the two conditions above and etpC **< et**pA′.
When A′is selected to support p for A, we add the causal link A′p−→ A between two time points etpA′ and stpA
to the o.c plan. Thus, the ordering etpA′ ≺ stpA
is added to Poc.

Interference relations: For each pair of actions **A, A**′that interfere with each other, we order them as follows:

1. If ∃p ∈ Delete(A′)TAdd(A), then add the ordering etpA ≺ et¬p A′ to Poc if etpA **< st**¬p A′ in Ppc. Otherwise add et¬p A′ ≺ etpA
to Poc.

2. If ∃p ∈ Delete(A′)T**P recond**(A), then add the ordering etpA ≺ et¬p A′ to Poc if etpA **< et**¬p A
in Ppc. Otherwise, if et¬p A′ **< st**pA
in the original plan Ppc then we add the ordering et¬p A′ ≺ stpA
to the final plan Poc.
Resource relations: For each resource r that is checked as a (pre)condition for action A and used by action A′, based on those action's fixed starting times in the original p.c plan Ppc, we add the following orderings to the resulting Poc plan as follows:
- If etrA **< st**rA′ in Ppc, then the ordering relation etrA ≺ strA′ is added to Poc.

- If etrA′ **< st**rA
in Ppc, then the ordering relation etrA′ ≺ strA
is added to Poc.
$\mathbf{M}$