Proof Theory and Logic Programming