Ejercicios lógica de predicados

Considere los símbolos de función a(0)a^{(0)}, b(0)b^{(0)}, f(1)f^{(1)} y g(2)g^{(2)}; y los de predicado P(1)P^{(1)}, R(2)R^{(2)} y Q(3)Q^{(3)} ¿Son fórmulas de la lógica de predicados?

  • Q(a)Q(a)
  •        No
  • P(y)P(y)
  •        Sí
  • Q(x,P(a),b)Q(x,P(a),b)
  •        No
  • ¬R(x,a)\neg R(x,a)
  •        Sí

Considere los símbolos de función a(0)a^{(0)}, b(0)b^{(0)}, f(1)f^{(1)} y g(2)g^{(2)}; y los de predicado P(1)P^{(1)}, R(2)R^{(2)} y Q(3)Q^{(3)} ¿Son fórmulas de la lógica de predicados?

  • R(a,g(a,f(a)))R\big(a,g(a,f(a))\big)
  •        Sí
  • x ¬P(x)\forall x\ \neg P(x)
  •        Sí
  • a R(a,a)\exists a\ R(a,a)
  •        No
  • R(x,a)\forall R(x,a)
  •        No

Considere los símbolos de función a(0)a^{(0)}, b(0)b^{(0)}, f(1)f^{(1)} y g(2)g^{(2)}; y los de predicado P(1)P^{(1)}, R(2)R^{(2)} y Q(3)Q^{(3)} ¿Son fórmulas de la lógica de predicados?

  • x (Q(x,f(x),b)x R(a,x))\exists x\ \big(Q(x,f(x),b)\rightarrow\forall x\ R(a,x)\big)
  •        Sí
  • aP(b)a\rightarrow P(b)
  •        No
  • R(x,b)¬y g(y,b)R(x,b)\vee\neg\exists y\ g(y,b)
  •        No
  • xy(R(x,y)R(y,x))\forall x\exists y\big(R(x,y)\rightarrow R(y,x)\big)
  •        Sí

¿Cuál es la formalización más adecuada para la oración Todas la mujeres son rockeras, con la posible excepción de Adela, dado el diccionario  aa: Adela,  M(x)M(x): xx es mujer,   y D(x)D(x): xx es rockera?

a) x(M(x)D(x))¬D(a)\forall x(M(x) \rightarrow D(x))\wedge \neg D(a)

b) x(M(x)axD(x))\forall x(M(x) \wedge a\neq x \rightarrow D(x))

c) x(D(x)M(x)ax)¬D(a)\forall x(D(x)\rightarrow M(x) \wedge \,a\neq x)\wedge \neg D(a)

d) x((M(x)ax)D(x))\forall x((M(x) \wedge a\neq x) \equiv D(x))

e) x(D(x)M(x)ax)\forall x(D(x) \rightarrow M(x) \wedge a\neq x)

¿Cuál es la formalización más adecuada para la oración Todas la mujeres son rockeras, con la posible excepción de Adela, dado el diccionario  aa: Adela,  M(x)M(x): xx es mujer,   y D(x)D(x): xx es rockera?

a) x(M(x)D(x))¬D(a)\forall x(M(x) \rightarrow D(x))\wedge \neg D(a)⇦¡¡Se tiene D(a)D(a) y ¬D(a)\neg D(a)!!

b) x(M(x)axD(x))\forall x(M(x) \wedge a\neq x \rightarrow D(x))⇦ Respuesta

c) x(D(x)M(x)ax)¬D(a)\forall x(D(x)\rightarrow M(x) \wedge \,a\neq x)\wedge \neg D(a)

d) x((M(x)ax)D(x))\forall x((M(x) \wedge a\neq x) \equiv D(x))

e) x(D(x)M(x)ax)\forall x(D(x) \rightarrow M(x) \wedge a\neq x)

La formalización para Todas la mujeres son rockeras, con la certera excepción de Adela, es la siguiente

x(M(x)axD(x))¬D(a)\forall x(M(x) \wedge a\neq x \rightarrow D(x))\wedge\neg D(a)

Esquemas típicos en lógica de predicados

La fórmula x(φψ)\forall x (\varphi\rightarrow\psi) es típica en lógica de predicados porque expresa una propiedad para aquellos individuos que satisfacen cierta condición. Para aquellos que no la satisfacen, la implicación se sigue cumpliendo tengan o no la propiedad.

La fórmula x(φψ)\exists x (\varphi\land\psi) también es típica ya que hace referencia a un objeto particular que cumple con dos propiedades a la vez.

La fórmula x(φψ)\exists x (\varphi\rightarrow\psi) se satisface si hay un objeto que no cumple φ\varphi. Si todos cumplen φ\varphi, podríamos optar por la fórmula de arriba con el cuantificador universal. Así, x(φψ)\exists x (\varphi\rightarrow\psi) es raro que aparezca.

Variables libres y ligadas

Una presencia de xx en φ\varphi es libre si es un nodo hoja del árbol de análisis sintáctico de φ\varphi tal que no hay trayectoria ascendente de ese nodo xx a un nodo x\forall x o x\exists x. De otro modo, esa presencia de xx está ligada.

El alcance de x\forall x en xφ\forall x \varphi es φ\varphi —a excepción de cualquier subfórmula de φ\varphi que esté cuantificando a xx por su cuenta propia. Análogamente se define el alcance de x\exists x en xφ\exists x \varphi.

Árbol de análisis sintáctico de
x (¬yQ(x,y)R(x,y))\forall x\ \big(\neg\forall yQ(x,y)\land R(x,y)\big)

¿Cuáles variables son
ligadas y cuáles libres?

Árbol de análisis sintáctico de
x (Q(x,f(x),y)x R(z,x))\forall x\ \big(Q(x,f(x),y)\rightarrow\exists x\ R(z,x)\big)

¿Cuáles variables son
ligadas y cuáles libres?

Predicados para tipos

La oración Existe un entero que es más pequeño que cualquier natural se traduce como xy(x<y)\exists x\forall y\,(x<y); sin embargo, se prefiere

x(Int(x)y(Nat(y)x<y))\exists x\,\big(Int(x)\wedge \forall y\,(Nat(y)\rightarrow x<y)\big)

Introducimos abreviaturas para ahorrarnos algunos conectivos:

x:A.P(x) significa x(A(x)P(x)),x:A.P(x) significa x(A(x)P(x)).\begin{array}{c} \forall x:\mathsf{A}.P(x) \text{ significa } \forall x\,(A(x)\rightarrow P(x)), \\[0.65em] \exists x:\mathsf{A}.P(x) \text{ significa } \exists x\,(A(x)\wedge P(x)). \end{array}

La traducción anterior se expresa como x:Int y:Nat(x<y)\exists x:\mathsf{Int}\ \forall y:\mathsf{Nat}\, (x<y).

L(x,y):x es maˊs extenso que yE(x,y):x estaˊ escrito por yM(x):x es matemaˊticoF(x):x es filoˊsofoB(x):x es un libroq:“El Quijote de la Mancha”c:“La construccioˊn loˊgica del mundo”a:“Alicia en el paıˊs de las maravillas”\begin{array}{rl} L(x,y): & x \text{ es más extenso que }y\\ E(x,y): & x \text{ está escrito por }y\\ M(x): & x \text{ es matemático}\\ F(x): & x \text{ es filósofo}\\ B(x): & x \text{ es un libro}\\ q: & \text{``El Quijote de la Mancha''}\\ c: & \text{``La construcción lógica del mundo''}\\ a: & \text{``Alicia en el país de las maravillas''} \end{array}

Hay un libro más extenso que "El Quijote de la Mancha"

  • x:B.L(x,q)\exists x:\mathsf{B}.L(x,q)

L(x,y):x es maˊs extenso que yE(x,y):x estaˊ escrito por yM(x):x es matemaˊticoF(x):x es filoˊsofoB(x):x es un libroq:“El Quijote de la Mancha”c:“La construccioˊn loˊgica del mundo”a:“Alicia en el paıˊs de las maravillas”\begin{array}{rl} L(x,y): & x \text{ es más extenso que }y\\ E(x,y): & x \text{ está escrito por }y\\ M(x): & x \text{ es matemático}\\ F(x): & x \text{ es filósofo}\\ B(x): & x \text{ es un libro}\\ q: & \text{``El Quijote de la Mancha''}\\ c: & \text{``La construcción lógica del mundo''}\\ a: & \text{``Alicia en el país de las maravillas''} \end{array}

"La construcción lógica del mundo" está escrito por un filósofo y no es más extenso que "Alicia en el país de las maravillas"

  • (x:F.E(c,x))¬L(c,a)\big(\exists x:\mathsf{F}.E(c,x)\big)\wedge\neg L(c,a)

L(x,y):x es maˊs extenso que yE(x,y):x estaˊ escrito por yM(x):x es matemaˊticoF(x):x es filoˊsofoB(x):x es un libroq:“El Quijote de la Mancha”c:“La construccioˊn loˊgica del mundo”a:“Alicia en el paıˊs de las maravillas”\begin{array}{rl} L(x,y): & x \text{ es más extenso que }y\\ E(x,y): & x \text{ está escrito por }y\\ M(x): & x \text{ es matemático}\\ F(x): & x \text{ es filósofo}\\ B(x): & x \text{ es un libro}\\ q: & \text{``El Quijote de la Mancha''}\\ c: & \text{``La construcción lógica del mundo''}\\ a: & \text{``Alicia en el país de las maravillas''} \end{array}

Si "Alicia en el país de las maravillas" está escrito por un matemático, entonces está escrito por un filósofo

  • (x:M.E(a,x))(y:F.E(a,y))\big(\exists x:\mathsf{M}.E(a,x)\big)\rightarrow\big(\exists y:\mathsf{F}.E(a,y)\big)

L(x,y):x es maˊs extenso que yE(x,y):x estaˊ escrito por yM(x):x es matemaˊticoF(x):x es filoˊsofoB(x):x es un libroq:“El Quijote de la Mancha”c:“La construccioˊn loˊgica del mundo”a:“Alicia en el paıˊs de las maravillas”\begin{array}{rl} L(x,y): & x \text{ es más extenso que }y\\ E(x,y): & x \text{ está escrito por }y\\ M(x): & x \text{ es matemático}\\ F(x): & x \text{ es filósofo}\\ B(x): & x \text{ es un libro}\\ q: & \text{``El Quijote de la Mancha''}\\ c: & \text{``La construcción lógica del mundo''}\\ a: & \text{``Alicia en el país de las maravillas''} \end{array}

No es el caso que cualquier libro es escrito por un filósofo.

  • ¬x:B.y:F.E(x,y).\neg\forall x:\mathsf{B}.\exists y:\mathsf{F}.E(x,y).

L(x,y):x es maˊs extenso que yE(x,y):x estaˊ escrito por yM(x):x es matemaˊticoF(x):x es filoˊsofoB(x):x es un libroq:“El Quijote de la Mancha”c:“La construccioˊn loˊgica del mundo”a:“Alicia en el paıˊs de las maravillas”\begin{array}{rl} L(x,y): & x \text{ es más extenso que }y\\ E(x,y): & x \text{ está escrito por }y\\ M(x): & x \text{ es matemático}\\ F(x): & x \text{ es filósofo}\\ B(x): & x \text{ es un libro}\\ q: & \text{``El Quijote de la Mancha''}\\ c: & \text{``La construcción lógica del mundo''}\\ a: & \text{``Alicia en el país de las maravillas''} \end{array}

Hay alguien que es filósofo y matemático y ha escrito un libro más extenso que "Alicia en el país de las maravillas"

  • x(F(x)M(x)y:B.(E(y,x)L(y,a)))\exists x\big(F(x)\wedge M(x)\wedge\exists y:\mathsf{B}. (E(y,x)\wedge L(y,a))\big)

Especificación de listas

Dado un tipo de datos AA se define el tipo de datos de listas con elementos de AA (LAL_A) como sigue:

  • La lista vacía, nilnil, es un miembro de LAL_A.
  • Si aa es un elemento de AA y \ell es una lista de LAL_A, entonces a:a:\ell es un miembro de LAL_A.
  • Son todos.

Especificación de listas

Consideraremos a nilnil constante para la lista vacía;  :(2)\ :^{(2)} función que construye una lista; y los símbolos de predicado A(1)A^{(1)} y LA(1)L_A^{(1)} que denotan el tipo AA y listas LAL_A. La formalización es la siguiente:

  • LA(nil)L_A(nil),
  • x:A.:LA. LA(x:)\forall x:\mathsf{A}.\forall \ell:\mathsf{L_A}.\ L_A(x:\ell).

Especificación de listas

Realice la especificación formal de las siguientes propiedades

  1. La operación de concatenación es asociativa.
  2. Si la concatenación de dos listas es vacía, entonces ambas listas son vacías.
  3. Si la concatenación de dos listas es una lista unitaria, entonces una de tales listas es vacía y la otra es la misma lista unitaria.
  4. La reversa de la reversa de una lista es la misma lista.

Especificación de listas

nil(0) y :(2)nil^{(0)} \text{ y } :^{(2)}

A(x):xALA():AA(x): x \in A \qquad L_A(\ell) : \ell\in A

C(x,y,z):z es la concatenacioˊn de x y yC(x,y,z): z \text{ es la concatenación de $x$ y $y$}

  1. La operación de concatenación es asociativa.
  • :LA.m:LA.n:LAu:LA.v:LA.w:LA (C(,m,u)C(u,n,v)C(m,n,w)C(,w,v))\forall \ell:\mathsf{L_A}.\forall m:\mathsf{L_A}.\forall n:\mathsf{L_A}\forall u:\mathsf{L_A}.\forall v:\mathsf{L_A}.\forall w:\mathsf{L_A}\ \big(C(\ell,m,u)\wedge C(u,n,\pmb{v})\wedge C(m,n,w)\rightarrow C(\ell,w,\pmb{v})\big)

Especificación de listas

nil(0) y :(2)nil^{(0)} \text{ y } :^{(2)}

A(x):xALA():AA(x): x \in A \qquad L_A(\ell) : \ell\in A

C(x,y,z):z es la concatenacioˊn de x y yC(x,y,z): z \text{ es la concatenación de $x$ y $y$}

  1. Si la concatenación de dos listas es vacía, entonces ambas listas son vacías.
  • :LA.m:LA. (C(,m,nil)=nilm=nil)\forall \ell:\mathsf{L_A}.\forall m:\mathsf{L_A}.\ \big(C(\ell,m,nil) \rightarrow \ell=nil \wedge m=nil\big).

Especificación de listas

nil(0) y :(2)nil^{(0)} \text{ y } :^{(2)}

A(x):xALA():AA(x): x \in A \qquad L_A(\ell) : \ell\in A

C(x,y,z):z es la concatenacioˊn de x y yC(x,y,z): z \text{ es la concatenación de $x$ y $y$}

  1. Si la concatenación de dos listas es una lista unitaria, entonces una de tales listas es vacía y la otra es la misma lista unitaria.
  • :LA.m:LA.x:A (C(,m,x:nil)(=x:nilm=nil)(=nilm=x:nil))\forall \ell:\mathsf{L_A}.\forall m:\mathsf{L_A}.\forall x:\mathsf{A}\ \big(C(\ell,m,x:nil) \rightarrow (\ell=x:nil\wedge m=nil) \vee (\ell=nil\wedge m=x:nil)\big).

Especificación de listas

nil(0) y :(2)nil^{(0)} \text{ y } :^{(2)}

A(x):xALA():AA(x): x \in A \qquad L_A(\ell) : \ell\in A

R(x,y):y es la reversa de xR(x,y): y \text{ es la reversa de $x$}

  1. La reversa de la reversa de una lista es la misma lista.
  • :LA.:LA. (R(,)R(,))\forall \ell:\mathsf{L_A}.\forall \ell':\mathsf{L_A}.\ \big(R(\ell,\ell')\rightarrow R(\ell',\ell)\big)

#8212;$L_A$&#8212; como sigue: