Lógica Computacional
Nota 10. Formas normales para la lógica de predicados11Esta nota se base en material elaborado por el prof. Favio Miranda y en el libro de Ben-Ari M., Mathematical Logic for Computer Science

Noé Salomón Hernández S

1 Introducción

La regla de resolución es una regla de inferencia para la lógica de predicados análoga a de la lógica proposicional. Tal regla funciona únicamente sobre expresiones en forma clausular.

2 FNCP y Forma Clausular

Ocuparemos la noción de literal que se introdujo en la nota pasada.

Definición 2.1.

Una expresión está en forma normal conjuntiva syss es una conjunción de disyunciones de literales.

La forma normal conjuntiva se utilizó de forma implícita para obtener la forma clausular en la lógica proposicional.

Definición 2.2.

Una fórmula de la lógica de predicados está en forma normal conjuntiva prenex22Prenex del latín tardío praenexus, atado o atado por enfrente, del latín prae- pre- + nexus, pasado participio de nectere, atar, ligar.https://www.merriam-webster.com/dictionary/prenex %20normal %20form (FNCP) syss es de la forma:



Q1x1QnxnM

donde las Qi son cuantificadores y M es una fórmula libre de cuantificadores en forma normal conjuntiva. A la secuencia Q1x1Qnxn se le conoce como prefijo y a M como matriz.

Definición 2.3.

Sea φ un enunciado, es decir, una fórmula cerrada, en FNCP cuyo prefijo consiste únicamente de cuantificadores universales. La forma clausular de φ consiste en la matriz de φ escrita como un conjunto de cláusulas.

Definición 2.4.

Sean φ y ψ dos fórmulas de la lógica de predicados. La expresión φψ denota que φ es satisfacible syss ψ es satisfacible.

Es importante entender que φψ (φ es satisfacible syss ψ es satisfacible) no implica que φψ (φ es lógicamente equivalente a ψ). Por un lado, φψ indica que existe un modelo para φ syss existe un modelo para ψ. Por otro lado, la equivalencia lógica φψ quiere decir que todo modelo satisface a φ syss también satisface a ψ.

Teorema 2.5 (Skolem).

Sea φ una fórmula cerrada. Entonces existe una fórmula ψ en forma clausular tal que φψ.

Es claro que podemos transformar la φ del Teorema 2.5 en una fórmula lógicamente equivalente en FNCP. Es la eliminación de los cuantificadores existenciales lo que causa que la nueva fórmula no sea equivalente a la original. Esta eliminación se consigue definiendo nuevos símbolos de función. En xyP(x,y), los cuantificadores pueden leerse de la siguiente manera: todo x produce un valor asociado y tal que el predicado P es verdadero. Pero nuestro concepto intuitivo de una función es el mismo: y=f(x) significa que, dado x, f produce un valor y asociado con x. El cuantificador existencial puede eliminarse, resultando en xP(x,f(x)).

Ejemplo 2.6.

Consideremos el modelo para la fórmula en FNCP φ=xyP(x,y), donde el universo es y el predicado P=def>. Obviamente, φ.

La fórmula φ=xP(x,f(x)) se obtiene a partir de φ eliminando el cuantificador existencial y reemplazándolo por una función. Consideremos el modelo idéntico a pero con f(x)=defx+1. Claramente, φ (simplemente se ignora la función), pero ⊧̸φ ya que no es cierto que n>n+1 para los enteros. Por lo tanto, φφ.

Sin embargo, sí existe un modelo para φ, por ejemplo , donde el universo es , P=def> y f(x)=defx1.

3 Algoritmo de Skolem

Damos ahora un algoritmo para transformar una fórmula de la lógica de predicados φ en una fórmula ψ en forma clausular.

Algoritmo

Input: Una fórmula cerrada φ de la lógica de predicados.

Output: Una fórmula ψ en forma clausular tal que φψ.

Daremos los pasos del algoritmo a la par que lo aplicamos a la fórmula

φ=x(P(x)Q(x))(xP(x)xQ(x))
  1. (L)

    Se limpia la fórmula de entrada φ.

    • Eliminar cuantificadores múltiples mediante las siguientes equivalencias:

      xxφxφxxφxφ
      xxφxφxxφxφ
    • Eliminar los cuantificadores vacuos mediante las siguientes equivalencias, donde x no está libre en φ:

      xφφ
      xφφ

    No es necesaria hacer ninguna transformación a la fórmula φ.

  2. (I)

    Eliminar las implicaciones y bi-condicionales empleando las equivalencias:

    φψ¬φψφψ(¬φψ)(φ¬ψ)

    ¬x(¬P(x)Q(x))(¬xP(x)xQ(x))

  3. (N)

    Manipular la negación para permitir su efecto únicamente en fórmulas atómicas y quitar doble negaciones. Usar las siguientes equivalencias:

    ¬¬φφ¬(φψ)¬φ¬ψ¬(φψ)¬φ¬ψ¬xφx¬φ¬xφx¬φ

    x(P(x)¬Q(x))(x¬P(x)xQ(x))

  4. (R)

    Renombrar variables ligadas para que ninguna variable se repita en los cuantificadores.

    x(P(x)¬Q(x))(y¬P(y)zQ(z))

  5. (E)

    Extraer cuantificadores de la matriz. Identificar un cuantificador más externo en la matriz, es decir, uno que no esté dentro del alcance de otro que también resida en la matriz, y extraerlo usando las siguientes equivalencias, donde Q es un cuantificador y op es o :

    ψopQxφQx(ψopφ)
    QxφopψQx(φopψ)

    Repetir hasta que todos los cuantificadores aparezcan en el prefijo y ninguno en la matriz. Las equivalencias se pueden aplicar porque ninguna variable figura en dos o más cuantificadores.

    xyz((P(x)¬Q(x))(¬P(y)Q(z)))

  6. (D)

    Usar las leyes distributivas para transformar la matriz a su FNC. La fórmula está ahora en FNCP.

    φ(ψχ)(φψ)(φχ)(φψ)χ(φχ)(ψχ)

    xyz((P(x)¬P(y)Q(z))(¬Q(x)¬P(y)Q(z)))

  7. (S)

    Recorrer el prefijo de izquierda a derecha. Para todo cuantificador existencial x en φ, sean y1,yn las variables cuantificadas universalmente que preceden a x, y sea f un nuevo símbolo de función de aridad n. Eliminar x y reemplazar en la matriz cada presencia de x por f(y1,yn), esta función se llama función de Skolem. Si no hay cuantificadores universales precediendo x, reemplazar x por una nueva constante, la cual se llama constante de Skolem. El proceso de reemplazar cuantificadores existenciales por funciones se llama Skolemización.

    z((P(a)¬P(b)Q(z))(¬Q(a)¬P(b)Q(z)))

  8. La fórmula puede ser escrita en forma clausular al dejar a un lado los cuantificadores universales y al escribir la matriz como un conjunto de cláusulas.

    {{P(a),¬P(b),Q(z)},{¬Q(a),¬P(b),Q(z)}}

Para recordar los pasos LINREDS pueden pensar en la frase:

  • Logic Is Necessary in Realizing Effective Durable Systems (La lógica es necesaria en la realización de sistemas efectivos y durables).

Si buscan una frase en español se tiene la siguiente:

  • La INformática REvoluciona el Desarrollo de Sociedades.

Notemos que el orden en el que se extraen los cuantificadores en el paso E puede ser otro, y una vez aplicadas las leyes distributivas obtenemos la siguiente fórmula en FNCP equivalente:

zxy((P(x)¬P(y)Q(z))(¬Q(x)¬P(y)Q(z)))

Como los cuantificadores existenciales están precedidos por un cuantificador universal, la Skolemización produce funciones de un argumento, no constantes, como sigue:

z((P(f(z))¬P(g(z))Q(z))(¬Q(f(z))¬P(g(z))Q(z)))

En forma clausular tenemos:

{{P(f(z)),¬P(g(z)),Q(z)},{¬Q(f(z)),¬P(g(z)),Q(z)}}

3.1 Demostración del algoritmo de Skolem

En el algoritmo anterior se emplean cinco equivalencias, es el remplazo de un cuantificador existencial por una función/constante de Skolem lo que ya las hace equivalentes, pero la satisfacibilidad se preserva. Suponga que:

y1ynxP(y1,,yn,x).

Necesitamos demostrar que existe un modelo tal que:

y1ynP(y1,,yn,f(y1,,yn)).

se construye extendiendo . Se agrega una función f(n) definida para todo {c1,,cn}A como:

f(c1,,cn)=cn+1 para algún cn+1A, tal que (c1,,cn,cn+1)P.

Dado que y1ynxP(y1,,yn,x), debe haber al menos un elemento b en el dominio tal que (c1,,cn,b)P. Simplemente elegimos uno de ellos arbitrariamente y lo asignamos como el valor cn+1 de f(c1,,cn). La función de Skolem se elige como un nuevo símbolo de función, por lo que la definición de f no entra en conflicto con ninguna función existente en .

Para demostrar que:

y1ynP(y1,,yn,f(y1,,yn)),

tomamos elementos {c1,,cn} arbitrarios del dominio. Por construcción, f(c1,,cn)=b para algún bA y (c1,,cn,b)P. Como c1,,cn eran arbitrarios:

y1ynP(y1,,yn,f(y1,,yn))

Esto completa una dirección de la prueba del Teorema de Skolem. La prueba de la inversa se deja como ejercicio.

4 Ejemplo

Transformar el siguiente enunciado a forma clausular.

¬y(P(y)z(R(z)Q(y,z)))
  1. (L)

    La fórmula queda igual.

  2. (I)

    ¬y(P(y)z(¬R(z)Q(y,z))).

  3. (N)
    ¬y(P(y)z(¬R(z)Q(y,z)))y¬(P(y)z(¬R(z)Q(y,z)))y(¬P(y)¬z(¬R(z)Q(y,z)))y(¬P(y)z¬(¬R(z)Q(y,z)))y(¬P(y)z(¬¬R(z)¬Q(y,z)))y(¬P(y)z(R(z)¬Q(y,z))).
  4. (R)

    La fórmula queda igual.

  5. (E)

    yz(¬P(y)(R(z)¬Q(y,z))).

  6. (D)

    yz((¬P(y)R(z))(¬P(y)¬Q(y,z))).

  7. (S)

    y((¬P(y)R(f(y)))(¬P(y)¬Q(y,f(y)))).

  8. {{¬P(y),R(f(y))},{¬P(y),¬Q(y,f(y))}}, esta es la forma clausular que buscamos.

Ejercicios 4.1.

Transformar las siguientes fórmulas a su forma clausular.

  1. 1.

    xy(P(x,g(y))¬xQ(x)).

  2. 2.

    xy(zwR(x,y,z,w)vP(v)).

  3. 3.

    x(P(x)¬y(Q(y)R(x,y)))¬(yP(y)¬zP(z)).

  4. 4.

    x(T(x)¬Q(x))x(R(x)¬T(x)).

  5. 5.

    xyP(x,y)yxP(x,y).

  6. 6.

    x(P(x)Q(x))(xP(x)xQ(x)).