Keep going deeper until we find a successful reduction.
When found, go up a depth level.
Keep going up while we find new reductions. Repeat topmost depth level as necessary.
Once no new reductions are found at higher depths, jump to the next unvisited depth in this iteration.
If we reach the bottom (depth with no nodes on it), start a new iteration.
If we finish an iteration without finding any reductions, we're done.
Keep going deeper until we find a successful reduction. When found, go up a depth level. Keep going up while we find new reductions. Repeat topmost depth level as necessary. Once no new reductions are found at higher depths, jump to the next unvisited depth in this iteration. If we reach the bottom (depth with no nodes on it), start a new iteration. If we finish an iteration without finding any reductions, we're done.