Beta reduction via meta-level substitution.
Beta reduction via meta-level substitution.
Evaluate the given expression by rewriting it with the s strategy.
Evaluate the given expression by rewriting it with the s strategy.
Generate a fresh variable name.
Generate a fresh variable name. Prefix the name with an underscore to avoid the potential for clashes with user-level variables (which must start with a letter).
Counter used to generate fresh names.
Counter used to generate fresh names.
Whether this mechanism evaluates inside lambdas.
Whether this mechanism evaluates inside lambdas. Used for testing. Default: false.
Evaluate by repeatedly trying to apply beta reduction and arithmetic operators anywhere.
Evaluate by repeatedly trying to apply beta reduction and arithmetic operators anywhere.
Capture-free substitution of free occurrences of x in e1 with e2.
Capture-free substitution of free occurrences of x in e1 with e2.