Proof finished!

Requires clean up.