You have learned how to prove greedy correctness:
Exchange argument: : Show any optimal solution can be transformed into greedy without losing quality.
Stays ahead: : Show greedy is never behind at any step using induction.
Finding counterexamples: : Test small inputs by hand to catch failures. These techniques are fundamental. Use them every time you write a greedy solution. A quick proof saves debugging time. Good job on finishing this section. Next, I will show you activity selection in full detail.