β-reduction (capture avoiding): simplify
← Previous revision | Revision as of 10:07, 16 July 2025 | ||
Line 387: | Line 387: | ||
If no variable names are [[#Free and Bound Variable Sets|free]] in the actual parameter and [[#Free and Bound Variable Sets|bound]] in the body, β-reduction may be performed on the lambda abstraction without canonical renaming. |
If no variable names are [[#Free and Bound Variable Sets|free]] in the actual parameter and [[#Free and Bound Variable Sets|bound]] in the body, β-reduction may be performed on the lambda abstraction without canonical renaming. |
||
: <math>(\forall z: z \not \in FV(y) \lor z \not \in BV(b)) \to \operatorname{beta-redex}[(\lambda x.b) \ y] = b[x:=y] </math> |
: <math>FV(y) \cap BV(b) = \{\} \to \operatorname{beta-redex}[(\lambda x.b) \ y] = b[x:=y] </math> |
||
Alpha renaming may be used on <math>b</math> to rename names that are free in <math>y</math> but bound in <math>b</math>, to meet the pre-condition for this transformation. |
Alpha renaming may be used on <math>b</math> to rename names that are free in <math>y</math> but bound in <math>b</math>, to meet the pre-condition for this transformation. |