3. A's effects do not interfere with any persistent condition in Π and any event in Q.

4. There is no event in Q that interferes with persistent preconditions of A.
Interference: Interference is defined as the violation of any of the following conditions:

1. Action A should not add any event e that causes p if there is another event currently in Q that causes ¬p. Thus, there is never a state in which there are two events in the event queue that cause opposite effects.

2. If A deletes p and p is protected in Π until time point tp, then A should not delete p before tp.

3. If A has a persistent precondition p, and there is an event that gives ¬p, then that event should occur *after* A terminates.

4. A should not change the value of any function which is currently accessed by another unterminated action2. Moreover, A also should not access the value of any function that is currently changed by an unterminated action.
At first glance, the first interference condition seems to be overly strong. However, we argue that it is necessary to keep underlying processes that cause contradicting state changes from overlapping each other. For example, suppose that we have two actions A1 = build **house**,
A2 = destroy **house** and Dur(A1) = 10, Dur(A2) = 7. A1 has effect has **house** and A2 has effect ¬has **house** at their end time points. Assuming that A1 is applied at time t = 0 and added an event e = Add(has **house**) at t = 10. If we are allowed to apply A2 at time t = 0 and add a contradicting event e
′ = Delete(has **house**) at t = 7, then it is unreasonable to believe that we will still have a house at time t = 10 anymore. Thus, even though in our current action modeling, state changes that cause has **house** and ¬has **house** look as if they happen instantaneously at the actions' end time points, there are underlying processes (build/destroy house) that span the whole action durations to make them happen. To prevent those contradicting processes from overlapping with each other, we employ the conservative approach of not letting Q contain contradicting effects.3 When we apply an action A to a state S = (P, M, Π**, Q, t**), all instantaneous effects of A will be immediately used to update the predicate list P and metric resources database M of S. A's persistent preconditions and delayed effects will be put into the persistent condition set Π and event queue Q
of S.

Besides the normal actions, we will have a special action called **advance-time** which we use to advance the time stamp of S to the time instant te of the earliest event e in the event queue Q of S.

The advance-time action will be applicable in any state S that has a non-empty event queue. Upon