BIG changes to the algorithm proof. Much much better now!