wrote investigate_tree and possible_upgrades.
The latter predicts all possible ways to upgrade a differential,
and the former seems to demonstrate that I have the right idea.