Generate a fresh variable name.
Beta reduction via term-level substitution.
Beta reduction via term-level substitution.
Evaluate the given expression by rewriting it with the evals strategy.
Evaluate the given expression by rewriting it with the evals strategy.
Version of innermost library strategy that memoises.
Reusable strategy for reduction with explicit term-level substitution.
Reusable strategy for reduction with explicit term-level substitution.
Whether this mechanism evaluates inside lambdas.
Whether this mechanism evaluates inside lambdas. Used for testing. Default: false.
Evaluate expressions starting with the innermost sub-expressions.
Evaluate expressions starting with the innermost sub-expressions.
Substitution in applications.
Substitution in applications.
Substitution in lambda abstractions.
Substitution in lambda abstractions.
Substitution in numeric terms.
Substitution in numeric terms.
Substitution in primitive operations
Substitution in primitive operations
Substitution in variable terms.
Substitution in variable terms.
Capture-free substitution of free occurrences of x in e1 with e2.
Capture-free substitution of free occurrences of x in e1 with e2.
Evaluation of lambda calculus using a memoising innermost evaluation with term-level substitution and arithmetic operations.