Transformación a cláusulas Proceso de paso a cláusulas 1. Eliminar los símbolos de implicación 2. Mover las negaciones hasta las fórmulas atómicas 3. Renombrar variables 4. Eliminar los cuantificadores existenciales. 5. Desplazar los cuantificadores universales 6. Convertir los operadores AND en los más externos 7. Eliminar los cuantificadores universales. 8. Eliminar los conectores conjuntivos (AND). 9. Renombrar las variables. (por lo general este paso se omite) Para ilustrar el proceso paso a paso se utilizará la siguiente fórmula: (X){p(X) {(Y)[p(Y) p(f(X,Y))] (Y)[q(X,Y) p(Y)]}} 1. Eliminar los símbolos de implicación, sustituyendo p q por p q. Tras este primer paso, nuestra fómula se transforma en: (X){p(X) {(Y)[ p(Y) p(f(X,Y))] (Y)[ q(X,Y) p(Y)]}} 2. Mover las negaciones hasta las fórmulas atómicas, para ello se emplean las leyes de Morgan y las transformaciones de cuantificadores existenciales y universales. (p q) p q (p q) p q [ ( X) p(X) ] (X) [ p(X) ] [ (X) p(X) ] ( X) [ p(X) ] Aplicándolo sobre el ejemplo: (X){p(X) {(Y)[ p(Y) p(f(X,Y))] (Y)[ q(X,Y) p(Y)]}} (X){ p(X) {(Y)[ p(Y) p(f(X,Y))] (Y)[q(X,Y) p(Y)]}} 3. Renombrar variables, en aquellos casos en los que varias variables se hayan nombrado de igual forma. En nuestro caso esto ocurre con la variable Y que renombramos como Z en su segunda ocurrencia. Así el ejemplo se transforma en: (X){ p(X) {(Y)[ p(Y) p(f(X,Y))] (Y)[q(X,Y) p(Y)]}} (X){ p(X) {(Y)[ p(Y) p(f(X,Y))] (Z)[q(X,Z) p(Z)]}} 4. Eliminar los cuantificadores existenciales. Las variables cuantificadas por este tipo de cuantificadores serán sustituidas por un tipo de función comodín denominada función de Skolem (proceso de skolemización). P.e. (Z) q(X,Z) se transforma en q(X, g(X)) en donde g(X) es la función de Skolem para este caso. Nótese que no sólo se eliminan los cuantificadores existenciales sino también las variables ligadas a los mismos. La función de Skolem introducida debe ser nueva en el universo de discurso, y además deberá ser función de todas las variables cuantificadas universalmente cuyos ámbitos incluyan el ámbito del cuantificador existencial que se pretende eliminar. Así el ejemplo se transforma en: (X){ p(X) {(Y)[ p(Y) p(f(X,Y))] (Z)[q(X,Z) p(Z)]}} (X){ p(X) {(Y)[ p(Y) p(f(X,Y))] [q(X, g(X)) p(g(X))]}} Si el cuantificador existencial no se encuentra en el ámbito de ningún cuantificador universal, se usará una función de Skolem sin argumentos. Como en el siguiente ejemplo: (Z) q(Z) se transforma en q(a) Donde el símbolo constante a referencia a la entidad que sabemos existe. Evidentemente a debe ser un símbolo que no haya sido empleado con anterioridad. 5. Desplazar los cuantificadores universales, de manera que queden al comienzo de la fórmula (prenex form). Este proceso puede ser realizado por cuanto no existen ya variables distintas con el mismo nombre. (X){ p(X) {(Y)[ p(Y) p(f(X,Y))] [q(X, g(X)) p(g(X))]}} (X) (Y){ p(X) { [ p(Y) p(f(X,Y))] [q(X, g(X)) p(g(X))]}} 6. Convertir los operadores conjuntivos (AND) en los más externos, para lo que se emplean las leyes distributivas. A la forma resultante se le denomina forma normal conjuntiva. Este paso se ejecuta sobre el ejemplo en dos pasos: Partiendo de la última expresión, (X)(Y){ p(X) { [ p(Y) p(f(X,Y))] [q(X, g(X)) p(g(X))]}} se aplica primero la ley distributiva: (X)(Y){ { p(X) [ p(Y) p(f(X,Y))]} { p(X) [q(X, g(X)) p(g(X))]}} Aplicando de nuevo la ley distributiva y la asociativa: (X)(Y){ [ p(X) p(Y) p(f(X,Y))] [ p(X) q(X, g(X)) ] [ p(X) p(g(X))]} 7. Eliminar los cuantificadores universales. Se trata de una eliminación convencional, no teórica, pues se asume que toda variable que aparezca está cuantificada universalmente. La función de Skolem adquiere sentido, dado que al no aparecer otras variables que las universales, pueden eliminarse sus cuantificadores por convenio. En el ejemplo: (X)(Y){ [ p(X) p(Y) p(f(X,Y))] [ p(X) q(X, g(X)) ] [ p(X) p(g(X))]} [ p(X) p(Y) p(f(X,Y))] [ p(X) q(X, g(X)) ] [ p(X) p(g(X))] 8. Eliminar los conectores conjuntivos (AND). Dado que la fórmula se corresponde con una conjunción de subfórmulas, éstas deberán verificarse por separado para que se verifique la fórmula principal. Esto produce, en el ejemplo, el siguiente conjunto de fórmulas: [ p(X) p(Y) p(f(X,Y))] [ p(X) q(X, g(X)) ] [ p(X) p(g(X))] p(X) p(Y) p(f(X,Y)) p(X) q(X, g(X)) p(X) p(g(X)) 9. Renombrar las variables. para que no aparezca la misma variable en dos cláusulas. Este paso por lo general no se aplica, en el caso de nosotros no lo utilizaremos. p(X) p(Y) p(f(X,Y)) p(X) q(X, g(X)) p(X) p(g(X)) p(X) p(Y) p(f(X,Y)) p(U) q(U, g(U)) p(W) p(g(W)) Unificación y sustitución El proceso de unificación determina las condiciones y posibilidades de sustitución de un predicado por otro. Por ejemplo, en el caso de los siguientes axiomas: p(X) q(X) p(a) la demostración de q(a) es consecuencia de la regla de especialización Universal aplicada a: p(X) q(X) para producir p(a) q(a) También puede interpretarse como que se ha procedido a realizar la sustitución de p(X) por p(a), previa unificación de X con a. El proceso de sustitución de términos, denominado Unificación, para lograr que dos expresiones sean idénticas es fundamental en el proceso de demostración de teoremas en la lógica de predicados de primer orden. Un proceso de unificación puede ser representado mediante un operador constituido por un conjunto de de pares de términos ordenados por: = { v1 t1, v2 t2, ..., vn tn} donde el par vi ti, indica que la variable vi es sustituida por el término ti. Así el predicado p se transforma mediante la sustitución indicada por en p(... , vk, ...) = p(... , tk, ...). NOTA: También es muy habitual la notación equivalente = { v1/ t1, v2/ t2, ..., vn/ tn} Ejemplos: Definir las sustituciones necesarias para unificar el predicado p(X, f(Y), b) con cada uno de los siguientes predicados: P1: p(g(Z), f(a), b) 1 = { X g(Z), Y a } P2: p(X, f(a), b) 2 = { Y a } P3: p(Z, f(U), b) 3 = { X Z, Y U } P4: p(c, f(a), b) 4 = { X c, Y a } El proceso de unificación implica la sustitución de una variable por otro término que puede ser variable, constante o functor. En este último caso, el functor no puede contener la variable sustituida. Es evidente que no siempre es posible unificar dos realizaciones de un mismo predicado. Por ejemplo q(a, f(X), X) y q(c, f(d), b) no son unificables. La composición de dos sustituciones 1 y 2, se denota por 1 2 y es la sustitución que resulta de aplicar la sustitución 2 a los términos de 1 y de añadir a continuación los pares de sustituciones de 2 sobre las variables no contenidas entre las variables de 1. { Z f(X,Y), U X } { X a, Y b, W c, Z d } { Z f(a,b), U a, X a, Y b, W c } Diremos que dos predicados, E1 y E2, son unificables, y lo representaremos por {E1, E2}, si existe una sustitución tal que se verifica: E1 = E2 A la sustitución la denominaremos Unificador de E1 y E2. Ejemplo: Dados p(X, f(Y), b) y p(X, f(b), b) y la sustitución = { X a, Y b }, decimos que es un unificador de estos dos predicados porque los convierte en p(a, f(b), b). Estos dos procesos se seguirán para la demostración de los argumentos a través del método de resolución de Robinson, la unificación se aplica al momento de estar generando los resolventes de la manera siguiente: puede utilizarse Z/a para indicar que las Z se substituirá por a, en lugar de (Z a) Ejercicios del cálculo de predicados 1. Demostrar la validez a través del método directo, indirecto y por el principio de resolución de los siguientes argumentos. a) Todos los médicos son profesionistas Roberto González es medico Por lo tanto Roberto González es profesionista b) Ningún reloj suizo es barato Algunos relojes baratos son automáticos Por ende, algunos relojes automáticos no son suizos c) Si todos los vagos son inútiles Resulta que ningún poeta es vago, Pues ningún poeta es inútil d) Todos los mexicanos son americanos Ningún americano es europeo Todos los Jalisciences son mexicanos 2. Demostrar la validez a través del método indirecto y resolución de los siguientes argumentos a) 1. (x) (D(x) E(x)) 2. (x) (D(x) G(x)) ┣ (x) (G(x) E(x)) b) 1. (x) (M(x) ¬F(x)) 2. (x) (P(x) M(x)) ┣ (x) (P(x) ¬F(x)) c) 1. (x) ((S(x) ¬T(x)) P(x)) 2. (x) (D(x) S(x)) 3. (x) (D(x) ¬P(x)) ┣ (x) (T(x)) 3. Obtener la negación de las siguientes expresiones 1. (x) ( ( ( S(x) ¬T(x) ) P(x) ) (x) ( D(x) ¬P(x) ) T(x ) ) 2. (x) ( ( R(x) S(x) ) (x) ( S(x) E(x) ) v R(u) ) 4. De las expresiones anteriores indicar el alcance de cada cuantificador, así como indicar que variables están ligadas por que cuantificador. 5. obtener la forma clausular de las siguientes expresiones 1. ( (x) [P(x) ] v (x) [Q(x) ] ) (x) [ P(x) v Q(x)] 2. (x) [P(x) (x) [ (z) [Q(x,z)] v (z) [R(x,y,z)]]] 3. (x)[P(x) Q(x,y)] ( (y)[P(y)] (z) [Q(y,z)] ) 6. Obtener la expresión unificada al aplicar los conjuntos de sustitución siguientes A=(S(x) ¬T(y)) P(z) θ= {a/x, b/y, c/z} μ= {f(w)/a, g(w)/z} ψ= {f(a)/x,x/y,n/z} Aθ= ¿? A μ= ¿? A ψ=¿?