In simple terms, alpha reduction means renaming variables to avoid confusion. The logic of the program does not change — only the variable name does.
Using the same variable name in different scopes can be confusing.
def outer(x):
def inner(x):
return x + 1
return inner(x)
Here, both outer and inner use a variable named x,
but they are different variables.
Renaming removes confusion without changing behavior. This is alpha reduction.
def outer(x):
def inner(y):
return y + 1
return inner(x)
Nothing changed logically — we only renamed x to y
inside inner.
λx. (λx. x + 1) x
Rename the inner variable:
λx. (λy. y + 1) x
Same meaning. Clearer structure. No accidental variable capture.
Alpha reduction exists because variable names don’t matter — but which variable belongs where does.