22 Variables libres y variables ligadas

Definición 22.1.

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

  •  

    Decimos que una aparicion de x\displaystyle x en φ\displaystyle\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 x\displaystyle x en φ\displaystyle\varphi es libre si no es ligada.

  •  

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

  •  

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

Definición 22.2.

Sea φ\displaystyle\varphi una formula. Decimos que es:

  •  

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

  •  

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

Ejemplo.
  •  

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

    Las 3 primeras apariciones de x\displaystyle x son ligadas. La cuarta es libre. La formula es abierta.

  •  

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

    Las 4 apariciones de x\displaystyle x son ligadas. La formula es cerrada.

  •  

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

    Las 2 primeras apariciones de x\displaystyle x son ligadas. La tercera es libre. La primera aparicion de y\displaystyle y es libre. Las 2 ultimas son ligadas. La formula es abierta.

  •  

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

    Todas las apariciones de x\displaystyle x e y\displaystyle y son ligadas. La formula es cerrada.

Observación.

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.

Ejemplo.

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}\displaystyle V=\{x\mid x\text{ es un simbolo de variable}\}.

  1. 1.

    Terminos atomicos:

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

    Si x\displaystyle x es simbolo de variable: var(x)={x}\displaystyle var(x)=\{x\}.

  2. 2.

    Terminos compuestos:

    Si f\displaystyle f es un simbolo de funcion de aridad n1\displaystyle n\geq 1 y t1,t2,,tn\displaystyle t_{1},t_{2},\ldots,t_{n} son terminos, var(f(t1,t2,,tn))=i=1nvar(ti)\displaystyle 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. 3.

    Formulas atomicas:

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

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

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

  2. 4.

    Negacion:

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

  3. 5.

    Conectiva binaria:

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

  4. 6.

    Cuantificadores:

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

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

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

Ejemplo.

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 φ\displaystyle\varphi es atomica lib(φ)=\displaystyle\Rightarrow lib(\varphi)=\varnothing

  2. 2.

    Negacion:

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

  3. 3.

    Conectiva binaria:

    φ,ψ1lig((φψ))=(lig(φ)lig(ψ))(lib(φ)lib(ψ))\displaystyle\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\displaystyle\varphi\in\mathcal{{F}}_{1},x variable.

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