Contents:
calculate_viability_and_necessity()
evaluate_necessity()
evaluate_viability()
evaluate_viability_and_necessity()
propagate_necessity_from_node()
propagate_viability_from_node()
propagate_viability_from_unviable_node()
prune_unviable_and_unnecessary_nodes()