A method for verifying that a sequence of tasks is more likely to be
successful prior to executing the sequence of tasks. First, a projection
algorithm is performed to generate a precondition and postconditions list
for the entire sequence. In order to execute the sequence of tasks, it is
determined whether or not all of the preconditions in the preconditions
list are satisfied. If they are not, then the sequence of task fails
without performing any of the sequence of tasks. On the other hand, if
the sequence preconditions are all satisfied, the sequence of tasks is
executed one at a time. If any of the sequence of tasks fails, then the
tasks that have been executed may be compensated to return to the initial
state. Once execution completes assuming none of the task executions
failed, the postconditions for the sequence are checked.