Execute a function on argument values.
(exec-fun fun args compst fenv limit) → (mv result new-compst)
We retrieve the information about the function from the environment. We initialize a scope with the argument values, and we push a frame onto the call stack. We execute the function body, which must return a result that matches the function's result type. We pop the frame and return the value of the function call as result.