TRANSFORM A to B /\ /__\ / \ / \ / \ REDUCE (recursively) difference TRANSFORM A' to B between A & B (return A') | | | Select relevant operator Q & APPLY Q to A (return A') /\ /__\ / \ / \ / \ (recursively) (recursively) REDUCE APPLY Q to A'' difference (return A') between A & preconditions for Q (return A'')