pull out proof of do_app_i4_v_i4
more push on exp_to_i4_correct

looks like might need to worry about free variables in the hypotheses of
the theorem, but hopefully there's a way to avoid it
remove some unused pattern vars
make exp_to_i4 create (Lit ()) for failures

rather than anything with free variables in it, in an attempt to make it
more likely for things to be true when it's called with a bogus list of
variables