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
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:
donde las son cuantificadores y es una fórmula libre de cuantificadores en forma normal conjuntiva. A la secuencia se le conoce como prefijo y a 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 , los cuantificadores pueden leerse de la siguiente manera: todo produce un valor asociado tal que el predicado es verdadero. Pero nuestro concepto intuitivo de una función es el mismo: significa que, dado , produce un valor asociado con . El cuantificador existencial puede eliminarse, resultando en .
Ejemplo 2.6.
Consideremos el modelo para la fórmula en FNCP , donde el universo es y el predicado . Obviamente, .
La fórmula se obtiene a partir de eliminando el cuantificador existencial y reemplazándolo por una función. Consideremos el modelo idéntico a pero con . Claramente, (simplemente se ignora la función), pero ya que no es cierto que para los enteros. Por lo tanto, .
Sin embargo, sí existe un modelo para , por ejemplo , donde el universo es , y .
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
-
(L)
Se limpia la fórmula de entrada .
-
Eliminar cuantificadores múltiples mediante las siguientes equivalencias:
-
Eliminar los cuantificadores vacuos mediante las siguientes equivalencias, donde no está libre en :
No es necesaria hacer ninguna transformación a la fórmula .
-
-
(I)
Eliminar las implicaciones y bi-condicionales empleando las equivalencias:
-
(N)
Manipular la negación para permitir su efecto únicamente en fórmulas atómicas y quitar doble negaciones. Usar las siguientes equivalencias:
-
(R)
Renombrar variables ligadas para que ninguna variable se repita en los cuantificadores.
-
(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 es un cuantificador y es o :
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.
-
(D)
Usar las leyes distributivas para transformar la matriz a su FNC. La fórmula está ahora en FNCP.
-
(S)
Recorrer el prefijo de izquierda a derecha. Para todo cuantificador existencial en , sean las variables cuantificadas universalmente que preceden a , y sea un nuevo símbolo de función de aridad . Eliminar y reemplazar en la matriz cada presencia de por , esta función se llama función de Skolem. Si no hay cuantificadores universales precediendo , reemplazar por una nueva constante, la cual se llama constante de Skolem. El proceso de reemplazar cuantificadores existenciales por funciones se llama Skolemización.
-
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.
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:
Como los cuantificadores existenciales están precedidos por un cuantificador universal, la Skolemización produce funciones de un argumento, no constantes, como sigue:
En forma clausular tenemos:
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:
Necesitamos demostrar que existe un modelo tal que:
se construye extendiendo . Se agrega una función definida para todo como:
Dado que , debe haber al menos un elemento en el dominio tal que . Simplemente elegimos uno de ellos arbitrariamente y lo asignamos como el valor de . La función de Skolem se elige como un nuevo símbolo de función, por lo que la definición de no entra en conflicto con ninguna función existente en .
Para demostrar que:
tomamos elementos arbitrarios del dominio. Por construcción, para algún y . Como eran arbitrarios:
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.
-
(L)
La fórmula queda igual.
-
(I)
.
-
(N)
-
(R)
La fórmula queda igual.
-
(E)
.
-
(D)
.
-
(S)
.
-
, esta es la forma clausular que buscamos.
Ejercicios 4.1.
Transformar las siguientes fórmulas a su forma clausular.
-
1.
.
-
2.
.
-
3.
.
-
4.
.
-
5.
.
-
6.
.