A Meta-Logic for Functional Programming