TEMA‐2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS MATEMÁTICAS‐I. 2011‐12 GRADO EN INGENIERÍA INFORMÁTICA. 2.1. Introducción al lenguaje formal de la Lógica de primer orden. 2.2. El lenguaje de la lógica de proposiciones 2.3. Teoría de conjuntos. 2.4. Operaciones entre conjuntos. 2.5. Relación entre la teoría de conjuntos y la lógica de proposiciones. 2.6. El lenguaje de predicados. 2.7. Construcción de fórmulas proposicionales y predicativas. 2.8. Formalización de fórmulas lógicas en forma clausal y su relación con el lenguaje Prolog. 2.9. Formalización de razonamientos. 2.10. Relación entre la teoría de conjuntos y la lógica de primer orden. 2.11. Ejercicios resueltos. 2.12. Si quieres saber más… Bibliografía, enlaces web y lógica divertida. INTERÉS Teniendo en cuenta que el principal objetivo del estudio de la lógica es el aprendizaje de las técnicas de demostración formales y sus aplicaciones en la resolución de problemas, se considera necesario llevar a cabo la formalización del conocimiento y aprender la manipulación del mismo. La formalización se hace mediante el lenguaje formal lógico. En este tema se introduce la sintaxis de los lenguajes de la lógica de primer orden, tanto del lenguaje proposicional como del lenguaje predicativo. Junto con la noción de conjunto y presentaremos las operaciones entre ellos ya que, además de que su conocimiento es necesario para la formulación del lenguaje predicativo, para el informático, la teoría de conjuntos formulada por G. Cantor (XIX), es esencial en gran variedad de disciplinas informáticas que van desde las bases de datos y los lenguajes de programación hasta la inteligencia artificial. Por último veremos que la lógica y la teoría de conjuntos están estrechamente relacionadas. OBJETIVOS - Aprender a formular proposiciones y razonamientos con el lenguaje de la lógica de primer orden. - Conocer el concepto de conjunto de elementos y sus propiedades básicas. - Relacionar las conectivas lógicas con las operaciones entre conjuntos. Palabras clave: variable proposicional, conectiva, dominio de referencia, predicado, conjunto, subconjunto, cuantificación. TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS 2.1. Introducción al lenguaje formal de la Lógica de primer orden En general, un lenguaje es un medio con el que nos relacionamos con los demás seres y con el que expresamos pensamientos y conocimiento por medio de señales. Los lenguajes pueden ser naturales como el español, inglés,… y formales como el matemático, lógico, etc. Los naturales poseen gran poder expresivo debido, principalmente, a la riqueza semántica (polisemánticos) que les hace ambiguos y por lo tanto poco prácticos para cálculos científicos. Precisamente para este cometido se han desarrollado diversos lenguajes formales, que se caracterizan por ser concisos y precisos, y carecer de ambigüedad; sus componentes están perfectamente definidas y mantienen el mismo significado, independientemente del contexto; carecen de semántica fuera de sus operadores propios y consiguen una completa formalización del conocimiento del lenguaje natural mediante símbolos con los que se obtienen expresiones no ambiguas, por esto son importantes en la construcción computacional, en matemáticas y otros. Uno de los lenguajes formales más potentes para la representación del conocimiento en teoría de la computación es el lenguaje formal de la Lógica de primer orden que carece de imprecisiones y posee una forma clara de representación basada en la forma y no en el contenido. Formaliza hechos o proposiciones acerca del mundo obteniendo fórmulas lógicas. Para ello, considera dos niveles de abstracción, que dan lugar al lenguaje proposicional y al predicativo. El lenguaje proposicional formaliza las proposiciones teniendo en cuenta sólo las posibles conexiones entre ellas; sin embargo el lenguaje predicativo además de tener en cuenta dichas conexiones, considera los sujetos o individuos que aparecen en las proposiciones, las propiedades o características que les afectan y las posibles relaciones entre ellos. Ejemplo 1 “Maripuri es la más simpática de la clase pero la menos estudiosa”. Formalizada con el lenguaje de proposiciones tendrá la forma: p ∧ q Formalizada con el lenguaje de predicados tendrá la forma: Si(ma) ∧ Mes(ma) Donde p y q son símbolos que llamaremos variables proposicionales; Si(ma), Mes(ma) son predicados con argumento constante ma; el símbolo “∧” es el conector conjuntivo que formaliza al nexo “pero”. El conjunto de símbolos que elijamos para formalizar las proporciones lo denominaremos “marco conceptual” del problema, y lo denotaremos por MC. En MC estarán todas las proposiciones atómicas que aparecen en el problema, y que se deben formalizar, junto con los elementos del lenguaje formal elegidos para su formalización. Ejemplo 2 “Maripuri es la más simpática de la clase pero la menos estudiosa”. El marco conceptual para la formalización de esta sentencia con el lenguaje de proposiciones es: MC = { p: Maripuri es la más simpática de la clase; q: Maripuri es la menos estudiosa } Con el lenguaje de predicados es: MC = { Si(x): x es simpático; Mes(x): x es la menos estudiosa; ma: Maripuri } Lenguaje formal lógico: > Es un lenguaje que se define completamente. > Se identifica por el conjunto de sus fórmulas lógicas bien formadas que denotaremos por fbf. > Una fórmula lógica es una expresión lógica que representa o formaliza a una proposición. Para definir un lenguaje formal se requiere: > Designar el conjunto de símbolos (alfabeto) del lenguaje. > Definir el conjunto de reglas de formación de fórmulas del lenguaje. > Definir la interpretación de cada símbolo que interviene en la fbf. MATEMÁTICAS-I GII.2011’12 2 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS 2.2. El lenguaje de la lógica de proposiciones Es el lenguaje propio de la lógica de proposiciones, nivel básico de la lógica de primer orden. Su origen se remonta a finales del siglo XIX, coincidiendo con la aparición de las obras de G. Boole (1815‐1864) y de G. Frege (1848‐1925). Permite construir fórmulas lógicas proposicionales a partir de la formulación de proposiciones atómicas y moleculares que definen un determinado problema de razonamiento. Su sintaxis se define a partir de un alfabeto, con los elementos básicos del lenguaje, y unas reglas de formación de fórmulas proposicionales. Su semántica se define a partir del significado de cada una de las componentes que aparecen en una fbf. Su unidad básica de información es la proposición simple que sintácticamente estará definida por una fbf formada por una variable proposicional y semánticamente se interpretará como verdadera o falsa. • Alfabeto Conjunto de símbolos con los trabajará el lenguaje formado por: * Variables proposicionales para representar a las proposiciones atómicas: se elegirán letras del alfabeto o combinación de ellas. * Un conjunto de conectivas para formalizar las conexiones entre proposiciones atómicas: ¬, ∧, ∨, →, ↔ * Símbolos auxiliares: los paréntesis. Su función es dar prioridad a cada componente de la expresión formalizada. ¡Ojo! Las variables proposicionales no se deben confundir con las variables matemáticas o informáticas. Las variables matemáticas son símbolos de valor cuantitativo implícito y en informática es un símbolo que puede tomar valores con los que el programa opera y además pueden modificarse durante la ejecución. Las variables proposicionales representan a una proposición (que puede ser verdadera o falsa). • Reglas para la construcción de fórmulas proposicionales bien formadas (fbf): R.1. Toda variable proposicional es una fbf. R.2. Si A es una fbf entonces ¬A también lo es. R.3. Si A y B son fbf también lo son A ∧ B, A ∨ B, A → B, A ↔ B. R.4. Sólo son fbf las que cumplen las reglas R1, R2 y R3. R.5. Para evitar exceso de paréntesis se establece la siguiente jerarquía de prioridades entre sus conectivas que sólo se ve alterada por la presencia de paréntesis (ver Ejemplo 3). Prioridad más alta ∧ → ¬ ∨ ↔ ¡OjO!: la prioridad indica el orden en que se debe operar con las conectivas en el cálculo lógico. R.6. La fbf queda definida por la conectiva de mayor jerarquía (la última que se tiene en cuenta en la fbf). (ver Ejemplo 4). R.7. Usar paréntesis para agrupar operaciones cuando aparece ambigüedad en la fórmula. R.8. Si un operador negativo antecede a otro negativo el de la izquierda tiene mayor prioridad. Ejemplo 3 Con la tabla de R5 la fbf: (p → ¬q) ∧ r se reconocería como: ((p → (¬q)) ∧ r), es decir, la conectiva con mayor prioridad (con la que 1º se operaría) sería el negador que afecta a q (¬q); después, debido al paréntesis, el implicador →, (p → ¬q), y por último la conjunción ∧. Si la fbf anterior no hubiera tenido paréntesis: p → ¬q ∧ r se reconocería como: p → ( (¬q) ∧ r). Ejemplo 4 La expresión: (p ∧ q) → r es una fbf que está definida por la conectiva de mayor jerarquía que es “→” (R6) luego la fórmula es un condicional. Dicha fbf se puede escribir como: p ∧ q → r, ya que por R5 no es necesario usar paréntesis, porque 1º se operaría con ∧ y luego con →. MATEMÁTICAS-I GII.2011’12 3 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS Ejemplo 5 La expresión: p ∨ q ∧ r. No es una fbf ya que hay ambigüedad. Se deben usar símbolos de paréntesis (R7). Se puede escribir, p ∨ (q ∧ r) o bien (p ∨ q) ∧ r. Ejemplo 6 (R3). La expresión: ∨ p ∨ q no es una fbf porque las conectivas binarias deben tener una fbf a ambos lados Ejemplo 7 La expresión: p¬ no es una fbf ya que incumple R2. Ejemplo 8 La expresión: p ¬ q no es una fbf ya que la conectiva ¬ se está usando como conectiva binaria. • Representación arborescente de una fórmula lógica Para ver claramente la estructura sintáctica de una fórmula y así determinar con claridad la prioridad de cada una de sus componentes sintácticas, podemos usar la representación arborescente. En las hojas del árbol tendremos las variables proposicionales y en los nodos internos las conectivas lógicas. Ejemplo 9 Estructura arborescente de la fórmula proposicional : p ∧ ¬q → ¬p ∨ q → ∨ ∧ p ¬ ¬ q p q Una vez formalizada una proposición hablaremos de fórmula lógica. Diremos que, una expresión formada por una cadena de símbolos del alfabeto del lenguaje proposicional es una fórmula lógica bien formada (fbf) de dicho lenguaje si representa la formalización de una proposición atómica o molecular, construida según las reglas establecidas por la gramática del lenguaje. Una subfórmula de una fbf A es una parte de A que a su vez es una fbf. Una fbf atómica no contiene ninguna conectiva lógica, mientras que las moleculares tienen al menos una. • Conectivas lógicas Sean las proposiciones P1: Jaime canta; P2: Jaime baila, y el MC = {P1: p, P2: q} tenemos: MATEMÁTICAS-I GII.2011’12 4 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS Meta‐expresiones No P1 Es falso que P1 Forma lógica Símbolo Conectivo Formalización: fbf Negación ¬ ¬p Ejemplo • Jaime no canta • Es falso que Jaime cante P1 y P2 Conjunción ∧ p ∧ q • Jaime canta y baila • Jaime canta pero baila • Jaime canta sin embargo baila Disyunción ∨ p ∨ q • Jaime canta o baila P1 pero P2 P1 sin embargo P2 P1 no obstante P2 P1 a pesar de P2 O P1 o P2 o ambas cosas • Si Jaime canta entonces baila • Jaime canta sólo si baila • Que Jaime baile es necesario para → Si P1 entonces P2 P1 sólo si P2 P2 es necesario para P1 P1 es suficiente para P2 p → q p: antecedente; q: consecuente Condicional no P1 a menos que P2 no P1 o P2 que cante • Que Jaime cante es suficiente para que baile • Jaime no canta a menos que baile • O Jaime no canta o baila Si no P2 entonces no P1 P1 si y sólo si P2 Bicondicional ↔ P1 es necesario y suficiente para P2 p ↔ q • Jaime canta si y sólo si baila • Para que Jaime cante es necesario y suficiente que baile • Agrupación de fbf En el lenguaje natural sabemos que la puntuación en una oración es indispensable para dar sentido al enunciado, de tal forma que si no se usaran tendríamos interpretaciones de dicha oración que podrían llevar a error. Por ejemplo, el enunciado: “Mientras comían, los leones salieron de paseo” no significa lo mismo que: “Mientras comían los leones, salieron de paseo”. Como vemos es importante saber dónde “va” la coma. En el lenguaje formal también es necesario agrupar subfórmulas lógicas dentro de toda fbf. Para realizar dicha agrupación se usan paréntesis, corchetes y llaves, si son necesarios. El uso de paréntesis evitara ambigüedades ante la prioridad de las conectivas binarias en la fbf. Sean A, B, C fórmulas lógicas cualesquiera y & un operador binario. La siguiente relación muestra cómo se entienden en el cálculo lógico las diferentes expresiones cuando no se usan paréntesis. 1.‐ La expresión A & B representa la fbf (A & B). 2.‐ La expresión A & B → C representa a (A & B) → C; C → A & B representa a C → (A & B). 3.‐ La expresión A & B ↔ C representa a (A & B) ↔ C; C ↔ A & B representa a C ↔ (A & B). 4.‐ La expresión A → B → C representa A → (B → C) (propiedad asociativa por la derecha de →). 5.‐ La expresión A ∧ B ∨ C representa (A ∧ B) ∨ C. 6.‐ La expresión A ↔ B → C representa A ↔ (B → C). • Fórmulas lógicas proposicionales Fbf proposicional atómica: variable proposiocional. Fbf proposicional molecular: expresión formada por variables proposicionales y las conectivas que las unen. Ejemplo 10 • ( ¬p ) ∨ ( ¬q ) se representa por ¬p ∨ ¬q; MATEMÁTICAS-I GII.2011’12 5 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS • ((p ∧ ¬q) → (¬p ∨ q)) se representa por p ∧ ¬q → ¬p ∨ q; • ((¬(p ↔ q)) ↔ ((p ∧¬q) ∨ q)) se representa por ¬(p ↔ q) ↔ (p ∧ ¬q) ∨ q. • Ejemplos de formalización de sentencias con el lenguaje proposicional Ejemplo 11 Ejemplo 12 Ejemplo 13 P: “Hoy hace sol” Proposición atómica. MC = {Hoy hace sol: p} Formalización: Fbf (P): p P: “Hoy vamos al cine pero mañana de paseo”. Proposición molecular. Forma lógica: conjunción MC = {Hoy vamos al cine: p; Mañana vamos de paseo: q} Formalización: Fbf (P): p ∧ q P: “No vamos al cine a menos que mañana vayamos de paseo”. Proposición molecular. Forma lógica: condicional (Si vamos al cine entonces mañana vamos de paseo) MC = {Vamos al cine: p; Mañana vamos de paseo: q} Formalización: Fbf (P): p → q En los siguientes ejemplos consideramos MC = {María va al concierto: p; Silvia va al concierto: q; Juan va al concierto: r} Ejemplo 14 P: “Ni María, ni Silvia, ni Juan van al concierto”. Proposición molecular cuya forma lógica es la conjunción‐“María no va al concierto y Silvia no va al concierto y Juan no va al concierto”. Formalización: Fbf (P): ¬p ∧ ¬q ∧ ¬r Ejemplo 15 P: “Si María va al concierto entonces Silvia también”. Proposición molecular condicional. Formalización: Fbf (P): p → q Ejemplo 16 P: “María no va al concierto a menos que vaya Silvia”. Proposición molecular condicional. Formalización: Fbf (P): p → q Ejemplo 17 P: “Para que María vaya al concierto es necesario que vaya Silvia”. Proposición molecular condicional. Formalización: Fbf (P): p → q Ejemplo 18 P: “Para que María vaya al concierto es suficiente que vaya Silvia”. Proposición molecular condicional. Formalización: Fbf (P): q → p Ejemplo 19 P: “Para que María vaya al concierto es necesario y suficiente que vaya Silvia”. Proposición molecular bicondicional. Formalización: Fbf (P): p ↔ q Ejemplo 20 P: “O María va al concierto o Silvia va al concierto pero no las dos cosas a la vez”. Proposición molecular conjunción. Formalización: Fbf (P): (p ∨ q) ∧ ¬(p ∧ q) !Ojo¡ Las variables proposicionales sólo simbolizan proposiciones atómicas y no palabras o nombres. MATEMÁTICAS-I GII.2011’12 6 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS Ejemplo 21 “Juan come con Pepe” MC = {Juan: p; Pepe: q} ERROR… ¡Ojo! En toda fórmula que contenga conectivas debe haber una que domine, que sea la principal. Ejemplo 22 “Si María ha llegado del cine y no tiene que estudiar, entonces podemos cenar”. Forma lógica condicional: Si A y no B entonces C. Luego la conectiva principal será el implicador. 2.3. Teoría de conjuntos Def.‐ Un conjunto es una colección o clase de objetos bien definidos y diferenciables entre si, llamados elementos del conjunto. Los elementos de un conjunto pueden ser de cualquier naturaleza, así se pueden tener conjuntos de todos los enteros, de vocales, de las premisas de un razonamiento, etc. Los tipos de datos que usan los lenguajes de programación son también conjuntos. Para denotar los conjuntos utilizaremos letras mayúsculas A, B, C,… después escribiremos el signo de igualdad y entre llaves, los elementos que formen parte del conjunto definido. • Declaración de conjuntos ‐ Por extensión o notación de lista: encerrando entre llaves cada uno de sus elementos, A = {1, 2, 3...n}. Los conjuntos enumerables pueden representarse con esta notación pero los conjuntos que no pueden enumerarse deben escribirse con la siguiente notación: ‐ Por compresión: enunciando una propiedad característica de sus elementos. B = {p ∈ Z | p es par}. • Pertenencia de un elemento a un conjunto Para indicar que un sujeto “a” es un elemento del conjunto A escribiremos: a ∈ A, “a es elemento de A”, en caso contrario, escribiremos: a ∉ A. Ejemplo 23 A = {1,2,3}. La afirmación 2∈A es verdadera; la afirmación 4∉A es verdadera. Ejemplo 24 de conjuntos U: universo de discurso o conjunto universal que contiene los elementos de todos los conjuntos. ∅: conjunto vacío que carece de elementos {}. N: conjunto de los números naturales. N = {1,2,3,…}. Z: conjunto de los números enteros. Z = {…,‐3,‐2,‐1,0,1,2,3,…}. Q: conjunto de los números racionales. Q = {m/n | m,n ∈ Z con n≠0}. R: conjunto de los números reales. Racionales y no racionales. C: conjunto de los números complejos. C = {a + bi | a, b ∈ R}. • Subconjunto de un conjunto Sean A y B dos conjuntos. Decimos que A es un subconjunto de B si todo elemento de A lo es también de B, sin embargo no todo elemento de B necesita ser un elemento de A. Cuando A es un subconjunto de B se dice que A está incluido en B y se expresa como A ⊆ B (relación de inclusión), es decir, (A ⊆ B) Ù (a ∈ A ⇒ a ∈ B) Ejemplo 25 Sean los conjuntos A = {a,c}, B = {a,b,c,d} y C = {a,d,c}. Claramente se verifica que: A ⊆ B y C ⊆ B. MATEMÁTICAS-I GII.2011’12 7 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS ¡OjO!: No es lo mismo pertenencia (elemento y conjunto) que inclusión (entre conjuntos). Ejemplo 26 Sea el conjunto A = {0,2,4,6,8}, entonces 2 ∈ A, {4} ∉ A, {6} ⊆ A, 8 ⊄ A. Usando diagramas de Venn1 se representa el conjunto B como un subconjunto de A. U B A • Conjuntos iguales Dos conjuntos A y B son iguales (A = B) si tienen los mismos elementos o la misma propiedad característica. Para que los conjuntos A y B sean iguales es necesario que A ⊆ B y B ⊆ A y para que sean diferentes es suficiente que difieran en al menos un elemento, ya que un conjunto se describe por sus elementos. Ejemplo 27 Los conjuntos A = {0,2,4,6,8} y B = {0,2,4,0,6,2,8,0} son iguales, es decir A = B, siendo irrelevante el orden en que se encuentran los elementos. Aunque los elementos se repiten en B, como norma general aparecen solamente una vez. Ejemplo 28 Los conjuntos A = {x ∈ R: x2 = 1} y B = {‐1,1} son iguales ya que aunque A y B están escritos de forma diferente ambos conjuntos tienen los mismos elementos. Las soluciones de la ecuación del conjunto A (x2 = 1) son, precisamente, los elementos del conjunto B, luego A ⊆ B. De manera similar, se demuestra que B ⊆ A, luego A = B. La igualdad entre dos conjuntos A y B se puede escribir como: (A = B) Ù (A ⊆ B) ∧ (B ⊆ A) o bien, de manera equivalente, con la relación de pertenencia: (A = B) Ù (x ∈ A ↔ x ∈ B) • Conjunto vacío Es el conjunto que no tiene elementos. Se denota por φ. ¡OjO!: El conjunto φ no es igual que el conjunto A = {φ}, pues A no es un conjunto vacío ya que tiene un elemento, precisamente el conjunto vacío. Proposición: Si A es un conjunto cualquiera se verifica que φ ⊆ A. Características de la inclusión de conjuntos: - Si A no es un subconjunto de B entonces existe al menos un elemento de A que no es un elemento de B, escribiremos A ⊄ B. - Para cualquier conjunto A se verifica A ⊆ A. - El conjunto vacío es un subconjunto de todos los conjuntos. Algunos subconjuntos son subconjuntos propios: 1 John Venn, matemático inglés. Representación gráfica para visualizar conjuntos. MATEMÁTICAS-I GII.2011’12 8 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS • Subconjunto propio A es un subconjunto propio de B si A es un subconjunto de B, pero A no es igual a B. Si A es un subconjunto propio de B, escribimos A ⊂ B. Curiosidad: Las expresiones lógicas que son tautológicas (fbf que siempre se interpretan como verdaderas)forman un subconjunto propio del conjunto de todas las expresiones lógicas. El conjunto de los números naturales es un subconjunto propio del conjunto de los números enteros, pero no viceversa. 2.4. Operaciones entre conjuntos Dados, al menos, dos conjuntos A y B, podemos obtener nuevos conjuntos realizando determinadas operaciones entre ellos. • Intersección La intersección de los conjuntos A y B, que representamos por A ∩ B, es el conjunto formado por los elementos de A y de B, es decir: A ∩ B = {x : x ∈ A ∧ x ∈ B }. También x ∈ (A ∩ B) Ù (x ∈ A) ∧ (x ∈ B). Se verifica: (A ∩ B) ⊆ A; (A ∩ B) ⊆ B Si A y B no tienen elementos en común, entonces A ∩ B = φ y se dice que A y B son disjuntos. Diagrama de Venn: A B Ejemplo 29 Sean A = {a, b, 1} y B = {a, 1, 2}; A ∩ B = {a, b, 1} ∩ {a, 1, 2} = {a, 1} • Unión La unión de dos conjuntos A y B, que representamos por A ∪ B, es el conjunto formado por los elementos de A o de B o de ambos, es decir: A ∪ B = {x : x ∈ A ∨ x ∈ B}. También x ∈ (A ∪ B) Ù (x ∈ A) ∨ (x ∈ B). Se verifica: A ⊆ (A ∪ B); B ⊆ (A ∪ B) Diagrama de Venn: A B MATEMÁTICAS-I GII.2011’12 9 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS Ejemplo 30 Sean A = {a, b, 1} y B = {a, 1, 2}. A ∪ B = {a, b, 1, 2}. • Diferencia Sean los conjuntos A y B. Llamamos conjunto diferencia de A y B y lo representamos por A ‐ B, al conjunto formado por todos los elementos que están en A pero no en B: A ‐ B = {x: (x ∈ A) ∧ (x ∉ B)} Ejemplo 31 Sean los conjuntos A = {p,q,r} y B = {q,r,s,t}. A ‐ B = {p} mientras que B ‐ A = {s,t}. ‐ El conjunto A ‐ A = {x: (x ∈ A) y (x ∉ A)} no tiene elementos. Diagrama de Venn: U A B • Complementario Sea el conjunto A. El complementario de A, que se escribe A’, es el conjunto de todos los elementos que no pertenecen a A, o que pertenecen a la diferencia U ‐ A (U conjunto universal fijado de antemano). Diagrama de Venn: U A Proposición: Si A y B son subconjuntos cualesquiera de U se verifica: • φ'= U. • U ' = φ • (A')' = A. • A ⊆ B ⇔ B' ⊆ A'. • Si A = {x ∈ U: p(x) es una proposición verdadera} entonces A' = {x ∈ U: p(x) es una proposición falsa}. • Si A y B son subconjuntos de un conjunto universal U entonces A ‐ B = A ∩ B'. MATEMÁTICAS-I GII.2011’12 10 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS PROPIEDADES UNIÓN INTERSECCIÓN Idempotencia A ∪ A = A A ⊆ A ∪ B y B ⊆ A ∪ B A ∩ A = A A ⊆ A ∩ B y B ⊆ A ∩ B Conmutativa A ∪ B = B ∪ A A ∩ B = B ∩ A Asociativa A ∪ ( B ∪ C ) = ( A ∪ B ) ∪ C A ∩ ( B ∩ C ) = ( A ∩ B ) ∩ C Absorción A ∪ ( A ∩ B ) = A A ∩ ( A ∪ B ) = A Distributiva A ∪ ( B ∩ C ) = ( A ∪ B ) ∩ ( A ∪ C ) A ∩ ( B ∪ C ) = ( A ∩ B ) ∪ ( A ∩ C ) Complementariedad A ∪ A' = U; A ∪ φ = A; A ∪ U = U A ∩ A' = φ; A ∩ φ = φ; A ∩ U = A Leyes de Morgan (A ∪ B)' = A' ∩ B' (A ∩ B)' = A' ∪ B' Estas propiedades hacen que partes del universo U con las operaciones unión e intersección tenga una estructura de álgebra de Boole. 2.5. Relación entre la teoría de conjuntos y la lógica de proposiciones Existe una relación muy estrecha entre la teoría de conjuntos y la lógica proposicional. La forma en que podemos obtener nuevos conjuntos está directamente relacionada con la forma en que operan las conectivas lógicas, de tal forma que a cada conexión lógica le corresponde una operación de conjuntos. Sean A, B...conjuntos y a, b ... sus propiedades características, es decir, la proposición lógica que caracteriza a los elementos de cada conjunto. Se tiene la siguiente correspondencia: Conjuntos A ⊆ B A=B A∪B A∩B A' A−B proposiciones a ⇒ b a⇔b a ∨ b a∧b a' a ∧ b' El conjunto vacío se corresponde con una contradicción (conjunción de una fórmula y su negación) y el conjunto universal con una tautología (disyunción de una fórmula y su negación). Con esta correspondencia todos los resultados sobre conjuntos se pueden reescribir en términos de lógica proposicional y viceversa; 2.6. A ∪ ( A ∩ B ) = A a ∨ ( b ∧ c ) ⇔ a A ∪ ( B ∩ C ) = ( A ∪ B ) ∩ ( A ∪ C ) a ∨ ( b ∧ c ) ⇔ ( a ∨ b ) ∧ ( a ∨ c ) ( A ∪ B )' = A' ∩ B' ( a ∨ b )' ⇔ a' ∧ b' El lenguaje de predicados La lógica de proposiciones es conveniente para representar conocimiento en donde no sea necesario formalizar propiedades entre individuos o relaciones entre ellos. Por ejemplo, la sentencia: “Algunos animales son domésticos”, carece de significado hasta que no se determine a qué animales nos referimos. Si dicha sentencia se formaliza con el lenguaje de proposiciones tenemos la fórmula: p, expresión que no expresa conocimiento acerca de los individuos que pueden ser animales domésticos. De manera similar la proposición: “Todos los animales son domésticos” se representaría por la fórmula: q, que tampoco nos permite referirnos a todos los elementos de un dominio. Es más, si los elementos de un dominio fueran infinitos, simplemente no se podría expresar conocimiento acerca de todos los individuos. El lenguaje de predicados, también conocido como lenguaje de la lógica de primer orden, generaliza al lenguaje proposicional introduciendo nuevos elementos del lenguaje con los que se describen con más detalle los elementos sintácticos de una proposición; ésta se formaliza atendiendo a los individuos, sus propiedades y relaciones, dentro de un conjunto de referencia. Su precursor fue Gotto Frege (1879). MATEMÁTICAS-I GII.2011’12 11 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS La necesidad de extender el lenguaje de proporciones se puede ver con el siguiente ejemplo: Ejemplo 32 P1: “Todos los hombres son mortales”. P2: “Sócrates es un hombre” Q: “Sócrates es mortal” Si formalizamos este razonamiento con el lenguaje de proposiciones con el marco conceptual: MC = {Todos los hombres son mortales: p; Sócrates es un hombre: q; Sócrates es mortal: r}. El razonamiento p, q ⇒ r, es, a todas luces, no correcto. Desde el punto de vista sintáctico la conclusión “r” no tiene ninguna relación sintáctica con las premisas ya que al ser éstas atómicas, no existe ninguna forma de extraerla de ellas; por otro lado, desde el punto de vista semántico, podríamos interpretar las fórmulas p y q como verdaderas y la fórmula r como falsa, esto, como ya veremos (Tema‐3 y 4) significa que el razonamiento dado no es correcto. Sin embargo, dicho razonamiento es correcto. Esto se puede demostrar con otra formalización, la del lenguaje de predicados. El razonamiento quedaría formalizado con el marco conceptual: MC = {s: Sócrates; H(x): x es hombre; Mo(x): x es mortal}, como: ∀x [H(x) → Mo(x)], H(s) ⇒ Mo(x), como podemos ver ahora la relación sintáctica es evidente, luego ya podremos averiguar si la conclusión se deduce de las premisas. Con el lenguaje de predicados: En las proposiciones toman relevancia los sujetos y los predicados. Los predicados se formalizan con identificadores de predicados y los sujetos con identificadores de términos. Se formaliza la cantidad de sujetos que intervienen en las sentencias mediante los cuantificadores. Î Î Î • Alfabeto Conjunto de símbolos formado por términos, que pueden ser constantes, variables o funciones, predicados, cuantificadores y símbolos heredados del lenguaje proposicional (conectivas, variables proposicionales y paréntesis). Veamos qué significa cada uno de ellos y su formalización: * Constantes: Representan objetos concretos como Juan, Sócrates…. Las constantes son los elementos de un conjunto, llamado dominio de referencia o universo de discurso, que son distinguibles entre sí por las propiedades que les afectan. Se formalizan con letras, que pueden estar numeradas, empezando por minúscula: a, b, c, a1, a2, a3... * Variables: Se refieren a objetos indeterminados que pertenecen a un conjunto de referencia donde se define el razonamiento que se debe estudiar. Se formalizan con letras típicas de variables: x, y, z, w, x1, x2... * Función n‐aria (aridad2 n): Representan a sujetos constantes que se obtienen aplicando una función a otro sujeto constante. Pueden ser: ‐ Monádicas (n=1): representan un individuo en función de otro. Ej: “f(x) = x2”, es una función monádica que calcula el cuadrado de un número real “x”. ‐ Poliádicas (n>1): representan un individuo en función de otros. Ej: “f(x,y) = x + y”, es una función binaria que calcula la suma de dos números reales. Toda función tiene un número n ∈ N ∪ {0} de argumentos, que se conoce como la aridad de la función. Las funciones se formalizan con letras típicas de función: f, g, h…. * Predicados o relaciones n‐arias: Según la aridad los predicados pueden ser: ‐ Constantes (n=0): representan a las proposiciones atómicas. Ej: “María es estudiosa”; Fbf: p, siendo MC = {p: María es estudiosa}. ‐ Monádicos (n=1): representan a las propiedades de los individuos. Ej: “María es estudiosa”; Fbf: Es(ma), siendo MC = {ma: María; Es(x): x es estudiosa}. ‐ Polliádicos (n>1): representan a las relaciones entre individuos. Ej: “María es novia de Carlos”; Fbf: Nov(ma, ca), MC = {ma: María; ca: Carlos; Nov(x,y): x es novio de y} 2 La aridad de una función o de un predicado se define como el número de argumentos que tiene. MATEMÁTICAS-I GII.2011’12 12 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS Al igual que las funciones, los predicados tienen un número n ∈ N ∪ {0} de argumentos que determinan el carácter de dicho predicado. Los predicados se formalizan con letras o expresiones cuya primera letra debe estar en mayúscula: P,Q, Ra …. ¡OjO!: Si en un predicado se sustituyen los símbolos variables de sus argumentos por símbolos constantes, de un determinado conjunto de referencia, se obtiene una fórmula. Ejemplo 33 a) La variable proporcional “p” es un predicado constante (aridad cero), luego es una fórmula atómica. b) P(x), es un predicado monádico que atribuye al sujeto “x” la propiedad P. Si el conjunto de referencia es: D = {ana, luis}, al sustituir la variable “x” por “ana” se obtiene la fórmula atómica: P(ana). c) P(x,y), es un predicado poliádico que relaciona a los sujetos “x” e “y”. Al igual que en b), si “x = ana” e “y = ana”, por ejemplo, tenemos la fórmula atómica: P(ana, luis), que representa que los sujetos “ana” y “luis” están relacionados mediante el predicado “P”. ¡OjO!: no es lo mismo una función que un predicado. Los predicados simbolizan fórmulas que pueden ser verdaderas o falsas, las funciones representan términos constantes. Éstas se suelen usar para simplificar la escritura de las fórmulas de la lógica de predicados. Ejemplo 34 Un predicado no es una función. Dado el conjunto D = {personas}. El predicado binario “Ma(x,y): x es la madre de y” no es una función porque dependiendo del valor que tomen las variables “x” e “y”, la fórmula correspondiente será verdadera o falsa. Por ejemplo, si “x=ana” e “y=luisa”, la fbf: Ma(ana, luisa) será verdadera si el sujeto “ana” es la madre del sujeto “luisa”. Si hubiésemos querido usar una función podríamos haber puesto “f(x)=y”, donde “f”, calcula la madre “y” del sujeto “x”. Ejemplo 35 “Félix es el padre de Clara” 1.‐ Formalización mediante funciones: padre(clara), da como resultado: Félix. 2.‐ Formalización sin funciones: Pa(felix,clara), da como resultado verdadero o falso. * Cuantificadores: ‐ Universal (∀): se utiliza para afirmar que todos los elementos de un conjunto cumplen una determinada propiedad o relación. ‐ Existencial (∃): se utiliza para indicar que hay uno o más elementos de un conjunto que cumplen una determinada propiedad. Ejemplo 36 En el MC = {N(x): x es número natural; Po(x): x es positivo} las sentencias: a) “Todos los números naturales son positivos”, se formaliza como: ∀x[Na(x) → Po(x)]. b) “Algunos números naturales son positivos”, se formaliza como: ∃x[Na(x) ∧ Po(x)]. * Símbolos del lenguaje proposicional: variables proposicionales, conectivas y paréntesis. • Reglas para construir fórmulas de la lógica de primer orden bien formadas (fbf). Las expresiones bien formadas de la lógica de predicados, es decir las fórmulas predicativas, se construyen a partir de los términos (que representan objetos) y de los predicados cuyos argumentos son, precisamente, los términos. • Definición recursiva de término: 1. Todo símbolo de variable y de constante es un término. 2. Si f es un símbolo de función de aridad n > 0 y t1, t2,…tn son términos, entonces f(t1, t2,…tn) es un término. 3. Sólo son términos los definidos por 1 o 2. MATEMÁTICAS-I GII.2011’12 13 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS Ejemplo 37 Las siguientes expresiones son términos: x; a; f(x); g(x; y); g(x; f(x)); donde x es una variable, a es una constante, f es una función monádica y g es una función binaria. • Definición de Fórmula: Una fórmula predicativa puede ser atómica o molecular. Las fórmulas atómicas del lenguaje son las expresiones P(t1, . . . , tn), donde P es un símbolo de predicado de aridad n>0 y t1, . . . , tn son términos constantes o de función. Las fórmulas moleculares del lenguaje están formadas por fórmulas atómicas conectadas o por fórmulas en donde aparecen predicados con argumentos variables cuantificados. Si A es una fórmula y x es una variable, entonces (∀xA(x)) y (∃xA(x)) son fórmulas. ¡OjO!: Un término representa un objeto mientras que una fórmula atómica será verdadera o falsa según se interprete en un determinado conjunto. Ejemplo 38 Formalizar la sentencia S: ”María es rubia”, con el lenguaje de predicados MC = {ma: María; R(x): x es rubia} Fbf‐S: R(ma) Explicación de los símbolos usados: ‐ ma es un término que representa al sujeto:”María”. ‐ R(ma) es una fórmula atómica que representa al hecho: ”María es rubia”. • Reglas de construcción de fórmulas bien formadas de la lógica de primer orden (fbf): R.1. Toda variable proposicional es una fbf. R.2. Si P es un predicado, entonces P(t1, t2, ..., tn) es una fbf, siendo ti términos. R.3. Si F es una fbf entonces: ∀xi F [ x1, x2, ..., xi, ..., xn ] ; ∃xi F [ x1, x2, ..., xi, ..., xn ] son fbfs. La variable xi queda ligada al cuantificador introducido y las otras variables s libres. R.4. Si A y B son fbf entonces ¬A, A ∧ B, A ∨ B, A → B y A ↔ B son fbf. R.5. Sólo son fbfs las construidas desde R1 hasta R4. R.6. Son válidas todas las reglas de la gramática proposicional. Ejemplo 39 La siguiente fórmula es sintácticamente correcta: ∀x [P(x) ∧ Q(z) → ∃y R(x, y)] ya que todas las subfórmulas de la fórmula dada son válidas R(x, y) por R2 ∃y R(x, y) por R3 P(x) por R2 Q(z) por R2 P(x) ∧ Q(z) por R4 P(x) ∧ Q(z) → ∃yR(x, y) por R4 ∀x ( P(x) ∧ Q(z) → ∃y R(x, y) ) por R3. • Fórmula abierta y cerrada Las fórmulas lógicas de primer orden, que denotaremos por ϕ, pueden ser abiertas o cerradas según la “forma” en que aparezcan las variables que conforman los argumentos de los predicados declarados en la formalización. Si las variables están afectadas por algún cuantificador se dice que son variables ligadas y si no lo están, son variables libres. MATEMÁTICAS-I GII.2011’12 14 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS 1.‐ Si toda variable que aparece en una fórmula es ligada, diremos que la fórmula es cerrada. En este caso la fórmula puede ser evaluada a verdadera o falsa. 2.‐ Si en una fórmula aparece una variable libre, diremos que la fórmula es abierta. En este caso la fórmula no puede evaluarse ni a verdadera ni a falsa. Ejemplo 40 1) En la fórmula: ∀xP(x, y) la variable x aparece ligada y la variable y aparece libre. La fórmula es abierta. 2) En la fórmula: ∀x[P(x) → Q(x) ∧ R(x)] la variable x aparece ligada al cuantificador existencial en todos los predicados. La fórmula es cerrada. • Dominio de referencia o Universo de Discurso Es el conjunto no vacío de individuos distinguibles entre sí en el que se definen sus relaciones y propiedades, es decir es el conjunto de cosas acerca de las cuales se habla en un determinado contexto. Dependiendo del dominio elegido una misma proposición puede ser verdadera o falsa. Por ejemplo, al decir "Todos los números son positivos", en el conjunto D = {1,2,3,4} la proposición ∀xPo(x), siendo Po(x) el predicado que se refiere a que el sujeto x es positivo, es verdadera, pero en el conjunto D2={ ‐2,‐1,1,2} la proposición es falsa. Por convenio, el dominio de discurso es siempre un conjunto no vacío. Cuando tenemos un dominio finito el cuantificador universal se puede considerar como una generalización de la conjunción y el cuantificador existencial como una generalización de la disyunción. Ejemplo 41 Sea el dominio D = {a1, a2, ...,an }, tenemos que la fbf: ‐ ∀x P(x) es equivalente a: P(a1) ∧ P(a2) ∧ ... ∧ P(an) 2.7. ‐ ∃x P(x) es equivalente a: P(a1) ∨ P(a2) ∨ ... ∨ P(an). Construcción de fórmulas proposicionales y predicativas Toda proposición tiene su forma lógica y su fórmula bien formada. • Normas para formalizar sentencias con el lenguaje de proposiciones: 1º.‐ Detectar si la proposición dada es atómica o molecular. 2º.‐ Si es atómica elegir un nombre de variable proposicional para su formalización. 3º.‐ Si es molecular, determinar su forma lógica y detectar cada una de las proposiciones atómicas que la componen. Una vez detectadas las proposiciones atómicas, ir al paso 1. 4º.‐ Definir el marco conceptual del problema, que será el conjunto de las variables proposicionales elegidas para la formalización de las proposiciones atómicas. 5º.‐ Usar paréntesis, si es necesario, para establecer jerarquías entre las conectivas. • Normas para formalizar sentencias con el lenguaje de predicados de primer orden: 1º.‐ Detectar si la proposición dada es atómica o molecular. 2º.‐ Si es atómica elegir un nombre de predicado y símbolos para los sujetos constantes. 3º.‐ Si es molecular es porque o bien no aparecen sujetos constantes o bien porque aparecen en proposiciones que están conectadas. Si no aparecen sujetos constantes, se debe valorar la cantidad de individuos que se deben formalizar en la sentencia, eligiendo para ello un identificador de cuantificación, universal o existencial. Elegir nombre de predicado. Elegir nombres de variables que deben formar parte de los argumentos del predicado que se debe formalizar. Si aparecen sólo sujetos constantes ir al paso 1. 4º.‐ Definir el marco conceptual del problema, que será el conjunto de símbolos del alfabeto elegidos para la formalización de las proposiciones atómicas. MATEMÁTICAS-I GII.2011’12 15 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS 5º.‐ Usar paréntesis, si es necesario, para establecer jerarquías entre las subfórmulas. • Normas para formalizar sentencias cuantificadas: 1º.‐ Las expresiones que deben formalizarse con un cuantificador universal van acompañadas de la conectiva de la implicación ya que de esta manera restringimos el dominio de la variable cuantificada universal. Así, por ejemplo: ∀x[P(x) → Q(x)] significa que todos los x, si verifican la propiedad P entonces verifican la propiedad Q, es decir, no todos los sujetos cumplen necesariamente la propiedad Q, pero sí al menos aquellos que cumplen la propiedad P. 2º.‐ Las expresiones que deben formalizarse con un cuantificador existencial van acompañadas de la conectiva de la conjunción. De esta forma: ∃x[P(x) ∧ Q(x)] significa que existe algún sujeto x que verifica el predicado P y que verifica también Q. • Estructuras sintácticas equivalentes de una fórmula lógica Cualquier fórmula se puede escribir de manera equivalente aplicando diferentes reglas de equivalencia. Para verlo usaremos esquemas lógicos, que son expresiones que contienen símbolos que representan fórmulas lógicas cualesquiera. Por ejemplo el esquema: A → B representa el condicional de las fórmulas A y B. Leyes de equivalencia más usuales Definición del implicador mediante la disyunción A → B ⇔ ¬A ∨ B Definición del implicador mediante la conjunción A → B ⇔ ¬(A ∧ ¬B) Ley del contrapositivo A → B ⇔ ¬ A → ¬B Leyes de Morgan ¬A ∨ ¬B = ¬(A ∧ B) ¬A ∧ ¬B = ¬(A ∨ B) Ley del bicondicional Ejemplo 42 A ↔ B ≡ (A → B) ∧ (B → A) MC = {Jaime estudia lógica: p; Jaime es feliz: q}. Las siguientes expresiones son equivalentes: Condicional “Si Jaime aprende lógica entonces es feliz” p → q Conjunción “Es falso que Jaime aprenda lógica y no sea feliz” ¬( p ∧ ¬q ) Disyunción “O Jaime no aprende lógica o es feliz” ¬p ∨ q Contrapositivo del implicador “Si Jaime no es feliz, no aprende lógica” ¬ q → ¬ p MATEMÁTICAS-I GII.2011’12 16 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS • Equivalencia entre fórmulas cuantificadas ¬∀xP(x) Existenciales negativos: ∃x¬P(x) no todos los x tienen la propiedad P hay algún x que no tiene la propiedad P Universales negativos: ∀x¬P(x) ¬∃xP(x) todos los x no tienen la propiedad P no existe ningún x que tenga la propiedad P ¬∃x¬P(x) Universales afirmativos: ∀xP(x) no hay ningún x que posea la propiedad no P todos los x verifican P ¬∀x¬P(x) Existenciales afirmativos: ∃xP(x) no todos los x carecen de la propiedad P hay algún x que tiene la propiedad P Ejemplo 43 Encontrar expresiones equivalentes a la dada: ¬∀x[ P(x) → Q(x) ] ⇔ ∃x ¬[ P(x) → Q(x) ] ⇔ ∃x ¬[ ¬P(x) ∨ Q(x) ] ⇔ ∃x [ P(x) ∧ ¬Q(x) ] ⇔ ¬∃x [ P(x) ∧ Q(x) ] ⇔ ⇔ ∀x ¬[ P(x) ∧ Q(x) ] ∀x [ P(x) → ¬Q(x)] • Representación arborescente de fórmulas predicativas En las hojas del árbol tendremos los identificadores de predicados y en los nodos internos las conectivas lógicas y los cuantificadores. Ejemplo 44 Estructura arborescente de la fórmula predicativa: ∀x∃y [∃xQ(x) ∨ P(y) ∨ R(x)] ∧ S(x) lib r e ∧ ∀ x S (x ) ∃y ∨ ∨ P (y ) R (x ) ∃x Q (x ) 2.8. Formalización de fórmulas lógicas en forma clausal y su relación con el lenguaje Prolog Las leyes de equivalencia permiten transformar fórmulas en otras más simples de evaluar, en especial, por un computador, si éstas carecen de la conectiva del implicador, conectiva binaria que no tiene la propiedad de ser conmutativa, lo que lo hace engorroso en su tratamiento computacional. Las fórmulas que prescinden de la conectiva del implicador y se escriben mediante una colección de cláusulas se dice que están escritas en su forma clausal (FC). MATEMÁTICAS-I GII.2011’12 17 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS Toda fórmula escrita mediante su forma clausal se puede expresar mediante un lenguaje de Programación Lógica, en particular del lenguaje Prolog. La notación en FC tiene la ventaja de que reduce a una forma única lo que se puede escribir de diversas formas. Esto resulta imprescindible si queremos llevar a cabo manipulaciones formales sobre fbfs del Cálculo de Predicados y desarrollar procesos de automatización. De ahí la importancia de la forma clausal cuando tratamos de aplicar la lógica a la informática, y en concreto a la programación lógica. Antes de pasar a estudiar cómo se obtiene la forma clausal de una fórmula dada, veamos algunos conceptos relacionados. Def. Una cláusula es una disyunción de literales { L1, ..., Lk}. Ejemplo 45 La fbf: p ∨ ¬q es una cláusula. Def. Un literal es una fórmula atómica afirmada o negada. Ejemplo 46 En la fbf: p ∨ ¬q, las fórmulas p y ¬q son literales. Def. Una Cláusula vacía es una cláusula sin literales. Se representa por [] y su valor es siempre contradicción. • Proceso para obtener la forma clausal de una fórmula Dada una fórmula lógica aplicar, si es el caso, cada uno de los siguientes pasos: Paso 1. Eliminar implicadores y coimplicadores mediante la aplicación de la regla: o Paso 2. A → B = ¬A ∨ B Normalizar negadores mediante la aplicación de las reglas. o Leyes de Morgan: ¬(A ∨ B) = ¬A ∧¬B; ¬(A ∧ B) = ¬A ∨ ¬B. o Ley del doble negador: ¬¬A = A Paso 3. En fórmulas cuantificadas, renombrar variables, si es necesario, para que dos cuantificadores no coincidan en el nombre de variable que cuantifican. Paso 4. Eliminar cuantificadores existenciales aplicando el criterio de Skolem (ver a continuación). Paso 5. Poner los cuantificadores universales a la cabeza de la fórmula y no volver a escribirlos en los pasos sucesivos, ya que llegados a este punto todas las variables de la fórmula están cuantificadas universalmente, por lo que no es necesario especificarlo. Paso 6. Aplicar, si es necesario, la regla distributiva: A ∨ (B ∧ C) = (A ∨ B) ∧ ( A ∨ C) para obtener una fórmula cuya conectiva principal sea la conjunción. Reducir y simplificar la fórmula aplicando reglas de equivalencia Paso 7. Extraer las cláusulas de la fórmula que serán cada una de las disyunciones de la fórmula obtenida en el paso anterior. Paso 8. Las cláusulas no pueden coincidir en los nombres de los argumentos variables. Se deben cambiar, si es necesario, los nombres de los argumentos variables coincidentes. Las constantes pueden coincidir. • Criterio de Skolem para eliminar cuantificadores existenciales > Si el cuantificador existencial se encuentra en el ámbito de un cuantificador universal, entonces la variable de dicho cuantificador depende del valor de la variable afectada por el cuantificador universal. El cuantificador existencial se suprime sustituyendo su variable adosada por una función que contiene un argumento con la variable cuantificada universalmente. fbf‐A: ∀y∃x P(x,y). El cuantificador ∃x se encuentra en el ámbito de ∀y, luego la variable x se sustituye Ejemplo 47 por una función dependiente de la variable y. x = f(y); la fbf‐A quedaría: ∀y P(f(y),y). MATEMÁTICAS-I GII.2011’12 18 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS > Si el cuantificador existencial no se encuentra en el ámbito de ningún cuantificador universal, sustituimos la variable cuantificada existencialmente por una constante que no se encuentre en la fórmula. fbf‐A: ∃x∀y P(x,y,a). El cuantificador ∃x no se encuentra en el ámbito de ∀y, luego la variable x se Ejemplo 48 sustituye por una constante. x = b; la fbf‐A quedaría ∀y P(b, y, a). Obtener la FC de la fórmula: (¬p ∨ q) ∧ (¬p ∨ q ∨ ¬r) ∧ p. Ejemplo 49 La fórmula se encuentra en el paso 8 luego extraemos las cláusulas que denotamos por Ci: C1: ¬p ∨ q: C2: ¬p ∨ q ∨ ¬r; C3: p. Ejemplo 50 Obtener la FC de la fórmula: ((p → q) → r) → (p → r) ∧ (q → r) Paso 1: Eliminar implicadores: ¬( ¬( ¬p ∨ q ) ∨ r ) ∨ ( ( ¬p ∨ r ) ∧ ( ¬q ∨ r ) ) Paso 2: Normalizar negadores: ( ¬¬( ¬p ∨ q ) ∧ ¬r ) ∨ ( ( ¬p ∨ r ) ∧ ( ¬q ∨ r ) ) ( ( ¬p ∨ q ) ∧ ¬r ) ∨ ( ( ¬p ∨ r ) ∧ ( ¬q ∨ r ) ) Paso 6: Aplicar la regla distributiva y simplificar aplicando reglas de equivalencia: [( ¬p ∨ q ) ∧ ¬r ) ∨ ( ¬p ∨ r )] ∧ [( ¬p ∨ q ) ∧ ¬r ) ∨ ( ¬q ∨ r ) ] [( ¬p ∨ q ) ∨ ( ¬p ∨ r )] ∧ [¬r ∨ ( ¬p ∨ r )] ∧ [ ¬p ∨ q ) ∨ ( ¬q ∨ r ) ] ∧ [¬r ∨ ( ¬q ∨ r ) ] [¬p ∨ q ∨ ¬p ∨ r ] ∧ [¬r ∨ ¬p ∨ r] ∧ [ ¬p ∨ q ∨ ¬q ∨ r ] ∧ [¬r ∨ ¬q ∨ r ] ¬p ∨ q ∨ r Paso 7 : Extraer cláusulas Sólo obtenemos una cláusula C1 : ¬p ∨ q ∨ r Obtener la FC de la fórmula: ∀x ∀y [ sobre(x, y) → encimaDe(x, y) ] Ejemplo 51 Paso 1: Eliminar implicadores y coimplicadores: ∀x ∀y [ ¬sobre(x, y) ∨ encimaDe(x, y) ] Paso 7: Extracción de cláusulas. Sólo obtenemos una cláusula: C1: ¬sobre(x, y) ∨ encimaDe(x, y). • El lenguaje Prolog El lenguaje de programación Prolog (“PROgrammation en LOGique”), creado por Alain Colmerauer (1970), es un lenguaje de programación para ordenadores que se basa en el lenguaje de la Lógica de primer orden y que se utiliza para resolver problemas en los que entran en juego objetos y relaciones entre ellos. Las sentencias de un programa escrito con el lengueje Prolog están escritas en forma clausal. Las cláusulas que conforman dicha forma clausal tienen que un tipo especial de cláusulas llamadas: cláusulas de Horn3. Sabemos que la forma clausal de una fbf está formada por un conjunto de literales, por ejemplo {L1, ..., Lk}. Éstos pueden ser fbfs atómicas afirmadas {A1, ..., An} o negadas {¬N1, ..., ¬Nm}, es decir: {L1 , ..., Lk} = {A1 , ..., An} ∪ {¬N1 , ..., ¬Nm} 3 Reciben este nombre por que este tipo de fbfs fueron investigadas por primera vez por el lógico Alfred Horn (1951). MATEMÁTICAS-I GII.2011’12 19 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS Def. Cláusula de Horn Definida: es una cláusula con, como máximo, un literal no negado. La cláusula: {L1 , ..., Lk} = {A1 , ..., An} ∪ {¬N1 , ..., ¬Nm} es una cláusula de Horn si n ≤ 1. Se distinguen los siguientes tipos de cláusulas de Horn: 1.‐ Hipótesis o cláusulas con un literal no negado (n=1), llamadas cláusulas con cabeza, que pueden ser a su vez: ‐ Hechos: sin literales negados (m=0) {A} Ejemplo mujer(ana) ← ‐ Reglas: con literales negados (m>0) {A,¬N1,...,¬Nm} mujer(x), mujer(y), padresDe(x, p, m), padresDe(y, p, m) Ejemplo hermanas(x, y) ← 2.‐ Preguntas o cláusulas que no tienen literal no negado (n=0) o teoremas a demostrar, llamadas cláusulas sin cabeza. ‐ Metas u objetivos: (m>0) {¬N1 , ..., ¬Nm} Ejemplo ← hermanas(ana, pili). Todo problema resoluble con cláusulas generales tiene un modelo equivalente resoluble en Cláusulas de Horn, por lo que las restricciones de notación no conllevan una pérdida de capacidad de representación, y en cambio, sí que facilitan la formulación. 2.9. Formalización de razonamientos Cualquier razonamiento deductivo se formaliza en el lenguaje lógico. Para ello hay que detectar cuáles son las premisas y cuál es la conclusión. Las premisas pueden ir precedidas de las expresiones: “puesto que”, “ya que” y similares. La conclusión aparecerá precedida por las expresiones: “luego”, “por lo tanto”, “en consecuencia” o similares. Formalizar un razonamiento conlleva: 1º.‐ Formalizar premisas y conclusión en el lenguaje elegido definiendo un marco conceptual. 2º.‐ Escribir en cada línea la fbf de una premisa precedida por fbf‐Pi, y la conclusión precedida de fbf‐Q. 3º.‐ Escribir el razonamiento formalizado: a) mediante su notación formal P1, P2, …Pn ⇒ Q, o bien b) mediante una fórmula que lo represente: P1∧ P2 ∧ …∧ Pn → Q. >> Ejemplos de formalización de razonamientos con el lenguaje de proposiciones “Si Lupe canta ópera entonces es cantante. Lupe no canta ópera puesto que no es cantante”. Ejemplo 52 La información aparece desordenada, buscamos las sentencias que son as premisas y la que es la conclusión. P1: Si Lupe canta ópera entonces es cantante P2: Lupe no es cantante Q: Lupe no canta ópera MC = {Lupe canta ópera: p; Lupe es cantante: q} Fbf‐P1: p → q Fbf‐P2: ¬ q Fbf‐Q: ¬p Notación formal: p → q, ¬ q ⇒ ¬p MATEMÁTICAS-I GII.2011’12 20 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS Ejemplo 53 “Lupe viajará a Londres puesto que obtuvo la beca y habla muy bien inglés”. La información aparece desordenada. P1: Lupe obtuvo la beca P2: Lupe habla muy bien inglés Q: Lupe viajará a Londres MC = {Lupe obtuvo la beca: p; Lupe habla muy bien inglés: q; Lupe viajará a Londres: r} Fbf‐P1: p Fbf‐P2: q FbfQ: r Notación formal: p, q ⇒ r “Juan no será expulsado del club a menos que cometa algún altercado y sea un gamberro. Como no ha Ejemplo 54 sido expulsado, podemos concluir que no ha cometido ningún altercado ni es un gamberro”. La Premisa 1 es un Condicional que podemos enunciar de forma equivalente como: P1: Si Juan es expulsado del club es que ha cometido algún altercado y ha sido un gamberro P2: No ha sido expulsado. La conclusión es una conjunción que podemos enunciar, de manera equivalente, así: Q: Juan no ha cometido ningún altercado y Juan no es un gamberro. MC = {Juan es expulsado del club: ex; Juan comete altercado: al; Juan es gamberro: ga} Fbf‐P1: ex → al ∧ ga Fbf‐P2: ¬ex Fbf‐Q: ¬al ∧ ¬ga Notación formal: ex → al ∧ ga, ¬ex ⇒ ¬al ∧ ¬ga >> Ejemplos de formalización de razonamientos con el lenguaje de predicados Ejemplo 55 P1: Las personas que hacen deporte no salen de marcha. P2: Algunos que salen de marcha se fatigan. Q: Luego, existen personas que se fatigan y no hacen deporte. MC = {De(x): x hace deporte; Ma(x): x sale de marcha; Fa(x): x se fatiga} Formalización fbf‐P1: ∀x[De(x) → ¬Ma(x)] fbf‐P2: ∃x[Ma(x) ∧ Fa(x)] fbf‐Q: ∃x[Fa(x) ∧¬De(x)] MATEMÁTICAS-I GII.2011’12 21 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS Variables x, y, ... Constantes a, b, ... Conectivas ¬∧∨→↔ Términos Predicados P, Q, ... Átomos Negación ¬ Literales Cuantificadores ∀ ∃ fbf Vocabulario de la lógica de primer orden 2.10. Relación entre la teoría de conjuntos y la lógica de primer orden La lógica de predicados y la teoría de conjuntos están estrechamente relacionadas ya que toda propiedad lleva asociado un conjunto. Es más, todos los individuos que poseen una cierta propiedad forman un conjunto. De hecho en un principio se pensó que toda predicado en el lenguaje de la lógica de primer orden llevaba asociado un conjunto, por ejemplo la propiedad P(x) lleva asociado el conjunto {x : P(x)}. Este conjunto estaría formado por los elementos “x” del universo de discurso U que satisfacen la propiedad P(x). Así, por ejemplo, si nuestro universo de discurso es el de los seres humanos, y P(x) es la propiedad de que un humano x es poderoso. Dado un ser humano a; es posible determinar si a es poderoso, es decir, si a pertenece al conjunto {x : P(x)}. 2.11. Ejercicios resueltos >> Formalización de sentencias con el lenguaje proposicional Ejercicio 1 “Si acepto el mundo que me ofrecen y soy feliz, entonces empiezo a cavar mi propia sepultura; o bien, si no soy feliz así y no tengo posibilidad de cambiar este mundo, emprendo mi propio enterramiento”. Solución MC = { Acepto el mundo que me ofrecen: p; Soy feliz: Empiezo a cavar mi sepultura: q; r; Tengo posibilidad de cambiar el mundo: s; Emprendo mi enterramiento: Fbf: r } [p ∧ q → r] ∨ [¬q ∧ ¬s → r] Ejercicio 2 “Me gusta caminar bajo la lluvia siempre que tengo algo triste en que pensar”. Solución Podemos redactar la sentencia dada de forma equivalente: MATEMÁTICAS-I GII.2011’12 22 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS «Si tengo algo triste en que pensar, me gusta caminar bajo la lluvia» MC = {Tengo algo triste en que pensar: p; Me gusta caminar bajo la lluvia: q } Fbf: p → q. Ejercicio 3 “Si acierto una quiniela me hago rico”. Solución MC = {Acierto una quiniela: p; Me hago rico: q } Fbf: p → q Ejercicio 4 “Sólo si acierto una quiniela me hago rico”. Solución Se invierte el sentido de la frase porque ahora acertar una quiniela es condición necesaria para hacerme rico: Fbf: q → p Ejercicio 5 “No me hago rico a menos que acierte una quiniela”. Solución Fbf: q → p Ejercicio 6 “Me hago rico si y sólo si acierto una quiniela”. Solución Fbf: q ↔ p Ejercicio 7 “Si Drácula cruza las calles ha de indicar qué y cuántos fines persigue, aunque si miente, le daremos con las puertas en las narices pero si dice la verdad le invitaremos a cenar”. Solución MC = { Drácula cruza las calles: p Drácula indica qué fines persigue: q Drácula indica cuántos fines persigue: r Drácula dice la verdad: s Damos a Drácula con la puerta en las narices: t Invitamos a cenar a Drácula: w } Fbf: (p → q ∧ r) ∧ (¬s → t) ∧ (s → w) Ejercicio 8 Formalizar en el lenguaje proposicional la sentencia del lenguaje algorítmico: si (condición) entonces acción1 sino acción2 fin si Solución MC = {condición: p; acción1: q; acción2: r } Fbf: (p → q ∧ ¬r) ∧ (¬p → ¬q ∧ r) MATEMÁTICAS-I GII.2011’12 23 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS Ejercicio 9 Formalizar en el lenguaje proposicional el siguiente razonamiento: P1: “Si estudio todo el temario, entonces apruebo la asignatura”: e → ap P2: “No he aprobado la asignatura”: ¬ap Q: “No he estudiado todo el temario”: ¬e Solución MC = {condición: p; acción1: q; acción2: r } e → ap, ¬ap ⇒ ¬e Ejercicio 10 Formalizar en el lenguaje proposicional la sentencia: “Un partido de fútbol no se gana a menos que el árbitro sea malo y el portero no se duerma. Solución MC = {el partido de fútbol se gana: ga; el árbitro es malo: ma; el portero se duerme: du} Fbf: ga → ma ∧ ¬du Ejercicio 11 Formalizar en el lenguaje proposicional la sentencia: “Para que nieve pero no caiga granizo es necesario que haga mucho frío y que no llueva”. Solución MC = {nieva: ni; cae granizo: gr; hace mucho frio:fr; llueve:ll} Fbf: ni ∨ ¬gr → fr ∧ ¬ll Formalización de sentencias con el lenguaje predicativo Formalizar las siguientes sentencias con el MC = {a: Antonio; pe: Pepe; lu: Luís; M(x): x es médico; En(x): x es enfermero; Am(x, y): x es amigo de y} Ejercicio 12 “Antonio, Pepe y Luis son médicos o enfermeros”. Solución FBF: (M(a) ∧ M(pe) ∧ M(lu)) ∨ (En(a) ∧ En(pe) ∧ En(lu)) Ejercicio 13 “Los médicos son amigos de Luís, que es enfermero”. Solución «Es suficiente que un sujeto sea médico para que sea amigo de Luís» Fbf: ∀x [M(x) → Am(x, lu) ∧ En(lu)] Ejercicio 14 “Algunos médicos son amigos de Luís, que es enfermero”. Solución Fbf: ∃x [M(x) ∧ Am(x, lu) ∧ En(lu)] Ejercicio 15 “Algunos médicos amigos de Luís son amigos de Antonio, que no es médico”. Solución Fbf: ∃x [M(x) ∧ Am(x, lu) ∧ Am(x, a) ∧ ¬M(a)] Ejercicio 16 “Todos los amigos de Luís son amigos de Antonio, pero los amigos de Pepe, que no son enfermeros, no lo son”. MATEMÁTICAS-I GII.2011’12 24 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS Solución Fbf: ∀x [Am(x,lu) → Am(x,a)] ∧ ∀x [Am(x,pe) ∧ En(x) → ¬Am(x,a)] Ejercicio 17 “Sólo los amigos de Antonio, que son enfermeros, son amigos de los amigos de Pepe, que no son médicos” Solución Fbf: ∀x∀y [ A(x,y) ∧ Am(y,pe) ∧ ¬M(y) → Am(x,a) ∧ En(x) ] Ejercicio 18 Dados los siguientes conjuntos: A = {2,4,6}, B = {4,6,8,10}, C = {10.14,16,26} Calcular a) A ∩ B. b) A ∪ B. c) A ∩ φ. d) A ∩ C. e) A ∩ A, Solución a) b) c) d) e) 2.12. A ∩ B = {4,6} A ∪ B = {2,4,6,8,10}. A ∩ φ = φ. A ∩ C = φ. A ∩ A = A Si quieres saber más… • Libros: “Lógica de Primer Orden”. Castel Mª J. y Llorens F. DCCIA, U.A. 1999. “Introducción a la Lógica Formal”. Deaño, A. Alianza U.Textos, 1992. “Lógica Simbólica” Garrido, M. Ed. Tecnos, S.A., 2ºed. 1991 “Matemática Discreta y Lógica. Una perspectiva desde la C. C”. Grassmann, W.K. y Tremblay. Ed. Prentice Hall, 1996. • Enlaces: http://sisbib.unmsm.edu.pe/bibvirtualdata/libros/Filosofia/intro_logica/1_parte.pdf http://usuarios.bitmailer.com/edeguzman/Lenguaje/01conect.htm http://wmatem.eis.uva.es/~matpag/CONTENIDOS/Conjuntos/marco_conjuntos.htm • Lógica divertida 1. Lenguaje natural … ¿engorroso o con doble intención? ¿Cómo quieres que vaya de noche a verte si el perro de tu padre sale a morderme? 2. Bertrand Russell estaba tratando sobre los enunciados condicionales y sosteniendo que un enunciado falso implica cualquier cosa. Un filósofo escéptico le preguntó: ‐ ¿Quiere usted decir que si 2+2=5, entonces es usted el Papa? Russell contesto afirmativamente y dio la divertida “prueba” que sigue: ‐ Si suponemos que 2+2=5, entonces seguramente estará usted de acuerdo en que si restamos 2 de cada lado de la ecuación, nos da 2=3. Invirtiendo los términos, tenemos 3=2 y restando 1 de cada lado de la ecuación, nos da 2=1. MATEMÁTICAS-I GII.2011’12 25 TEMA 2: EL LENGUAJE DE LA LÓGICA DE PRIMER ORDEN Y LA TEORÍA DE CONJUNTOS De modo que, como el Papa y yo somos dos personas, y 2=1, entonces el Papa y yo somos uno. Luego, yo soy el Papa. 3. Un término puede referirse a muchos objetos y tener un sólo significado, dependiendo de cuándo, dónde y por quién sea pronunciado: “Dos amigos están hablando del triste estado de la moral sexual de hoy en día: ‐ Yo nunca me acosté con mi mujer antes de que nos casáramos ‐ dice uno de ellos, haciéndose el santo ‐. ¿Y tú? ‐ No estoy seguro ‐ responde el otro ‐. ¿Cómo se llama?” 4. En un pueblo se ha formado un club llamado el “Club de los Corazones”, que tiene los siguientes estatutos: “Para cualquier mujer del pueblo si no pertenece a todos los clubs, pertenece al Club de los Corazones”. 5. Sobre el implicador. En la antigüedad se sostenía una interesante discusión; Filón de Megara afirmaba la implicación material siguiente: “para que dos proposiciones se impliquen basta con que no se dé el caso de que el antecedente sea verdadero y el consecuente falso, sin importar el contenido de las mismas”. Con esto, los antiguos filósofos no estaban muy de acuerdo porque, entonces, la siguiente afirmación: «Si es de noche, entonces discuto» es verdadera cuando: ‐ sea de día aunque no discuta (implicación con antecedente F). ‐ discuto aunque no sea de noche (implicación con consecuente V). Diodoro Crono, maestro de Filón, no aceptaba este punto de vista, porque le parecía absurdo que la proposición condicional “si es de noche, entonces discuto" se convirtiese circunstancialmente V durante el día. Para Diodoro si una proposición es V lo tiene que ser siempre, esto es, es imposible que se dé el caso de que el antecedente sea V y el consecuente F (implicación material estricta). La implicación diodórica se conoce como implicación formal. MATEMÁTICAS-I GII.2011’12 26