Changed the Application struct field from 'function' to 'abstraction' for semantic clarity and consistency with the lambda calculus terminology. Updated all references across the codebase including the getter method, constructor parameter, and usages in substitute, rename, reduce, get_free_variables, is_free_variable, and stringify functions. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>