La noción de variable libre es fundamental para entender el significado de las expresiones en el cálculo lambda. Una variable es libre en una expresión si no está ligada por una abstracción.
F V ( x ) : = { x } F V ( M N ) : = F V ( M ) ∪ F V ( N ) F V ( λ x . M ) : = F V ( M ) ∖ { x } \begin{aligned}
\FV(x) &:= \{ x \}\\
\FV(\app{M}{N}) &:= \FV(M) \cup \FV(N)\\
\FV(\lam{x}{M}) &:= \FV(M) \setminus \{ x \}
\end{aligned} FV ( x ) FV ( M N ) FV ( λ x . M ) := { x } := FV ( M ) ∪ FV ( N ) := FV ( M ) ∖ { x }
Veamos algunos ejemplos:
F V ( λ x . y ) = … \FV(\lam{x}{y}) = \ldots FV ( λ x . y ) = …
$\{x\}$
$x$ es el identificador ligado al $\lambda$.
$\{y\}$
$\{x, y\}$
$x$ es el identificador ligado al $\lambda$.
$\FV(\app{\lam{y}{y}}{x}) = \ldots$
$\{x\}$
$x$ es el identificador ligado al $\lambda$.
$\{y\}$
$y$ es el identificador ligado al $\lambda$.
$\{x, y\}$
$x$ es el identificador ligado al $\lambda$.
$\FV(\app{(\lam{y}{y})}{(\lam{x}{x})}) = \ldots$
$\emptyset$
$\{x, y\}$
Ambos identificadores están ligados por sus respectivos $\lambda$.
$\FV(\app{(\lam{y}{x})}{(\lam{x}{x})}) = \ldots$
$\emptyset$
Hay una abstracción con un identificador libre.
$\{x\}$
Ambos identificadores están ligados por sus respectivos $\lambda$.
$\{x, y\}$
La $x$ de la $\lam{y}{x}$ es libre.