Proofs and Algorithms