Verified Optimizations for Functional Languages