Skip to content
Documentation out of dateLearn more

Alpha-equivalence

Alpha-equivalence is a notion of equivalence on terms with binding structure. It captures the notion that the names of bound variables are unimportant; all that matters is the binding structure they induce.

Consider the untyped lambda-calculus.

e::=xλx.ee1 e2e ::= x \mid \lambda x.\, e \mid e_1\ e_2

Alpha-equivalence for terms e\texttt{}e is the least congruence relation e1=αe2\texttt{}e_1 =_\alpha e_2 closed under the α\texttt{}\alpha axiom:

(yxandy∉FV(e))λx.e=αλy.[y/x]eα{(y \not = x \,and\, y \not\in \mathit{FV}(e)) \over \lambda x.\, e =_\alpha \lambda y.\, [y/x]e}\alpha

Alpha-equivalence generalizes in a straightforward manner to any term language with binding structure.

STELF’s notion of term equality respects alpha-equivalence; when an object-language is represented using higher-order abstract syntax, the representation enjoys alpha-equivalence for free.