Lógica y Programación Formas Normales Antonia M. Chávez, Agustı́n Riscos, Carmen Graciani Dpto. Ciencias de la Computacion e Inteligencia Artificial Universidad de Sevilla Introducción • Simplificar las fórmulas preservando su significado • Reducir el número de conectivas • Cambiar la estructura de la fórmula • Objetivo: Resolver fácilmente los problemas de satisfacibilidad, validez, consecuencia lógica • Inconvenientes: • Aumento del tamaño de la fórmula • Complejidad del proceso de normalización Marco Teórico: Literales • Definiciones: • Si F es un sı́mbolo proposicional, entonces F es un literal positivo • Si F es un sı́mbolo proposicional, entonces ¬F es un literal negativo • F es un literal si y sólo si F es literal positivo o negativo • Literales: L, L1 , L2 , . . . • Complementario de un literal: L = ¬p p • Literales de una fórmula: lit(F ) • Ejemplos: lit(p ∨ ((¬q) ∨ r )) = {p, ¬q, r } • Implementación si si L=p L = ¬p Equivalencia lógica • F y G son equivalentes si se verifica |= F ↔ G • Representación: F ≡ G • F ≡ G si y sólo si para toda interpretación I de {F , G } se tiene sig (F , I ) = sig (G , I ) • Prueba: • D-I: Si para toda interpretación I ocurre sig (F , I ) = sig (G , I ), entonces es cierto que para toda I tenemos: I |= F ↔ G . Y si esto es para toda I , entonces podemos afirmar que |= F ↔ G . Que es lo mismo que decir F ≡ G . Equivalencia lógica • F y G son equivalentes si se verifica |= F ↔ G • Representación: F ≡ G • F ≡ G si y sólo si para toda interpretación I de {F , G } se tiene sig (F , I ) = sig (G , I ) • Prueba: • I-D: F ≡ G implica |= F ↔ G . Esto significa que para cualquier interpretación I , se tiene cierta F ↔ G . De esto, para cualquier interpretación I , se tiene que I |= F → G y, a la vez, I |= G → F . Razonemos por reducción al absurdo, si no ocurriena que sig (F , I ) = sig (G , I ), se tendrı́a uno de los siguientes casos: • sig (F , I ) = True y sig (G , I ) = False, lo cual lleva a I 6|= F → G • sig (F , I ) = False y sig (G , I ) = True, lo cual lleva a I ¬ |= G → F . Equivalencia lógica • F y G son equivalentes si se verifica |= F ↔ G • Representación: F ≡ G • F ≡ G si y sólo si para toda interpretación I de {F , G } se tiene sig (F , I ) = sig (G , I ) • Ejemplos: p ↔ q ≡ (p → q) ∧ (q → p) p → q ≡ (¬p) ∨ q p ∧ q ≡ ¬((¬p) ∨ (¬q)) p ∨ q ≡ ¬((¬p) ∧ (¬q)) Propiedades de la equivalencia lógica • Las conectivas preservan la equivalencia: • Si F ≡ F ′ , entonces ¬F ≡ ¬F ′ • Si F ≡ F ′ , G ≡ G ′ y ⋆ ∈ {∨, ∧, →, ↔}, entonces F ⋆ G ≡ F′ ⋆ G′ • Propiedad de las subfórmulas equivalentes: • Sea G una subfórmula de F y F ′ la obtenida sustituyendo una ocurrencia de G en F por G ′ . Si G ≡ G ′ , entonces F ≡ F ′ Leyes de equivalencia lógica • Idempotencia: F ∨ F ≡ F , F ∧F ≡ F • Conmutatividad: F ∨ G ≡ G ∨ F , F ∧G ≡G ∧F • Asociatividad: F ∨ (G ∨ H) ≡ (F ∨ G ) ∨ H, F ∧ (G ∧ H) ≡ (F ∧ G ) ∧ H • Distributividad: F ∧ (G ∨ H) ≡ (F ∧ G ) ∨ (F ∧ H), F ∨ (G ∧ H) ≡ (F ∨ G ) ∧ (F ∨ H) • Doble negación: ¬¬F ≡ F • Leyes de De Morgan: ¬(F ∧ G ) ≡ ¬F ∨ ¬G , ¬(F ∨ G ) ≡ ¬F ∧ ¬G Forma normal negativa • Definición de forma normal negativa: • Si F es atómica, entonces F y ¬F son formas normales negativas • Si F y G son formas normales negativas, entonces (F ∧ G ) y (F ∨ G ) también lo son. • Ejemplos • (¬p ∨ q) ∧ (¬q ∨ p) es una forma normal negativa • (p → q) ∧ (q → p) no es una forma normal negativa • ¬(p ∧ q) no es una forma normal negativa Transformación a forma normal negativa • Objetivo: Dada una fórmula F , obtener una fórmula en forma normal negativa G tal que F ≡ G . • Procedimiento fnn(F ) (Seguir el orden) • Primero: Eliminación de equivalencias p ↔ q ≡ (p → q) ∧ (q → p) • Segundo: Eliminación de implicaciones p → q ≡ ¬p ∨ q • Tercero: Interiorización de negaciones ¬(p ∧ q) ≡ ¬p ∨ ¬q ¬(p ∨ q) ≡ ¬p ∧ ¬q ¬¬p ≡ p ¬(¬(p ∨ q)) ≡ p ∨ q ¬((¬p) ∨ q) ≡ p ∧ ¬q Transformación a forma normal negativa • Ejemplos: fnn(p ↔ q) = (¬p ∨ q) ∧ (¬q ∨ p) fnn((p ∨ (¬q)) → r ) = (¬p ∧ q) ∨ r fnn((p ∧ (q → r )) → s) = ((¬p ∨ (q ∧ ¬r )) ∨ s) • Propiedades: • fnn(F ) es una forma normal negativa • fnn(F ) ≡ F Forma normal conjuntiva • Disyunciones extendidas: • Si F es un literal, entonces F es una disyunción extendida • Si F y G son disyunciones extendidas, entonces (F ∨ G ) también lo es • Ejemplos: • ¬p ∨ (q ∨ ¬r ) es una disyunción extendida • ¬p ∨ (q ∧ ¬r ) no es una disyunción extendida • Fórmulas en forma normal conjuntiva: • Si F es una disyunción extendida, entonces F es una forma normal conjuntiva • Si F y G son formas normales conjuntivas, entonces (F ∧ G ) también lo es • Ejemplos: Ambas son equivalentes, pero una es FNC y otra no • (¬p ∨ q) ∧ (¬q ∨ p) es una forma normal conjuntiva • (¬p ∨ q) ∧ (q → p) no es una forma normal conjuntiva Transformación en forma normal conjuntiva • Objetivo: Dada una fórmula F , obtener una fórmula en forma normal conjuntiva G tal que F ≡ G • Procedimiento fnc(F ) • Transformación a forma normal negativa • Interiorización de las disyunciones p ∨ (q ∧ r ) ≡ (p ∨ q) ∧ (p ∨ r ) (p ∧ q) ∨ r ≡ (p ∨ r ) ∧ (q ∨ r ) Transformación en forma normal conjuntiva • Ejemplos: fnc(p ∧ (q → r )) = p ∧ (¬q ∨ r ) fnc(¬(p ∧ (q → r ))) = (¬p ∨ q) ∧ (¬p ∨ ¬r ) fnc(¬(p ↔ r )) = (((p ∨ r ) ∧ (p ∨ ¬p)) ∧ ((¬r ∨ r ) ∧ (¬r ∨ ¬p))) • Propiedades: • fnc(F ) es una forma normal conjuntiva • fnc(F ) ≡ F Forma normal disyuntiva • Conjunciones extendidas: • Si F es un literal, entonces F es una conjunción extendida • Si F y G son conjunciones extendidas, entonces (F ∧ G ) también lo es • Ejemplos: • ¬p ∧ (q ∧ ¬r ) es una conjunción extendida • ¬p ∨ (q ∧ ¬r ) no es una conjunción extendida • Fórmulas en forma normal disyuntiva: • Si F es una conjunción extendida, entonces F está en forma normal disyuntiva • Si F y G están en forma normal disyuntiva, entonces (F ∨ G ) también lo está • Ejemplos: • (¬p ∧ q) ∨ (¬q ∧ p) está una forma normal disyuntiva • (¬p ∧ q) ∨ (q → p) no está una forma normal disyuntiva Transformación en forma normal disyuntiva • Objetivo: Dada una fórmula F , obtener una fórmula en forma normal disyuntiva G tal que F ≡ G . • Procedimiento fnd(F ) • Transformación a forma normal negativa • Interiorización de las conjunciones p ∧ (q ∨ r ) ≡ (p ∧ q) ∨ (p ∧ r ) (p ∨ q) ∧ r ≡ (p ∧ r ) ∨ (q ∧ r ) Transformación en forma normal disyuntiva • Ejemplos: fnd(p ∧ (q → r )) = (p ∧ ¬q) ∨ (p ∧ r ) fnd(¬(p ∧ (q → r ))) = (¬p ∨ (q ∧ ¬r )) • Propiedades: • fnd(F ) es una forma normal disyuntiva • fnd(F ) ≡ F Ejercicios • Sea F = (p ↔ q) → [(q ∨ r ) ∧ (¬p ∨ ¬s)]. Se pide determinar fórmulas equivalentes a F en Forma Normal Negativa, Forma Normal Disyuntiva y Forma Normal Conjuntiva. • Sea F = [(p ∨ r ) ∧ (q → r )] ↔ (¬p ∨ q). Se pide determinar fórmulas equivalentes a F en Forma Normal Negativa, Forma Normal Disyuntiva y Forma Normal Conjuntiva. Ejercicios • Sea F = (p ↔ q) → [(q ∨ r ) ∧ (¬p ∨ ¬s)]. Se pide determinar fórmulas equivalentes a F en Forma Normal Negativa, Forma Normal Disyuntiva y Forma Normal Conjuntiva. F ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ (p ↔ q) → [(q ∨ r ) ∧ (¬p ∨ ¬s)] [(p → q) ∧ (q → p)] → [(q ∨ r ) ∧ (¬p ∨ ¬s)] [(¬p ∨ q) ∧ (¬q ∨ p)] → [(q ∨ r ) ∧ (¬p ∨ ¬s)] ¬[(¬p ∨ q) ∧ (¬q ∨ p)] ∨ [(q ∨ r ) ∧ (¬p ∨ ¬s)] ¬(¬p ∨ q) ∨ ¬(¬q ∨ p) ∨ [(q ∨ r ) ∧ (¬p ∨ ¬s)] (p ∧ ¬q) ∨ (q ∧ ¬p) ∨ [(q ∨ r ) ∧ (¬p ∨ ¬s)] Ejercicios • Sea F = (p ↔ q) → [(q ∨ r ) ∧ (¬p ∨ ¬s)]. Se pide determinar fórmulas equivalentes a F en Forma Normal Negativa, Forma Normal Disyuntiva y Forma Normal Conjuntiva. fnn(F ) = ⇒ ⇒ ⇒ ⇒ (p ∧ ¬q) ∨ (q ∧ ¬p) ∨ [(q ∨ r ) ∧ (¬p ∨ ¬s)] (p ∧ ¬q) ∨ (q ∧ ¬p) ∨ [(q ∧ (¬p ∨ ¬s)) ∨ (r ∧ (¬p ∨ ¬s))] (p ∧ ¬q) ∨ (q ∧ ¬p) ∨ (q ∧ ¬p) ∨ (q ∧ ¬s) ∨ ∨ (r ∧ ¬p) ∨ (r ∧ ¬s) (p ∧ ¬q) ∨ (q ∧ ¬p) ∨ (q ∧ ¬s) ∨ (r ∧ ¬p) ∨ (r ∧ ¬s) Ejercicios • Sea F = (p ↔ q) → [(q ∨ r ) ∧ (¬p ∨ ¬s)]. Se pide determinar fórmulas equivalentes a F en Forma Normal Negativa, Forma Normal Disyuntiva y Forma Normal Conjuntiva. fnn(F ) = ⇒ ⇒ ⇒ ⇒ (p ∧ ¬q) ∨ (q ∧ ¬p) ∨ [(q ∨ r ) ∧ (¬p ∨ ¬s)] [(p ∨ (q ∧ ¬p)) ∧ (¬q ∨ (q ∧ ¬p))] ∨ [(q ∨ r ) ∧ (¬p ∨ ¬s)] [(p ∨ q) ∧ (p ∨ ¬p) ∧ (¬q ∨ q) ∧ (¬q ∨ ¬p)] ∨ ∨ [(q ∨ r ) ∧ (¬p ∨ ¬s)] [(p ∨ q) ∧ (¬q ∨ ¬p)] ∨ [(q ∨ r ) ∧ (¬p ∨ ¬s)] Ejercicios • Sea F = (p ↔ q) → [(q ∨ r ) ∧ (¬p ∨ ¬s)]. Se pide determinar fórmulas equivalentes a F en Forma Normal Negativa, Forma Normal Disyuntiva y Forma Normal Conjuntiva. fnn(F ) = ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ (p ∧ ¬q) ∨ (q ∧ ¬p) ∨ [(q ∨ r ) ∧ (¬p ∨ ¬s)] [(p ∨ q) ∧ (¬q ∨ ¬p)] ∨ [(q ∨ r ) ∧ (¬p ∨ ¬s)] [(p ∨ q) ∨ ((q ∨ r ) ∧ (¬p ∨ ¬s))] ∧ ∧ [(¬q ∨ ¬p) ∨ ((q ∨ r ) ∧ (¬p ∨ ¬s))] [(p ∨ q) ∨ (q ∨ r )] ∧ [(p ∨ q) ∨ (¬p ∨ ¬s)] ∧ ∧ [(¬q ∨ ¬p) ∨ ((q ∨ r ) ∧ (¬p ∨ ¬s))] (p ∨ q ∨ r ) ∧ [(¬q ∨ ¬p) ∨ ((q ∨ r ) ∧ (¬p ∨ ¬s))] (p ∨ q ∨ r ) ∧ [(¬q ∨ ¬p) ∨ (q ∨ r )] ∧ ∧ [(¬q ∨ ¬p) ∨ (¬p ∨ ¬s)] (p ∨ q ∨ r ) ∧ (¬q ∨ ¬p ∨ ¬s) Bibliografı́a • Alonso Jiménez, J.A. Lógica computacional (Univ. de Sevilla, 1997) • Cap. 5: “Equivalencias y formas normales” • Chang, C.L. y Lee, R.C.T. Symbolic Logic and Mechanical Theorem Proving. (Academic Press, 1973) • Cap. 2: “The propositional logic” • Fitting, M. First–Order Logic and Automated Theorem Proving (2nd, ed.) (Springer, 1996) • Cap. 2: “Propositional Logic” • Genesereth, M.R. y Nilsson, N.J. Logical Foundations of Artificial Intelligence. (Morgan Kaufmann, 1987) • Cap. 2: “Propositional Logic” • Paulson, L. Logic and Proof (University of Cambridge, 2003) http://www.cl.cam.ac.uk/Teaching/2003/LogicProof • Cap. 2: “Propositional logic”