Definición de la lógica proposicional



Documentos relacionados
Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Índice Introducción Números Polinomios Funciones y su Representación. Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones

UNIDAD I: LÓGICA PROPOSICIONAL

Historia y Filosofía de la Lógica

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

Orden y estructuras algebraicas mediante nuevas tecnologías

Tema 07. LÍMITES Y CONTINUIDAD DE FUNCIONES

La ventana de Microsoft Excel

Los números racionales

EXPRESIONES ALGEBRAICAS. POLINOMIOS

RAZONAMIENTOS LÓGICOS EN LOS PROBLEMAS DE MATEMÁTICAS

Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 1: Lógica Proposicional

Lógica Proposicional IIC2212. IIC2212 Lógica Proposicional 1 / 56

Tema : ELECTRÓNICA DIGITAL

Este documento ha sido generado para facilitar la impresión de los contenidos. Los enlaces a otras páginas no serán funcionales.

Lección 24: Lenguaje algebraico y sustituciones

Tema 2 Límites de Funciones

Tema 2. Espacios Vectoriales Introducción

NÚMEROS NATURALES Y NÚMEROS ENTEROS

Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice

Ejercicios de Programación Lineal

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

1.3 Números racionales

Tema 3. Espacios vectoriales

Subespacios vectoriales en R n

PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Centro de Capacitación en Informática

Capitulo V Administración de memoria

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

Informática Bioingeniería

1. INVERSA DE UNA MATRIZ REGULAR

Estructuras de Datos y Algoritmos. Árboles de Expresión

Para representar los conjuntos, los elementos y la relación de pertenencia, mediante símbolos, tendremos en cuenta las siguientes convenciones:

Nota 2. Luis Sierra. Marzo del 2010

Teóricas de Análisis Matemático (28) - Práctica 4 - Límite de funciones. 1. Límites en el infinito - Asíntotas horizontales

El rincón de los problemas

Centro de Capacitación en Informática

Tema 7. Límites y continuidad de funciones

Teoría del Juego - Juegos Combinatoriales Imparciales

3º Grado Educación Infantil Bilingüe Números. Método Singapur y F. Bravo E R

MODELOS DE RECUPERACION

UNIDAD I NÚMEROS REALES

Estructuras de Datos y Algoritmos

1-Comportamiento de una función alrededor de un punto:

3.2 Operaciones aritmético-lógicas en Pascal

Programación Lineal. Ficha para enseñar a utilizar el Solver de EXCEL en la resolución de problemas de Programación Lineal

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

3. Equivalencia y congruencia de matrices.

MÉTODO DEL CAMBIO DE BASE PARA CÁLCULO MANUAL DE SUBREDES CON IP V4.0

VECTORES. Módulo, dirección y sentido de un vector fijo En un vector fijo se llama módulo del mismo a la longitud del segmento que lo define.

Operaciones con polinomios

x

3.8 Construcción de una ALU básica

Hoja1!C4. Hoja1!$C$4. Fila

Profr. Efraín Soto Apolinar. Números reales

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Cadenas de Markov y Perron-Frobenius

Problemas fáciles y problemas difíciles. Cuando a los niños les planteamos problemas de suma y resta, Laura dejó sin resolver el siguiente problema:

1. Producto escalar, métrica y norma asociada

Unidad 5 Utilización de Excel para la solución de problemas de programación lineal

Matemáticas para la Computación

Álgebras de Boole. Juan Medina Molina. 25 de noviembre de 2003

Los polinomios. Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x

Módulo 9 Sistema matemático y operaciones binarias

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Sistemas de numeración

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

Lección 9: Polinomios

Números Reales. MathCon c

LÍMITES Y CONTINUIDAD DE FUNCIONES

FUNCIONES DE PROPORCIONALIDAD

UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano.

Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto

Matrices Invertibles y Elementos de Álgebra Matricial

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta

LÍMITES DE FUNCIONES. CONTINUIDAD

by Tim Tran:

CAPÍTULO 10 Aplicaciones de la Derivada a Funciones Económicas

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

1. HABILIDAD MATEMÁTICA

LÍMITES Y CONTINUIDAD

Modulo 1 El lenguaje Java

Fundamentos de los Sistemas Operativos (GII) Examen Final 15 de Junio de SEGUNDA PARTE - SOLUCIONES

Operaciones Booleanas y Compuertas Básicas

ANÁLISIS DE DATOS NO NUMERICOS

Tema 5. Aproximación funcional local: Polinomio de Taylor. 5.1 Polinomio de Taylor

Profr. Efraín Soto Apolinar. Factorización

TEMA 5. ELECTRÓNICA DIGITAL

Profr. Efraín Soto Apolinar. La función lineal. y = a 0 + a 1 x. y = m x + b

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

EDWIN KÄMMERER ORCASITA INGENIERO ELECTRÓNICO

y los conos serán todos los diagramas (acá usamos la palabra en el sentido habitual, no en el que acabamos de definir) de la forma

MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas

La suma y la resta. Introducción. Capítulo

Apuntes de Matemática Discreta 9. Funciones

Métodos generales de generación de variables aleatorias

Escenas de episodios anteriores

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS

Transcripción:

Capítulo 2 Definición de la lógica proposicional 2.1. Qué es una lógica? Para los propósitos de este texto, una lógica constará siempre de dos partes: 1. Sintaxis. La definición de la sintaxis de una lógica especifica los símbolos de los que dispone el lenguaje y la manera en la que podemos combinar dichos símbolos para construir fórmulas. 2. Semántica. La definición de la semántica de una lógica incluye los elementos necesarios para asignar significados a los símbolos y a las fórmulas de dicha lógica. Concretamente, debe contener: Una definición del concepto de interpretación I, que especifica el significado que puede asignarse a cada símbolo. Una definición del concepto de satisfacción, que establece las condiciones que deben cumplirse para que una interpretación I satisfaga una fórmula F, esto es, para que podamos afirmar que la fórmula F es cierta en la interpretación I. En una lógica también suele haber (pero no necesariamente) métodos de deducción, que describen cómo a partir de unas fórmulas dadas se pueden inferir otras nuevas, dando lugar a gran diversidad de aplicaciones prácticas de las lógicas. Aquí, para comenzar, veremos un ejemplo de lógica muy simple, la lógica proposicional, que, a pesar de su sencillez, permite expresar conceptos muy importantes en el mundo de la informática y tiene muchas aplicaciones. 2.2. Lógica proposicional Sintaxis. En esta lógica, el vocabulario es un conjunto de símbolos de predicado P (cuyos elementos escribiremos normalmente como p, q, r,...). Una fórmula de la lógica proposicional sobre P se define como: Todo símbolo de predicado de P es una fórmula. Si F y G son fórmulas, entonces (F G) y (F G) son fórmulas. Si F es una fórmula, entonces F es una fórmula. Nada más es una fórmula. Interpretación. Una interpretación I sobre el vocabulario P es una función I: P {0, 1}, es decir, I es una función que, para cada símbolo de predicado, nos dice si es 1 (cierto, true) o 0 (falso, false). Satisfacción. Sean I una interpretación y F una fórmula, ambas sobre el vocabulario P. La evaluación en I de F, denotada eval I (F), es una función que por cada fórmula da un valor 0 o 1. Definimos eval I (F) para todos los casos posibles de F, usando min, max y, que denotan respectivamente el mínimo, el máximo, y la resta (sobre números del conjunto {0, 1}), donde como sabemos, 7

8 CAPÍTULO 2. DEFINICIÓN DE LA LÓGICA PROPOSICIONAL min(0, 0) = min(0, 1) = min(1, 0) = 0 y min(1, 1) = 1 max(1, 1) = max(0, 1) = max(1, 0) = 1 y max(0, 0) = 0: si F es un símbolo p de P entonces eval I (F) = I(p) eval I ( (F G) ) = min( eval I (F), eval I (G) ) eval I ( (F G) ) = max( eval I (F), eval I (G) ) eval I ( F ) = 1 eval I (F) Definimos: si eval I (F) = 1 entonces I satisface F, denotado I = F. En este caso también se dice que F es cierta en I, o que I es un modelo de F. 2.3. Explicaciones sobre la definición de la lógica proposicional Otras conectivas. En la lógica proposicional, a, y se les llama conectivas lógicas. A menudo también se consideran otras conectivas, como o. Aquí no las hemos introducido porque son expresables mediante las tres conectivas dadas. Por ejemplo, las fórmulas F G y F G pueden verse como abreviaturas de ( F G) y de (( F G) ( G F)), respectivamente. No ambigüedad, representación en árbol. Las fórmulas, vistas como cadenas de símbolos (conectivas, símbolos de predicado y paréntesis), no son ambiguas: existe una única forma de entenderlas. Formalmente: para cada fórmula F existe un único árbol que representa la construcción de F según la definición de la sintaxis de la lógica proposicional (véase el ejercicio 60). Por ejemplo, la fórmula ((p q) (r q)) sólo puede leerse como un de la fórmula (p q) y de la fórmula (r q). Éstas a su vez sólo son legibles de una única manera, y así sucesivamente. El árbol correspondiente es: p q r q Prioridades de conectivas y paréntesis. A veces podemos omitir paréntesis innecesarios: quitarlos no introduce ambigüedad. Por ejemplo, podemos escribir p q en lugar de (p q). Además se asumen las siguientes prioridades entre las conectivas; de más prioritario a menos, tenemos:. Así, podemos escribir p q r para referirnos a (p q) r, pero no podemos omitir paréntesis en (p (q r)). Nótese la similitud con la suma, el producto, y el unario en aritmética: con x y + z nos referimos a (( x) y) + z y no a, por ejemplo, (x (y + z)), ni a ( x) (y + z). Qué problemas se pueden formalizar con esta lógica? La idea intuitiva es que esta lógica sirve para representar (y razonar formalmente sobre) problemas o situaciones de la vida real que puedan expresarse mediante proposiciones, es decir, mediante afirmaciones que sólo pueden ser o bien ciertas o bien falsas.

2.4. SATISFACTIBILIDAD, TAUTOLOGÍA, CONSECUENCIA Y EQUIVALENCIA 9 Por ejemplo, si P es { llueve, hace calor, hace viento }, cada interpretación I para esta P representa una situación meteorológica del estilo de sí llueve, no hace calor y no hace viento, es decir, I(llueve) = 1, I(hace calor) = 0, I(hace viento) = 0. Con esta interpretación I podemos evaluar la fórmula F: llueve (hace calor hace viento) utilizando la definición de eval I. Así tenemos que eval I (F) = min( I(llueve), 1 max( I(hace calor), I(hace viento) ) ) = min( 1, 1 max( 0, 0 ) ) = 1. Es decir, F es cierta en I, o lo que es lo mismo I satisface F (I = F). Similarmente, si G es la fórmula: entonces I no satisface G, es decir, I = G. llueve (hace calor hace viento), Podemos listar todas las posibles interpretaciones y la evaluación en cada una de ellas de la fórmula llueve (hace calor hace viento) mediante una tabla de verdad (escribiendo p, q, r en vez de llueve, hace calor, y hace viento): p q r p (q r) 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 Vemos que en este ejemplo sólo hay una interpretación que satisface la fórmula, que es la correspondiente a una situación en la que llueve, no hace calor y no hace viento. 2.4. Satisfactibilidad, tautología, consecuencia y equivalencia Ahora podemos introducir las siguientes definiciones básicas. Estos conceptos no dependen de la lógica concreta. Se definen de manera idéntica en otras lógicas distintas a la lógica proposicional, como la lógica de primer orden. Por eso sus definiciones no se repetirán cuando introduzcamos la lógica de primer orden. 1. Una fórmula F es satisfactible si tiene algún modelo, es decir, si existe alguna interpretación I tal que I = F. Un fórmula F es insatisfactible (o es una contradicción) si no es satisfactible. 2. Una fórmula F es una tautología (o es válida), si toda interpretación es modelo de F, es decir, si para toda interpretación I tenemos I = F. 3. Sean F y G fórmulas construidas sobre un vocabulario P. F es consecuencia lógica de G si todo modelo de G también es modelo de F, es decir, si para toda interpretación I sobre P tal que I = G se tiene que I = F. Sobrecargando el operador =, esto se denotará por G = F. Una definición alternativa de consecuencia lógica es la siguiente: F es consecuencia lógica de G si para toda interpretación I sobre P se tiene que I = G o I = F. 4. Sean F y G fórmulas construidas sobre un vocabulario P. F y G son lógicamente equivalentes si tienen los mismos modelos, es decir, si para toda interpretación I sobre P se tiene que I = G si y sólo si I = F. Esto se denotará por G F. Una definición alternativa de equivalencia lógica es la siguiente: F es lógicamente equivalente a G si para toda interpretación I sobre P se tiene que eval I (F) = eval I (G).

10 CAPÍTULO 2. DEFINICIÓN DE LA LÓGICA PROPOSICIONAL Nótese que el símbolo = se refiere al concepto de satisfacción cuando a su izquierda hay una interpretación I; en ese caso, I = F denota que I satisface F. En cambio, cuando a la izquierda hay una fórmula G, el símbolo = se refiere al concepto de consecuencia lógica; así, G = F denota que todo modelo de G satisface F. Este tipo de propiedades (satisfactibilidad o tautología) de las fórmulas y relaciones (consecuencia lógica o equivalencia) entre fórmulas se plantean en diversas aplicaciones prácticas de la lógica. Por ejemplo, un fabricante de hardware puede estar interesado en saber si dos circuitos (dos fórmulas) son equivalentes, o saber si un circuito F cumple cierta propiedad G (es decir, si F = G). La lógica proposicional es especialmente interesante, porque todas estas propiedades son decidibles: para cada una de ellas existe un programa de ordenador que siempre termina y nos da una respuesta correcta sí o no. Por ejemplo, para saber si una fórmula dada F es satisfactible, podemos construir su tabla de verdad con la lista de todas las posibles interpretaciones I para el vocabulario P sobre el que F está construida, y averiguar si hay algún 1 en la columna de F, esto es, si eval I (F) = 1 para alguna I. Similarmente, tenemos F = G para dos fórmulas F y G dadas si y sólo si en la tabla de verdad (para el vocabulario P de F y G), por cada fila con un 1 en la columna de F también hay un 1 en la columna de G. Sin embargo, estos métodos basados en la tabla de verdad no son los más eficientes. En los ejercicios veremos que las cuatro propiedades y relaciones definidas anteriormente se pueden expresar en términos del problema de la satisfactibilidad (abreviado, SAT), esto es, el de determinar si una fórmula proposicional dada es satisfactible o no. Por ejemplo, para dos fórmulas F y G tenemos F = G si, y sólo si, F G es insatisfactible (véase el ejercicio 7). Por eso, en las aplicaciones prácticas se suele utilizar un SAT solver, esto es, un programa de ordenador que, dada una fórmula F, determina si F es satisfactible o no. EJERCICIOS 1. (dificultad 1) Dado un vocabulario P, cuántas interpretaciones posibles hay en función de P? 2. (dificultad 1) Demuestra que p p es insatisfactible. 3. (dificultad 1) Demuestra que p p es una tautología. 4. (dificultad 1) Escribe la tabla de verdad para las fórmulas (p (q r)) y ( p (q r)). Di, para cada una de las fórmulas, si es tautología o insatisfactible y averigua las posibles relaciones de consecuencia o equivalencia lógica entre ellas. 5. (dificultad 1) Sean F y G dos fórmulas. Es cierto que F G es tautología si y sólo si alguna de las dos fórmulas F o G lo es? Demuéstralo. 6. (T - dificultad 2) Sea F una fórmula. Demuestra que F es tautología si y sólo si F es insatisfactible. 7. (T - dificultad 2) Sean F y G dos fórmulas. Demuestra que F es consecuencia lógica de G si y sólo si G F es insatisfactible. 8. (T - dificultad 2) Sean F y G dos fórmulas. Demuestra que F es lógicamente equivalente a G si y sólo si F G es tautología si y sólo si (F G) (G F) es insatisfactible. 9. (dificultad 2) Da un ejemplo de tres fórmulas F 1, F 2, y F 3 tales que F 1 F 2 F 3 sea insatisfactible y donde cualquier conjunción de todas ellas menos una sea satisfactible. Generalízalo a n fórmulas. 10. (dificultad 1) Demuestra que son tautologías: a) (p (p q)) q b) ((p q) q) q

2.4. SATISFACTIBILIDAD, TAUTOLOGÍA, CONSECUENCIA Y EQUIVALENCIA 11 11. (dificultad 1) Demuestra de la forma más sencilla que encuentres: ( q r p) (p q) (r p) p q 12. (dificultad 1) Demuestra de la forma más sencilla que encuentres: (p q) (r p) ( q r p) p 13. (dificultad 2) Utilizaremos los siguientes símbolos de predicado para representar los hechos expresados por las siguientes frases: p representa la afirmación María abusa de la comida basura. q representa la afirmación Tomás abusa de la comida basura. r representa la afirmación María está enferma. s representa la afirmación Tomás está enfermo. t representa la afirmación María fuma. u representa la afirmación Tomás fuma. a) De acuerdo con lo anterior, expresa los hechos representados por las siguientes fórmulas en tu idioma: 1) p q 2) ( p t) r 3) (t u) (t u) 4) s (q u) b) Utilizando el vocabulario P formado por los símbolos de predicado p, q, r, t, s y u, definidos anteriormente, representa los hechos expresados por las siguientes frases mediante fórmulas de la lógica proposicional definidas sobre P. 1) Tomás no fuma salvo que María lo haga. 2) Ni Tomás ni María abusan de la comida basura. 3) María está sana si y sólo si no fuma y no abusa de la comida basura. 4) María no fuma si Tomás no lo hace. 5) Si María no fuma entonces está sana si no abusa de la comida basura. La representación del significado de una o varias frases de un lenguaje natural (catalán, inglés o castellano, por ejemplo) mediante fórmulas lógicas se conoce también como formalización del lenguaje natural. El problema de la formalización del significado de frases o textos del lenguaje natural es muy complejo, ya que el lenguaje natural es a menudo ambiguo y el significado de las frases depende mucho del contexto. No obstante, en los ejercicios de formalización del lenguaje natural que propondremos en este texto trataremos de evitar en la medida de lo posible la ambigüedad del lenguaje natural, forzando un poco la expresión cuando sea necesario. 14. (dificultad 3) Se define la longitud de una fórmula F, denotada F, como el número de símbolos conectivas, paréntesis y símbolos de predicado en la fórmula F vista como cadena de símbolos. Sea F una fórmula que no contiene la conectiva. Demuestra que si p(f) es el número de símbolos de predicado en F (contando repeticiones), entonces F = 4p(F) 3. 15. (dificultad 3) Dada una fórmula F, si c(f) denota el número de sus conectivas binarias y (contando repeticiones) y p(f) el número de sus símbolos de predicado (contando repeticiones), demuestra que p(f) = c(f) + 1. 16. (dificultad 2) Si F G es tautología y F es tautología, entonces G es tautología? Demuéstralo.

12 CAPÍTULO 2. DEFINICIÓN DE LA LÓGICA PROPOSICIONAL 17. (dificultad 2) Si F G es satisfactible y F es satisfactible, entonces G es satisfactible? Demuéstralo. 18. (dificultad 2) Si F G es tautología y F satisfactible, entonces G es satisfactible? Demuéstralo. 19. (dificultad 2) Es cierto que F (G H) es satisfactible si y sólo si al menos una de las dos fórmulas F G y F H es satisfactible? Demuéstralo. 20. (dificultad 2) Es cierto que si F y G son fórmulas, entonces F = G o F = G? 21. (dificultad 2) Es posible que existan fórmulas F y G tales que F = G y F = G? 22. (dificultad 2) Es cierto que si F = G entonces F F G? Demuéstralo. 23. (dificultad 2) Es cierto que si F G es una tautología entonces G = F? Demuéstralo. 24. (dificultad 2) Demuestra que la equivalencia lógica es una relación de equivalencia en el conjunto de las fórmulas proposicionales definidas sobre un vocabulario P. Demuestra también que es una relación compatible con las operaciones lógicas, y ; es decir: a) Si F G entonces F G. b) Si F 1 G 1 y F 2 G 2 entonces F 1 F 2 G 1 G 2. c) Si F 1 G 1 y F 2 G 2 entonces F 1 F 2 G 1 G 2. 25. (dificultad 2) Demuestra que la consecuencia lógica = es una relación que cumple las propiedades reflexiva y transitiva. Es una relación de orden? 26. (T - dificultad 2) Demuestra las siguientes equivalencias entre fórmulas: F F F idempotencia de F F F idempotencia de F G G F conmutatividad de F G G F conmutatividad de F (F G) F absorción 1 F (F G) F absorción 2 (F G) H F (G H) asociatividad de (F G) H F (G H) asociatividad de (F G) H (F H) (G H) distributividad de respecto de (F G) H (F H) (G H) distributividad de respecto de F F doble negación (F G) F G ley de De Morgan 1 (F G) F G ley de De Morgan 2 Si F es tautología entonces: F G G ley de tautología 1 F G F ley de tautología 2 Si F es insatisfactible entonces: F G F ley de insatisfactible 1 F G G ley de insatisfactible 2 27. (dificultad 2) Demuestra que si F G 1 = H y F G 2 = H entonces F (G 1 G 2 ) = H. Es cierto el recíproco? 28. (dificultad 2) Definimos recursivamente las subfórmulas de una fórmula F de la forma siguiente: Si F es un símbolo de predicado p, entonces p es su única subfórmula.

2.4. SATISFACTIBILIDAD, TAUTOLOGÍA, CONSECUENCIA Y EQUIVALENCIA 13 Si F es G, entonces las subfórmulas de F son F y las subfórmulas de G. Si F es de la forma (G H) o de la forma (G H), entonces las subfórmulas de F son F y las subfórmulas de G y las de H (contando con repetición, es decir, todas las apariciones). Demuestra que para toda fórmula F, el número de subfórmulas de F, denotado nsf (F), cumple que nsf (F) F, donde F es la longitud de F. 29. (dificultad 3) Definimos recursivamente la profundidad de una fórmula F, denotada prof (F), de la manera siguiente: Si p es un símbolo de predicado, prof (p) = 0. Si F es de la forma G, entonces prof (F) = 1 + prof (G). Si F es de la forma (G H) o (G H), entonces prof (F) = 1 + max( prof (G), prof (H) ). Demuestra que una fórmula de profundidad d tiene como mucho 2 d símbolos de predicado (contados con repetición). 30. (dificultad 2) Demuestra que si en una fórmula F no aparece la conectiva entonces F es satisfactible. 31. (T - dificultad 4) Demuestra que si en una fórmula F sustituimos una aparición de una subfórmula G por otra G lógicamente equivalente a G, obtenemos una nueva fórmula F que es lógicamente equivalente a F. Este resultado tiene un interés obvio para poder manipular fórmulas, por lo que tiene nombre: es el Lema de Sustitución. 32. (dificultad 2) Demuestra (utilizando los resultados de los ejercicios anteriores) que q (p ( p r)) es lógicamente equivalente a (q p) ((q r) (p p)). 33. (dificultad 3) En el ejercicio 26 se ha visto que y son asociativos. Por este motivo, dadas n fórmulas (con n 1) F 1, F 2,..., F n, las fórmulas: ((... ((F 1 F 2 ) F 3 )... F n 1 ) F n ) y ((... ((F 1 F 2 ) F 3 )... F n 1 ) F n ) se suelen representar en forma compacta respectivamente como: n i=1 F i y n F i. Usando las leyes de De Morgan, demuestra las siguientes generalizaciones de estas leyes: i=1 n F i i=1 n F i n F i i=1 i=1 n F i donde n 2. i=1 34. (dificultad 3) Demuestra para n 1 las dos siguientes equivalencias lógicas: n n n n F i G (F i G) y F i G (F i G). i=1 i=1 i=1 i=1 35. (dificultad 3) Demuestra que para toda n 1, dadas fórmulas F 1,..., F n y G tenemos: (F 1 (F 2... (F n G)...) n F i G. i=1

14 CAPÍTULO 2. DEFINICIÓN DE LA LÓGICA PROPOSICIONAL 36. (dificultad 2) a) Demuestra que para todo par de fórmulas F y G se cumple que F = G si y sólo si F G es tautología. Este resultado es bastante útil y se conoce como el Teorema de la Deducción. b) Demuestra que para toda n 1, dadas fórmulas F 1,..., F n y G se cumple que n i=1 F i = G si y sólo si (F 1 (F 2 (... (F n G)))) es tautología. 37. (dificultad 2) Demuestra que para todas las fórmulas F, G, H se cumple que F G = H si y sólo si F = (G H). 38. (dificultad 3) Es cierto que para toda fórmula F existe otra fórmula lógicamente equivalente G las únicas conectivas de la cual sean y? Demuestra formalmente tu respuesta. 39. (dificultad 3) Definimos una nueva conectiva nor con la semántica siguiente: eval I (F nor G) = 1 max(eval I (F), eval I (G)). a) Demuestra que para toda fórmula F, F (F nor F). b) Demuestra que para todo par de fórmulas F y G, se cumple F G (F nor G). c) Demuestra que, para toda fórmula F donde sólo aparecen las conectivas, i, existe una fórmula F equivalente a F donde sólo aparece la conectiva nor. 40. (dificultad 2) Supongamos que P = 100 y que nos interesa determinar si una fórmula F construida sobre P es satisfactible o no. Si el algoritmo está basado en un análisis de la tabla de verdad, y evaluar F en una interpretación I dada cuesta un microsegundo (10 6 segundos), cuántos años tardará? En el capítulo 3 veremos técnicas que habitualmente dan mejores resultados. 41. (dificultad 2) Una función booleana de n entradas es una función f : {0, 1} n {0, 1}, es decir, una función que toma como entrada una cadena de n bits y devuelve un bit. Cuántas funciones booleanas de n entradas hay? 42. (dificultad 2) Cuántas fórmulas lógicamente no-equivalentes hay en función de P? 43. (dificultad 3) Escribe en una tabla de verdad las 16 funciones booleanas de 2 entradas. Cuántas de ellas sólo dependen de una de las dos entradas? Cuántas dependen de cero entradas? Las otras, vistas como conectivas lógicas, tienen algún nombre? Ya sabemos que podemos expresar cualquier función booleana con el conjunto de tres conectivas {,, }, es decir, cualquier función booleana es equivalente a una fórmula construida sobre estas tres conectivas. Es cierto esto también para algún conjunto de sólo dos de las 16 funciones? 44. (dificultad 3) Demuestra que cualquier función booleana de dos entradas se puede expresar con sólo nor o bien con sólo nand, donde nor(f, G) es (F G), y nand(f, G) es (F G). 45. (dificultad 3) Tres estudiantes A, B y C son acusados de introducir un virus en las salas de ordenadores de la Facultad de Informática. Durante el interrogatorio, las declaraciones son las siguientes: A dice: B lo hizo y C es inocente. B dice: Si A es culpable entonces C también lo es. C dice: Yo no lo hice, lo hizo al menos uno de los otros. a) Son las tres declaraciones contradictorias? b) Asumiendo que todos son culpables, quién o quiénes mintieron en la declaración? c) Asumiendo que nadie mintió, quién es inocente y quién es culpable?

2.4. SATISFACTIBILIDAD, TAUTOLOGÍA, CONSECUENCIA Y EQUIVALENCIA 15 46. (dificultad 2) Inventa y define formalmente alguna otra lógica distinta a la lógica proposicional. Por ejemplo, si las interpretaciones son funciones I: P {0, 1, }, es decir, también pueden dar indefinido, se puede adaptar la noción de satisfacción de manera razonable, aunque la respuesta ya no será binaria: la evaluación de una fórmula F en una interpretación I podrá dar 1 (I satisface F) o 0 (I no satisface F) o (indefinido). 47. (dificultad 2) Como el ejercicio anterior, pero considerando I: P [0... 1], es decir, la interpretación de un símbolo p es una probabilidad (un número real entre 0 y 1). En este caso, la evaluación de una fórmula F en una interpretación I puede dar algo (remotamente) parecido a la probabilidad de satisfacción de F en I. En la lógica que has definido, la evaluación de F en una I determinada, y la de F F en esa misma I, dan el mismo resultado? 48. (dificultad 2) Tienes delante de ti tres cajas cerradas, dos de ellas vacías y una llena de oro. La tapa de cada caja contiene una afirmación respecto de su contenido. La caja A dice El oro no está aquí, la caja B dice El oro no está aquí y la caja C dice El oro está en la caja B. Si sabemos que una y sólo una las afirmaciones es cierta, qué caja contiene el oro? 49. (dificultad 3) Considera el siguiente fragmento de código, que devuelve un booleano: int i; bool a, b;... if (a and i>0) return b; else if (a and i<=0) return false; else if (a or b) return a; else return (i>0); Simplifícalo sustituyendo los valores de retorno por un solo valor de retorno que sea una expresión booleana en i > 0, a y b: int i; bool a, b; return...; 50. (dificultad 2) Demuestra que una interpretación I satisface la fórmula (( (p 1 p 2 ) ) p n ) (donde n 1) si y sólo si asigna el valor 0 a un número par de símbolos de predicado p 1,..., p n. 51. (dificultad 2) Dada una fórmula F, se define la siguiente sucesión de fórmulas: (i) F 0 es F; (ii) F n es (Fn 1 F) ( F n 1 F) si n > 0. Demuestra que si n es par entonces F n F, y si n es impar entonces F n es insatisfactible. 52. (dificultad 3) a) La fórmula (((p q) p) p) es una tautología? b) Si definimos recursivamente F 0 como (p q) y F n+1 como (F n p), para qué valores de n es F n una tautología? 53. (dificultad 2) Demuestra formalmente que dadas fórmulas F 1,..., F n con n 2 tales que: se cumple F 1 = F n. F 1 = F 2,..., F n 1 = F n,

16 CAPÍTULO 2. DEFINICIÓN DE LA LÓGICA PROPOSICIONAL 54. (dificultad 3) Sea F la fórmula resultante de intercambiar en F los símbolos, y reemplazar cada símbolo de predicado por su negación. Demuestra que F es lógicamente equivalente a F. 55. (dificultad 2) Desde este ejercicio hasta el ejercicio 60, sólo consideraremos fórmulas proposicionales que sigan estrictamente la sintaxis dada en la sección 2.2, sin omisiones de paréntesis. Dada una cadena de símbolos ω, escribimos pa(ω) para denotar el número de paréntesis de abrir que hay en ω. Similarmente, escribimos pc(ω) para los de cerrar. Demuestra que para toda fórmula F tenemos pa(f) = pc(f). 56. (dificultad 3) Un prefijo propio de una fórmula F es una cadena de símbolos no vacía ω tal que F se puede escribir como una concatenación F = ωω, siendo ω otra cadena de símbolos no vacía. Demuestra que para todo prefijo propio ω de una fórmula proposicional F, entonces o bien ω es una cadena de signos de negación, o bien pa(ω) > pc(ω) (es decir, ω contiene más veces el paréntesis abierto que el cerrado). 57. (dificultad 2) Demuestra que ninguna fórmula proposicional F está formada exclusivamente por signos de negación. 58. (dificultad 1) Demuestra que un prefijo propio de una fórmula proposicional nunca es a su vez una fórmula proposicional. 59. (dificultad 2) Sea F una fórmula de la forma (F 1 F 2 ), donde es o, y F 1, F 2 son fórmulas. Demuestra que, F 1 y F 2 son únicos con estas propiedades. 60. (T - dificultad 4) Demuestra que las fórmulas de la lógica proposicional no son ambiguas: que para cada fórmula F (vista como una cadena de símbolos: conectivas, símbolos de predicado, y paréntesis) podemos construir un árbol que representa la construcción de F según la definición de la sintaxis de la lógica proposicional, y que ese árbol es único. 61. (dificultad 4) Responde los siguientes apartados: a) Sean F 1, F 2, F 1 y F 2 fórmulas. Demuestra que si F 1 = F 1 y F 2 = F 2, entonces F 1 F 2 = F 1 F 2 y F 1 F 2 = F 1 F 2. b) Sea F una fórmula donde y son las únicas conectivas. Demuestra que si en F reemplazamos una aparición de una subfórmula G por otra G tal que G = G, obtenemos una nueva fórmula F tal que F = F. c) Se puede extender el resultado anterior a fórmulas F donde también pueda aparecer? Justifica tu respuesta. 62. (dificultad 3) Escribiremos F < G si F y G son dos fórmulas proposicionales definidas a partir de un mismo vocabulario P tales que F = G pero G = F. a) Si F < G, se puede afirmar que alguna de estas dos fórmulas tiene más modelos que la otra? b) Sea F la fórmula (p q r) ( p q r) ( p q r) y G la fórmula ( p q r p). Construye, si existen, dos fórmulas H 1 y H 2 tales que F < H 1 < H 2 < G. Construye, si existen, tres fórmulas H 1, H 2 y H 3 tales que F < H 1 < H 2 < H 3 < G. c) Dada una fórmula F con m modelos y otra fórmula G con m modelos tales que F < G. Cuál es el mayor natural k tal que existe una cadena de la forma F < H 1 <... < H k < G? d) Si F es una contradicción y G una tautología. Cuál es el mayor natural k tal que existe una cadena de la forma F < H 1 <... < H k < G? Y si F es una tautología y G una contradicción?

2.4. SATISFACTIBILIDAD, TAUTOLOGÍA, CONSECUENCIA Y EQUIVALENCIA 17 63. (dificultad 3) Dada una fórmula proposicional F sobre un vocabulario P, se define su fórmula complementaria F c como el resultado de reemplazar dentro de F cada aparición de un símbolo de predicado p por p. También definimos, dada una interpretación I : P {0, 1}, su interpretación complementaria I c : P {0, 1} como I c (p) = 1 I(p) para todo p P. Demuestra que para toda fórmula F y para toda interpretación I se cumple eval I (F) = eval I c(f c ). 64. (dificultad 3) Sean F y G dos fórmulas definidas sobre un vocabulario que contiene el símbolo de predicado p. Sea F la fórmula obtenida a partir de F al reemplazar todas las apariciones de p por G. a) Para toda interpretación I, definimos la interpretación I como I (q) = I(q) si q p y I (p) = eval I (G). Demuestra que para toda fórmula F se cumple eval I (F ) = eval I (F). b) Demuestra que si F es una tautología, entonces F también. 65. (dificultad 3) Dadas dos interpretaciones I e I sobre un vocabulario P, escribimos I I si para todo símbolo p de P se cumple I(p) I (p), es decir, I(p) es menor o igual que I (p) vistos como números naturales. Decimos que una fórmula F es monótona cuando para todo par de interpretaciones I e I, si I I entonces eval I (F) eval I (F), es decir, eval I (F) es menor o igual que eval I (F) vistos como números naturales. a) Demuestra que toda fórmula que no contiene negaciones es monótona. b) Es cierto que si F es una fórmula monótona entonces no contiene negaciones? Demuéstralo.

Capítulo 3 Deducción en la lógica proposicional 3.1. Formas normales y cláusulas Fórmulas como conjuntos. Sea F una fórmula construida sólo mediante la conectiva a partir de subfórmulas F 1... F n. Por ejemplo, F puede ser la fórmula (F 1 ((F 2 (F 3 F 4 )) F 5 )). Por las propiedades de asociatividad, conmutatividad e idempotencia de podemos escribir F equivalentemente como F 1... F n, o incluso como un conjunto {F 1,..., F n }, porque no importan los paréntesis (asociatividad), ni el orden de los elementos (conmutatividad), ni los elementos repetidos (idempotencia). Lo mismo pasa con la conectiva. Literal. Un literal es un símbolo de predicado p (literal positivo) o un símbolo de predicado negado p (literal negativo). CNF. Una fórmula está en forma normal conjuntiva (CNF, del inglés Conjunctive Normal Form) si es una conjunción de disyunciones de literales, es decir, si es de la forma: (l 1,1... l 1,k1 )... (l n,1... l n,kn ), donde cada l i, j es un literal. DNF. Una fórmula está en forma normal disyuntiva (DNF, del inglés Disjunctive Normal Form) si es una disyunción de conjunciones de literales, es decir, si es de la forma: (l 1,1... l 1,k1 )... (l n,1... l n,kn ), donde cada l i, j es un literal. Cláusula. Una cláusula es una disyunción de literales, es decir, una fórmula de la forma l 1... l n, donde cada l i es un literal, o, equivalentemente, una fórmula p 1... p m q 1... q n, donde p i y q j son símbolos de predicado. Conjunto de cláusulas. Una fórmula en CNF es pues una conjunción de cláusulas que puede verse como un conjunto de cláusulas. Cláusula vacía. La cláusula vacía es una cláusula l 1... l n donde n = 0, es decir, es la disyunción de cero literales. La cláusula vacía se suele denotar por. Nótese que, según la sintaxis de la lógica proposicional dada en el capítulo 2, la cláusula vacía no es una fórmula. Por eso, en este capítulo asumiremos las siguientes extensiones de la sintaxis y de la semántica. En cuanto a la sintaxis, definimos que si n 0 y F 1,..., F n son fórmulas, entonces también son fórmulas i 1..n F i y i 1..n F i. En cuanto a la extensión correspondiente de la semántica, si I es una interpretación: eval I ( i 1..n F i ) = min{ 1, eval I (F 1 ),..., eval I (F n ) } y eval I ( i 1..n F i ) = max{ 0, eval I (F 1 ),..., eval I (F n ) }. 19

20 CAPÍTULO 3. DEDUCCIÓN EN LA LÓGICA PROPOSICIONAL Intuitivamente, esta definición refleja que la conjunción es cierta en I si lo son las n fórmulas; si n = 0, la conjunción es trivialmente cierta. Similarmente, la disyunción es cierta si lo es al menos una; si n = 0, la disyunción es trivialmente falsa. Cláusula de Horn. Una cláusula de Horn es una cláusula p 1... p m q 1... q n con m 1, es decir, que tiene como máximo un literal positivo. EJERCICIOS 1. (T - dificultad 2) Demuestra que, para toda fórmula F, hay al menos una fórmula lógicamente equivalente que está en DNF. Ídem para CNF. Ayuda: obtener las fórmulas en CNF y DNF a partir de la tabla de verdad para F. 2. (T - dificultad 3) Da una manera de calcular una fórmula F en CNF para una fórmula F dada (con F F) sin necesidad de construir previamente la tabla de verdad. Ayuda: aplica equivalencias lógicas como las leyes de De Morgan y la distributividad y el Lema de Sustitución. 3. (dificultad 3) Cada fórmula de la lógica proposicional puede verse como un circuito electrónico que tiene una puerta lógica por cada conectiva,, que aparezca en la fórmula. El problema del diseño lógico consiste en encontrar un circuito adecuado que implemente una función booleana dada. Para conseguir circuitos rápidos, nos va bien representar la función booleana como una fórmula en CNF (o DNF), porque la profundidad del circuito será como máximo tres. Pero también es importante utilizar el mínimo número de conectivas (puertas lógicas). Los métodos para obtener CNFs vistos en los ejercicios 1 y 2, nos dan la CNF más corta en ese sentido? Se te ocurre alguna mejora? 4. (dificultad 1) La cláusula vacía es el caso más sencillo de fórmula insatisfactible. Una CNF que es un conjunto de cero cláusulas, es satisfactible o insatisfactible? 5. (dificultad 2) Demuestra que una cláusula es una tautología si, y sólo si, contiene a la vez p y p para un cierto símbolo de predicado p. 6. (dificultad 2) Sea S un conjunto de cláusulas con S. Demuestra que S es satisfactible (dando un modelo para S ) en cada una de las siguientes situaciones: a) Toda cláusula de S tiene algún literal positivo. b) Toda cláusula de S tiene algún literal negativo. c) Para todo símbolo de predicado p se cumple que: o bien p aparece sólo en literales positivos en S, o bien p aparece sólo en literales negativos en S. 7. (dificultad 2) Dados n símbolos de predicado: a) Cuántas cláusulas distintas (como conjuntos de literales) hay? b) Cuántas de estas cláusulas son insatisfactibles? c) Cuántas cláusulas distintas y que no son tautologías hay? d) Cuántas cláusulas distintas que contienen exactamente un literal por cada símbolo de predicado hay? 8. (dificultad 2) Dados n símbolos de predicado, cuántas cláusulas de Horn distintas (vistas como conjuntos de literales) se pueden formar?

3.2. NOCIONES INFORMALES DE DECIDIBILIDAD Y COMPLEJIDAD 21 9. (T - dificultad 5) Propón un algoritmo eficiente que, dada una fórmula F, retorna un conjunto de cláusulas S (no necesariamente definido sobre los mismos símbolos de predicado que F) con a lo sumo 3 literales por cláusula, que es equisatisfactible con F (es decir, que es satisfactible si y sólo si F lo es). Ayuda: introduce un símbolo de predicado para cada nodo interno, o sea conectiva, o de la fórmula, y escribe cláusulas que expresen que el símbolo es equivalente a la conjunción, disyunción o negación respectivamente, de los símbolos correspondientes a sus hijos. Esta es la llamada transformación de Tseitin. 10. (dificultad 2) Sea S un conjunto de cláusulas de Horn con S. Demuestra que S es satisfactible (dando un modelo para S ) si no hay ninguna cláusula que sólo conste de un único literal positivo. 11. (dificultad 2) Demuestra que el enunciado del ejercicio 10 es falso cuando S no es de Horn. 12. (dificultad 3) Definimos: un literal en una fórmula en CNF es puro si aparece o bien siempre negado o bien siempre sin negar. Además, se dice que una cláusula C es redundante si contiene al menos un literal puro. Demuestra que, si C es una cláusula redundante en la CNF {C 1,..., C n, C }, entonces esta CNF es satisfactible si y sólo si {C 1,..., C n } es satisfactible. 13. (dificultad 2) Sea P un conjunto de n símbolos de predicado. a) Cuántos modelos (interpretando todos los símbolos de P) tiene una conjunción l 1... l k de k literales distintos? b) Cuántos modelos (interpretando todos los símbolos de P) tiene una cláusula l 1... l k de k literales distintos? 14. (dificultad 3) Sea m j=1 D j una fórmula en DNF (m 1), donde cada D j es una conjunción de literales que no contiene r y r a la vez para ningún símbolo de predicado r. Demuestra que si dicha DNF es lógicamente equivalente a la fórmula (p 1 q 1 )... (p n q n ), entonces para cada j entre 1 y m y para cada i entre 1 y n, en D j aparece por lo menos uno de los literales p i o q i. 15. (dificultad 4) Demuestra que la fórmula (p 1 q 1 )... (p n q n ) tiene exactamente 3 n modelos sobre el vocabulario formado por los símbolos de predicado p 1, q 1,..., p n, q n. 3.2. Nociones informales de decidibilidad y complejidad Para una interpretación I y una fórmula F dadas, podemos determinar eficientemente mediante un programa de ordenador si I satisface F o no. En cambio, son muy costosos otros problemas, como el de decidir si una fórmula F dada es satisfactible. Para comprender mejor qué queremos decir con palabras como eficiente o costoso, aquí a continuación damos a nivel intuitivo e informal algunas nociones sobre el coste de resolver ciertos problemas. Consideraremos algoritmos, o programas, expresados en un lenguaje de programación como C, Java, o C++, que, para resolver un problema computacional, toman una entrada y calculan una salida mediante una secuencia de pasos de cómputo. Cada paso se supone que es muy sencillo, por ejemplo, una instrucción de lenguaje máquina o un número pequeño acotado de ellas (como veremos, esta distinción no es muy relevante). En los problemas llamados decisionales, la salida es una respuesta de tipo sí/no. Por ejemplo, es decisional el problema cuya entrada es una lista de números, y que consiste en determinar si su suma es par o no. En cambio, no es decisional el problema de escribir la suma de los números, ni el de escribir la lista de números ordenados de menor a mayor. Se dice que un problema decisional es decidible si existe un programa de ordenador que siempre termina y nos da una respuesta correcta o bien sí o bien no. A este programa se le llama procedimiento de decisión. Como vimos en el capítulo 2, la lógica proposicional es especialmente interesante porque todos

22 CAPÍTULO 3. DEDUCCIÓN EN LA LÓGICA PROPOSICIONAL los problemas decisionales típicos (por ejemplo, si una fórmula es satisfactible, o si es tautología, etc.) son decidibles. Por ejemplo, consideremos el problema decisional cuya entrada son dos fórmulas F y G, y que consiste en determinar si son lógicamente equivalentes o no. Un procedimiento de decisión que resuelve este problema consiste simplemente en construir su tabla de verdad, o sea la lista de todas las posibles interpretaciones I para el conjunto P de símbolos de predicado que aparecen en F y G, y averiguar si para todas ellas tenemos que eval I (F) = eval I (G). Esto es posible en la lógica proposicional porque se cumplen dos propiedades básicas: por un lado, para un conjunto de símbolos de predicado P finito, el número de interpretaciones es finito ( aunque puede ser muy grande!); y por otro, dada una interpretación I y una fórmula F, es también decidible si I satisface F. Como veremos, estas dos propiedades no se suelen tener en lógicas con mayor poder expresivo, como por ejemplo la lógica de primer orden, que permiten describir/formalizar más situaciones o problemas de la vida real. 3.2.1. Lo importante es el coste como función del tamaño de la entrada Volvamos ahora a las cuestiones de eficiencia. Aquí consideraremos sólo el coste computacional en cuanto a tiempo, es decir, el número de pasos de cómputo, sin entrar en otros recursos como la cantidad de memoria de ordenador necesaria. Evidentemente, para todo problema resulta más costoso (son necesarios más pasos) resolverlo cuando la entrada es grande que cuando es pequeña. Por ejemplo, cuesta más sumar un millón de números que sumar cien. A modo de ejemplo, supongamos que tenemos en memoria una tabla int A[N] con N números enteros distintos, ordenados de menor a mayor, y necesitamos un algoritmo que encuentre en qué posición de la tabla se encuentra el número cero. Veamos dos posibles soluciones. Algoritmo 1. Búsqueda lineal: podemos recorrer la tabla con un bucle como: while (A[i]!=0) i++; En el caso peor, que se da cuando el cero es el último elemento, el número de pasos será proporcional al número de veces que se ejecuta el bucle, que es proporcional a N, por lo que se dice que el algoritmo 1 tiene coste lineal en N, o que funciona en tiempo lineal, o simplemente, que es lineal. Algoritmo 2. Búsqueda dicotómica: puesto que A está ordenado, también podemos primero inspeccionar sólo el elemento central A[N/2]; así ya sabemos en qué mitad de la tabla está el cero (a la izquierda o a la derecha de A[N/2]); luego inspeccionamos el centro de esa mitad, y así sucesivamente, reduciendo en cada iteración a la mitad el trozo de tabla donde tenemos que buscar. No es difícil ver que el número máximo de iteraciones será proporcional a log N, el logaritmo en base 2 de N. Por ejemplo, si N 2 5 = 32, en 5 iteraciones encontraremos dónde está el cero. Por eso se dice que el algoritmo 2 tiene coste logarítmico en N (o que funciona en tiempo logarítmico, o que es logarítmico). Si la N es pequeña, no está claro cuál de estos dos algoritmos es mejor. Quizás en ese caso la opción 1 es más rápida porque probablemente necesita menos instrucciones por cada iteración. Pero, aunque el algoritmo 2 necesite muchas más instrucciones por iteración que el algoritmo 1, a partir de cierto tamaño de la entrada N suficientemente grande, siempre será mejor un algoritmo logarítmico que uno lineal. Por ejemplo, si N 2 10 = 1024, el algoritmo 2 será más rápido incluso si cada iteración suya necesita 100 veces más pasos que cada iteración del algoritmo 1! Por eso, lo que verdaderamente importa es cuán rápido crece el coste del algoritmo en función del tamaño de la entrada, más que el número exacto de pasos de cómputo que necesita, o el número exacto de instrucciones de lenguaje máquina o ciclos de reloj de procesador que necesite cada paso.

3.3. RESOLUCIÓN. CORRECCIÓN Y COMPLETITUD 23 Por orden creciente de coste, algunas funciones típicas son: log N (coste logarítmico); N (lineal); N 2 (cuadrático: el coste es proporcional a cierto polinomio de grado 2, por ejemplo, 7N 2 + 3N); N 3 (cúbico, un polinomio de grado 3); o incluso 2 N (exponencial). Si el coste es proporcional a un polinomio en N, o inferior (logarítmico, lineal, cuadrático, cúbico, etc.), se dice que es polinómico. Es fácil ver que, conforme crece la N, el coste de los algoritmos exponenciales crece muchísimo más deprisa que los polinómicos. Por ejemplo, 1000 2 es sólo un millón, mientras que 2 1000 es muy superior al número de átomos que hay en el universo! Por eso, para un algoritmo exponencial siempre habrá entradas relativamente pequeñas que resulten inabordables; tener un superordenador con un millón de procesadores sólo podrá producir mejoras en un factor constante de un millón, lo cual es irrelevante si un simple incremento en 1 del tamaño de la entrada duplica el número de pasos necesarios. EJERCICIOS 16. (dificultad 3) Para una fórmula en DNF, cuál es el mejor algoritmo posible para decidir si es satisfactible? Qué coste tiene? 17. (dificultad 3) Demuestra que existe una fórmula F tal que toda DNF lógicamente equivalente a F tiene tamaño exponencial en F, la longitud de F. Ayuda: utiliza los ejercicios anteriores para demostrar que cualquier DNF lógicamente equivalente a la fórmula (p 1 q 1 )... (p n q n ) es exponencialmente larga. 3.3. Resolución. Corrección y completitud Aquí denotaremos las cláusulas por mayúsculas C o D y escribiremos l C para denotar una cláusula que tiene un literal l y en la que C es la disyunción (la cláusula) de los demás literales. Resolución. Una regla deductiva nos dice cómo obtener (o deducir) ciertas fórmulas nuevas a partir de fórmulas dadas. Una regla deductiva concreta es la resolución: dadas dos cláusulas de la forma p C y p D (las premisas), por resolución se deduce la nueva cláusula C D (la conclusión o resolvente). Esto se suele escribir como: p C p D C D Resolución (para la lógica proposicional) Clausura por resolución. Sea S un conjunto de cláusulas. La clausura de S por resolución, denotada por Res(S ), es el conjunto de todas las cláusulas que se pueden obtener con cero o más pasos de resolución a partir de cláusulas de S. Formalmente se define de la siguiente manera. Sea Res 1 (S ) el conjunto de las cláusulas que se pueden obtener en exactamente un paso de resolución a partir de S : Res 1 (S ) = {C D p C S, p D S } es decir, el conjunto de todas las cláusulas C D tales que, para algún símbolo de predicado p, hay cláusulas en S de la forma p C y p D. Ahora definimos recursivamente para toda i 0: y finalmente: S 0 = S S i+1 = S i Res 1 (S i ) Res(S ) = S i. Nótese que esta definición nos da una manera efectiva (práctica) de construir Res(S ). i=0

24 CAPÍTULO 3. DEDUCCIÓN EN LA LÓGICA PROPOSICIONAL Clausura por una regla deductiva cualquiera. Sea R una regla deductiva (como, por ejemplo, la resolución) y sea S un conjunto de fórmulas. Denotamos por R(S ) la clausura de S por R: el conjunto de todas las fórmulas que se pueden obtener con cero o más pasos de deducción de R a partir de fórmulas de S. Corrección y completitud de una regla deductiva. Si S es un conjunto de fórmulas {F 1... F n }, a menudo consideraremos S como la conjunción F 1... F n ; por ejemplo, escribiremos S = F en vez de F 1... F n = F. Corrección: una regla deductiva R es correcta si mediante R sólo podemos deducir fórmulas nuevas que son consecuencias lógicas de las que ya tenemos. Esto es, si para toda fórmula F y todo conjunto de fórmulas S, se cumple que F R(S ) implica S = F. Completitud: una regla deductiva R es completa si mediante R podemos deducir todas las consecuencias lógicas de las fórmulas que ya tenemos. Esto es, si para toda fórmula F y todo conjunto de fórmulas S, se cumple que S = F implica F R(S ). Nótese que es fácil definir una regla deductiva correcta: basta con decir que ninguna fórmula se deduce. Igualmente, es fácil definir una regla deductiva completa: basta con decir que toda fórmula se deduce. Lo difícil es definir una regla deductiva R que sea tanto correcta como completa; en ese caso tenemos S = F si y sólo si F R(S ), es decir, que R nos permite deducir todas las consecuencias lógicas, y nada más. Propiedades de la resolución. La resolución es correcta. Es decir, si S es un conjunto de cláusulas y F es una cláusula, entonces F Res(S ) implica S = F (véase el ejercicio 21). La resolución no es completa. Es decir, existen S un conjunto de cláusulas y F una cláusula tal que S = F pero F Res(S ) (véase el ejercicio 24). Sin embargo, la resolución es refutacionalmente completa. Es decir, si S es insatisfactible entonces Res(S ), o sea, existe una demostración de la insatisfactibilidad de S (o refutación) por resolución (véase el ejercicio 26). Nótese que la corrección y la completitud refutacional de la resolución bastan para que la regla de resolución se pueda utilizar para resolver computacionalmente el problema SAT, esto es, el problema de determinar si un conjunto de cláusulas S es satisfactible o no. El método a seguir es el siguiente: se calcula la clausura Res(S ) (que es finita, véase el ejercicio 22). Si Res(S ), entonces por la corrección de la resolución podemos concluir que S es insatisfactible. Si en cambio Res(S ), por la completitud refutacional de la resolución podemos afirmar que S es satisfactible. EJERCICIOS 18. (dificultad 2) Utiliza resolución para demostrar que p q es una consecuencia lógica de: ((t q) ( r s) (p u) ( t r) (u s)) 19. (dificultad 2) Demuestra por resolución que son tautologías: a) p (q p) b) (p (p q)) q c) ((p q) q) p d) ((p q) q) q

3.3. RESOLUCIÓN. CORRECCIÓN Y COMPLETITUD 25 20. (T - dificultad 1) Demuestra que, dadas dos cláusulas p C y p D, entonces (p C) ( p D) = C D. 21. (T - dificultad 2) Demuestra que la resolución es correcta. 22. (T - dificultad 2) Demuestra que, para todo conjunto finito de cláusulas S, Res(S ) es un conjunto finito de cláusulas, si se consideran las cláusulas como conjuntos de literales (por ejemplo, C p es la misma cláusula que C p p). 23. (dificultad 3) Sea S un conjunto de cláusulas. Demuestra que S Res(S ). 24. (T - dificultad 2) Demuestra que la resolución no es completa. 25. (dificultad 2) Sea S un conjunto de cláusulas insatisfactible. Por la completitud refutacional de la resolución, sabemos que existe una demostración por resolución de que Res(S ). Es esta demostración única? 26. (T - dificultad 4) Demuestra la completitud refutacional de la resolución; esto es, si S es un conjunto de cláusulas insatisfactible entonces Res(S ). Ayuda: demuestra el contrarrecíproco por inducción en el número N de símbolos de predicado de S. 27. (dificultad 2) Demuestra que el lenguaje de las cláusulas de Horn es cerrado bajo resolución; es decir, a partir de cláusulas de Horn por resolución sólo se obtienen cláusulas de Horn. 28. (T - dificultad 2) Considera el siguiente caso particular de la resolución: p p C C Resolución Unitaria Demuestra que la resolución unitaria es correcta. 29. (T - dificultad 2) Demuestra que la resolución unitaria no es refutacionalmente completa para conjuntos de cláusulas que no son de Horn. 30. (T - dificultad 3) Demuestra que la resolución unitaria es refutacionalmente completa para conjuntos de cláusulas de Horn. Ayuda: demuestra el contrarrecíproco. 31. (T - dificultad 2) Cuál es la complejidad del problema de determinar si un conjunto de cláusulas de Horn S es satisfactible? Ayuda: analiza la corrección y la complejidad del siguiente algoritmo (que intenta construir el modelo minimal de S ): (0) inicialmente, I(p) = 0 para todo p (1) hacer ciertos en I los p que son cláusulas unitarias positivas; (2) eliminar de todas las cláusulas los literales p con I(p) = 1; si esto da lugar a la cláusula vacía: insatisfactible si no, si esto da lugar a alguna cláusula unitaria nueva, volver a (1) si no, la interpretación I construida es un modelo. 32. (dificultad 4) Definimos: Negando un literal de la forma p obtenemos p, y negando un literal p obtenemos p. Si C es una cláusula, C 1 es la cláusula obtenida al negar todos sus literales. Si S es un conjunto de cláusulas {C 1,..., C n }, entonces S 1 es {C 1 1,..., C 1 n }. Dada una interpretación I, su negación I 1 se define: I 1 (p) = 1 I(p) para todo p P.

26 CAPÍTULO 3. DEDUCCIÓN EN LA LÓGICA PROPOSICIONAL Una cláusula de DualHorn es una cláusula con como mucho un literal negativo. La regla deductiva de la Resolución Unitaria Dual es: p p C C Resolución Unitaria Dual a) Demuestra que un conjunto de cláusulas S es satisfactible si y sólo si S 1 es satisfactible. b) Demuestra que ResUnitDual(S ) si y sólo si ResUnit(S 1 ). c) Demuestra que la Resolución Unitaria Dual es refutacionalmente completa para conjuntos de cláusulas de DualHorn. 33. (dificultad 2) Las cláusulas de Krom son aquellas que tienen como mucho dos literales. Cuántas cláusulas de Krom se pueden construir con n símbolos de predicado? Demuestra que la complejidad del problema de determinar si un conjunto de cláusulas de Krom es satisfactible o no es polinómica. 34. (T - dificultad 4) Un grafo G = (V, E) es un conjunto V de objetos llamados vértices conectados por enlaces llamados aristas; la arista que une los vértices u y v se representa como el par de vértices (u, v), y el conjunto de aristas se denota por E. Además, se dice que un grafo está dirigido si se distingue entre las dos posibles orientaciones de las aristas. Por ejemplo, en el grafo dirigido siguiente: 3 2 4 1 5 6 el conjunto de vértices V es {1, 2, 3, 4, 5, 6}, y el de aristas E es {(1, 3), (3, 5), (5, 1), (2, 6), (6, 4), (4, 2)}. Finalmente, se dice que una secuencia de vértices v 0,..., v k es un camino si se tiene que los vértices v 0,..., v k están sucesivamente conectados, es decir, si (v i 1, v i ) E para todo 1 i k. Por ejemplo, 1, 3 y 5 forman un camino del grafo dibujado más arriba, ya que (1, 3) E y (3, 5) E. Los grafos son objetos muy importantes en matemáticas e informática. Dado S un conjunto de cláusulas de Krom con S (esto es, con 1 o 2 literales por cláusula), definido sobre los símbolos de predicado p 1,..., p n, se define el grafo asociado a S, denotado G S, como el grafo dirigido G S = (V, E), donde V = {p 1,..., p n, p 1,..., p n } y E = {(l, l ) l l S } (en este ejercicio, abusando de la notación, dado un literal l de la forma p, vamos a considerar que l representa p; además, en la construcción del grafo las cláusulas de 1 literal, o sea de la forma p, se consideran como p p). a) Demuestra que si hay un camino de l a l en G S, entonces l l Res(S ). Recíprocamente, demuestra que si l l Res(S ), entonces hay un camino de l a l en G S. b) Demuestra que S es insatisfactible si y sólo si existe un símbolo de predicado p tal que hay un camino en G S de p a p, y otro camino de p a p. c) Basándote en el apartado previo, propón un algoritmo para determinar la satisfactibilidad de un conjunto de cláusulas de Krom. Qué complejidad tiene, en términos del número de cláusulas y de símbolos de predicado?