You now have tools to prove greedy correctness:
Exchange argument: transform any OPT into greedy without losing quality.
Stays ahead: show greedy is never behind at any step.
Counterexamples: find small inputs where greedy fails. In the next section, I will apply these techniques to the classic greedy problem: activity selection. You will see a complete problem walkthrough with formal proof. These tools separate correct greedy from broken greedy.