22 Variables libres y variables ligadas

Definition 22.1.

Sea xx un simbolo de variable que aparece en una formula φ\varphi.

  • Decimos que una aparicion de xx en φ\varphi es ligada si esta afectada por un cuantificador. En particular la aparicion de una variable justo despues de un cuantificador se considera ligada.

  • Decimos que una aparicion de xx en φ\varphi es libre si no es ligada.

  • Decimos que una variable xx es libre en la formula φ\varphi si tiene alguna aparicion libre.

  • Decimos que una variable xx es ligada en la formula φ\varphi si no es libre, es decir, si todas sus apariciones son ligadas.

Definition 22.2.

Sea φ\varphi una formula. Decimos que es:

  • Abierta si hay alguna variable que aparece libre en φ\varphi.

  • Cerrada si no es abierta, es decir, si todas las variables que aparezcan en φ\varphi son ligadas.

Example 22.3.
  • x(P(x)Q(x))R(x)\forall x(P(x)\rightarrow Q(x))\wedge R(x)

    Las 3 primeras apariciones de xx son ligadas. La cuarta es libre. La formula es abierta.

  • x(P(x)Q(x)R(x))\forall x(P(x)\rightarrow Q(x)\wedge R(x))

    Las 4 apariciones de xx son ligadas. La formula es cerrada.

  • x(P(x)Q(y))y(P(y)Q(x))\exists x(P(x)\wedge Q(y))\vee\forall y(P(y)\rightarrow Q(x))

    Las 2 primeras apariciones de xx son ligadas. La tercera es libre. La primera aparicion de yy es libre. Las 2 ultimas son ligadas. La formula es abierta.

  • xy((P(x)Q(y))(P(y)Q(x)))\exists x\forall y((P(x)\wedge Q(y))\vee(P(y)\rightarrow Q(x)))

    Todas las apariciones de xx e yy son ligadas. La formula es cerrada.

Remark 22.4.

Estamos interesados, sobre todo, en formulas cerradas. Siempre usaremos formulas cerradas para formalizar enunciados. Las formulas abiertas aparecen porque son necesarias como pasos intermedios para poder dar la definicion recursiva de formula.

Example 22.5.

Definir por recursion una funcion que, dada una formula cualquiera de la logica de predicados, devuelva el conjunto formado por todas las variables libres de la formula.

Empezamos definiendo una funcion que devuelva las variables de un termino.

var:𝒯︀\displaystyle var\colon\mathcal{{T}}
𝒫︀(V)\displaystyle{}\longrightarrow\mathcal{{P}}(V)
t\displaystyle t
conjunto de variables de t\displaystyle{}\longmapsto\text{conjunto de variables de t}

donde V={xx es un simbolo de variable}V=\left\{x\mid x\text{ es un simbolo de variable}\right\}.

  1. 1.

    Terminos atomicos:

    Si cc es simbolo de constante: var(c)=var(c)=\varnothing.

    Si xx es simbolo de variable: var(x)={x}var(x)=\left\{x\right\}.

  2. 2.

    Terminos compuestos:

    Si ff es un simbolo de funcion de aridad n1n\geq 1 y t1,t2,,tnt_{1},t_{2},\ldots,t_{n} son terminos, var(f(t1,t2,,tn))=i=1nvar(ti)var(f(t_{1},t_{2},\ldots,t_{n}))=\bigcup_{i=1}^{n}var(t_{i}).

Ahora definimos

lib:ℱ︀1\displaystyle lib\colon\mathcal{{F}}_{1}
𝒫︀(V)\displaystyle{}\longrightarrow\mathcal{{P}}(V)
φ\displaystyle\varphi
cjto de variables libres de φ\displaystyle{}\longmapsto\text{cjto de variables libres de }\varphi
  1. [resume]

  2. 1.

    Formulas atomicas:

    lib()=lib()=lib(p)=lib(\top)=lib(\perp)=lib(p)=\varnothing donde pp es simbolo de proposicion atomica.

    Si PP es un simbolo de predicado de aridad n1n\geq 1 y t1,t2,,tnt_{1},t_{2},\ldots,t_{n} son terminos: lib(P(t1,t2,,tn))=i=1nvar(ti)lib(P(t_{1},t_{2},\ldots,t_{n}))=\bigcup_{i=1}^{n}var(t_{i})

    lib((t1=t2))=lib(t1)lib(t2)lib((t_{1}=t_{2}))=lib(t_{1})\cup lib(t_{2})

  3. 2.

    Negacion:

    Si φℱ︀1lib(¬φ)=lib(φ)\varphi\in\mathcal{{F}}_{1}\Rightarrow lib(\neg\varphi)=lib(\varphi)

  4. 3.

    Conectiva binaria:

    Dados φ,ψℱ︀1lib((φψ))=lib(φ)lib(ψ)\varphi,\psi\in\mathcal{{F}}_{1}\Rightarrow lib((\varphi\circ\psi))=lib(% \varphi)\cup lib(\psi)

  5. 4.

    Cuantificadores:

    Sea φ\varphi una formula y xx un simbolo de variable:

    lib(xφ)=lib(φ){x}lib(\forall x\varphi)=lib(\varphi)\setminus\left\{x\right\}

    lib(xφ)=lib(φ){x}lib(\exists x\varphi)=lib(\varphi)\setminus\left\{x\right\}

Example 22.6.

Definir por recursion una funcion que, dada una formula cualquiera de la logica de predicados, devuelva el conjunto formado por todas las variables ligadas de la formula.

lig:ℱ︀1\displaystyle lig\colon\mathcal{{F}}_{1}
𝒫︀(V)\displaystyle{}\longrightarrow\mathcal{{P}}(V)
φ\displaystyle\varphi
conjunto de las variables ligadas de φ\displaystyle{}\longmapsto\text{conjunto de las variables ligadas de }\varphi
  1. 1.

    Formulas atomicas:

    Si φ\varphi es atomica lib(φ)=\Rightarrow lib(\varphi)=\varnothing

  2. 2.

    Negacion:

    φℱ︀1lig(¬φ)=lig(φ)\varphi\in\mathcal{{F}}_{1}\Rightarrow lig(\neg\varphi)=lig(\varphi)

  3. 3.

    Conectiva binaria:

    φ,ψℱ︀1lig((φψ))=(lig(φ)lig(ψ))(lib(φ)lib(ψ))\varphi,\psi\in\mathcal{{F}}_{1}\Rightarrow lig((\varphi\circ\psi))=(lig(% \varphi)\cup lig(\psi))\setminus(lib(\varphi)\cup lib(\psi))

  4. 4.

    Cuantificadores:

    φℱ︀1,x\varphi\in\mathcal{{F}}_{1},x variable.

    lig(xφ)=lig(xφ)=lig(φ){x}lig(\forall x\varphi)=lig(\exists x\varphi)=lig(\varphi)\cup\left\{x\right\}