Análisis Lógico PI Loera-Burnes ANÁLISIS LÓGICO. CIENCIAS DE LA COMPUTACIÓN. Serie a de ejercicios: Forma Normal Conjuntiva Prenex y Forma Normal Conjuntiva Skolem. M.C. Pedro Ignacio Loera Burnes. 1. Calcular la forma normal conjuntiva prenex (FNCP) equivalente a la siguiente fórmula y escribir el programa lógico: ∀x ∀y [∃z P(x, y, z) ⋀ (∃u Q(x, u) → ∃v Q (y, v))] 2.- Obtener la forma normal conjuntiva prenex (FNCP) equivalente a la siguiente fórmula y escribir el programa lógico: ¬ [∃x (A(x) → (∀y B(x, y)))] 3. Obtener la forma normal conjuntiva prenex (FNCP) equivalente a la siguiente fórmula y escribir el programa lógico: ∀x ∀y [∃z(A(x, z) ⋀B (y, z)) →∃u C(x, y, u)] 4. Obtener la forma normal conjuntiva prenex (FNCP) equivalente a la siguiente fórmula y escribir el programa lógico: ∀x A(x) → ¬∃z [B(w, z) → ∀y C(w, y)] 5. Obtener la forma normal conjuntiva prenex (FNCP) equivalente a la siguiente fórmula y escribir el programa lógico: A(x, y) ⋀ [∃x B(x) → ∀y ∀z C(x, y, z)] 6. Obtener la forma normal conjuntiva Skolem (FNCS) equivalente a la siguiente fórmula y escribir el programa lógico: ∃x ∀y ∀z ∃u ∀v ∃w [P(x, y, z) ⋀ Q (u, v) ⋀¬R (w)] 7. Obtener la forma normal conjuntiva Skolem (FNCS) equivalente a la siguiente fórmula y escribir el programa lógico: ∀x ∃y ∃z [(¬P(x, y) ⋀ Q(x, z)) ⋁ R(x, y, z)] 8. Obtener la forma normal conjuntiva Skolem (FNCS) equivalente a la siguiente fórmula y escribir el programa lógico: ∀x [(A(x, y) → ∃y P(x, y, z)) →¬ ∀z Q(x, z)] 9. Obtener la forma normal Skolem equivalente a la siguiente fórmula y escribir el programa lógico: ∀x [(P(x) → ¬∀y (Q(x, y) → ∃z P (z))) ⋀ ∀t (Q(x, y) → R (t))] 1 Análisis Lógico PI Loera-Burnes 10. Obtener la forma normal conjuntiva Skolem equivalente a la siguiente fórmula y escribir el programa lógico: ∀x [¬P(x, a) →∃y (P (y, g(x)) ⋀ ∀z(P(z, g(x)) → P(y, z)))] 11. Obtener la forma normal conjuntiva Skolem (FNCS) equivalente a la siguiente fórmula y escribir el programa lógico: ∀x ∃y ∃z [(¬p(x, y) ⋀ Q(x, z)) ⋁ R(x, y, w)] 12. Ejercicio: Consideremos el lenguaje de primer orden. LRP’ = {HJ, HR, SB, T, PD, MD, a, b} Escribir fórmulas del lenguaje LRP’ que expresen las siguientes afirmaciones. 1. Todo el que tiene un padre tiene una madre. 2. Todo hermano de un tío de Pedro es tío de Pedro o es su padre. 3. Todo el mundo tiene abuela. 4. Pedro y Ana son primos. 5. Todo hijo de un hermano de Pedro es su sobrino. 6. Si dos personas tienen una abuela en común entonces son primos o bien son hermanos. 7. No todo el mundo tiene hijos. (Supóngase que HJ(x, y) expresa “x es hijo/a de y”; HR (x, y): “x es hermano/a de y”; SB(x, y): “x es sobrino/a de y”; T(x, y): “x es tío/a de y”; PD(x, y): “x es padre de y”; MD(x, y):”x es madre de y”; y que las constantes a y b denotan, respectivamente, a Ana y a Pedro. ). 13. Ejercicio: Sabemos que 1. Marco es un pompeyano. 2. Todos los pompeyanos son romanos. 3. Cada romano, o era leal a César, o le odiaba. 4. Todo el mundo es leal a alguien. 5. La gente solo intenta asesinar a quien no le es leal. 6. Marco intentó asesinar a César. 7. Todo pompeyano es leal a su padre. Con los predicados P(x) = ”x es pompeyano”, R(x) = ”x es romano”, L(x, y) = ”x es leal a y”, O(x, y) = ”x odia a y”, y IA(x, y) = ”x intento asesinar a y”, formalizar los conocimientos anteriores. (a) Dar un modelo de las fórmulas obtenidas. (b) ¿Era leal Marco a César? ¿Odia Marco a César? Solución: a) En el lenguaje de Marco y César (LMC), LMC = {P, R, L, O, IA, F, Marco, César} Que consta de: Símbolo de función de aridad 1: f. Símbolos de predicado: de aridad 1: P, R; de aridad 2: L, O, IA. Símbolos de constantes: Marco, César. Los conocimientos anteriores se formalizan: 1. P (Marco). 2. ∀𝑥(𝑃(𝑥) → 𝑅(𝑥)) 2 Análisis Lógico PI Loera-Burnes 3. ∀𝑥(𝑅(𝑥) → 𝐿(𝑥, 𝐶é𝑠𝑎𝑟) ∨ 𝑂(𝑥, 𝐶é𝑠𝑎𝑟)) 4. ∀𝑥∃𝑦(𝐿(𝑥, 𝑦)) 5. ∀𝑥∀𝑦(𝐼𝐴(𝑥, 𝑦) → ¬𝐿(𝑥, 𝑦)) 6. IA(Marco, César) 7. ∀𝑥(𝑃(𝑥) → 𝐿(𝑥, 𝑓(𝑥))) La siguiente estructura, M, es un modelo del conjunto de fórmulas anteriores: Universo: |M| = {a, b, c, d, e} 𝑃𝑀 = {𝑎, 𝑒} 𝑅 𝑀 = |𝑀| 𝐿𝑀 = {(𝑏, 𝑏), (𝑐, 𝑏), (𝑑, 𝑏), (𝑎, 𝑒), (𝑒, 𝑑)} 𝑂𝑀 = {(𝑎, 𝑏), (𝑒, 𝑏)} 𝐼𝐴𝑀 = {(𝑎, 𝑏), (𝑒, 𝑏), (𝑐, 𝑑)} 𝑓 𝑀 (𝑎) = 𝑒, 𝑓 𝑀 (𝑏) = 𝑐, 𝑓 𝑀 (𝑐) = 𝑎, 𝑓 𝑀 (𝑑) = 𝑏, 𝑓 𝑀 (𝑒) = 𝑑 𝑀𝑎𝑟𝑐𝑜 𝑀 = 𝑎 𝐶é𝑠𝑎𝑟 𝑀 = 𝑏 b) Conjunto de cláusulas: {P(Marco); P(Marco) R(Marco); R(Marco) L(Marco) O(Marco, Cesar); IA(Marco, Cesar) L(Marco, Cesar); IA(marco, Cesar)} Y observemos que: 𝑅𝑒𝑠(¬𝐼𝐴(𝑀𝑎𝑟𝑐𝑜, 𝐶é𝑠𝑎𝑟) ∨ ¬𝐿(𝑀𝑎𝑟𝑐𝑜, 𝐶é𝑠𝑎𝑟), 𝐼𝐴(𝑀𝑎𝑟𝑐𝑜, 𝐶é𝑠𝑎𝑟)) = ¬𝐿(𝑀𝑎𝑟𝑐𝑜, 𝐶é𝑠𝑎𝑟) Por tanto, Marco no era leal al César. Además: 1. 𝑅𝑒𝑠(¬𝑃(𝑀𝑎𝑟𝑐𝑜), ¬𝑃(𝑀𝑎𝑟𝑐𝑜) ∨ 𝑅(𝑀𝑎𝑟𝑐𝑜)) = 𝑅(𝑀𝑎𝑟𝑐𝑜) 2. 𝑅𝑒𝑠(𝑅(𝑀𝑎𝑟𝑐𝑜), ¬𝑅(𝑀𝑎𝑟𝑐𝑜) ∨ 𝐿(𝑀𝑎𝑟𝑐𝑜, 𝐶é𝑠𝑎𝑟) ∨ 𝑂(𝑀𝑎𝑟𝑐𝑜, 𝐶é𝑠𝑎𝑟)) = 𝐿(𝑀𝑎𝑟𝑐𝑜, 𝐶é𝑠𝑎𝑟) ∨ 𝑂(𝑀𝑎𝑟𝑐𝑜, 𝐶é𝑠𝑎𝑟) 3. 𝑅𝑒𝑠(𝐿(𝑀𝑎𝑟𝑐𝑜, 𝐶é𝑠𝑎𝑟) ∨ 𝑂(𝑀𝑎𝑟𝑐𝑜, 𝐶é𝑠𝑎𝑟), ¬𝐿(𝑀𝑎𝑟𝑐𝑜, 𝐶é𝑠𝑎𝑟)) = 𝑂(𝑀𝑎𝑟𝑐𝑜, 𝐶é𝑠𝑎𝑟) Y, en consecuencia, Marco odia a César. 14. Ejercicio: Sea F la fórmula: ∀𝒚[∀𝒙(𝒑(𝒙) → 𝒒(𝒙, 𝒚)) → ∀𝒚(𝒑(𝒚) → ∃𝒛𝒒(𝒚, 𝒛))] Hallar una forma Skolem de ¬ F y probar que F es lógicamente válida. Solución: Obtención de la forma Skolem de ¬ F: ∃𝑦∃𝑢∀𝑥∀𝑧 ¬([𝑝(𝑥) → 𝑞(𝑥, 𝑦)] → [𝑝(𝑢) → 𝑞(𝑢, 𝑧)]) ∀𝑥 ∀𝑧 ¬([𝑝(𝑥) → 𝑞(𝑥, 𝑎)] → [𝑝(𝑏) → 𝑞(𝑏, 𝑧)] Obtención de la forma clausal: ([𝑝(𝑥) → 𝑞(𝑥, 𝑎)] ∧ ¬[𝑝(𝑏) → 𝑞(𝑏, 𝑧)] ([¬𝑝(𝑥) ∨ 𝑞(𝑥, 𝑎)] ∧ [𝑝(𝑏) ∧ ¬𝑞(𝑏, 𝑧)] Conjunto de cláusulas de ¬ F: { ¬𝑝(𝑥) ∨ 𝑞(𝑥, 𝑎); 𝑝(𝑏); ¬𝑞(𝑏, 𝑧)} Mediante la sustitución de x/b en la primera cláusula y z/a en la segunda; obtenemos: { ¬𝑝(𝑏) ∨ 𝑞(𝑏, 𝑎); 𝑝(𝑏); ¬𝑞(𝑏, 𝑎)} Y por resolución: 3 Análisis Lógico PI Loera-Burnes 1. 𝑅𝑒𝑠(¬𝑝(𝑏) ∨ 𝑞(𝑏, 𝑎); 𝑝(𝑏)) = 𝑞(𝑏, 𝑎) 2. 𝑅𝑒𝑠(𝑞(𝑏, 𝑎); ¬𝑞(𝑏, 𝑎)) = □ Es decir, el conjunto de cláusulas es inconsistente. Por tanto, ¬ F es insatisfacible y, en consecuencia, F lógicamente válida. 4