CAPÍTULO 1 Lógica En lógica se analiza, entre otros muchos temas, si un razonamiento dado es correcto o no. Si bien sus aplicaciones prácticas son muy diversas, mencionaremos apenas dos: en las demostraciones (en matemáticas), y en la elaboración de programas (en computación). 1.1. Proposiciones 1.1.1. Proposición Definición 1. Una proposición es una oración declarativa que es verdadera o falsa, pero no ambas cosas a la vez. Notación: para las proposiciones se emplean letras y, por convenio, se empieza con p, q, r, s, ..., también usaremos P, Q, R, S , ... 1.1.2. Valor de verdad Definición 2. El Valor de Verdad (VV) de una proposición dada, o bien es verdadero si la misma es verdadera, o bien es falsa en caso contrario. Notación: en el primer caso simbolizaremos con T y con F en el segundo caso. Observación 1. Denotaremos “verdadero”, ya sea con T, como en estas notas, o también con V, como en el texto de referencia o en las prácticas. Un motivo de la primera elección es para aminorar confusiones con el sı́mbolo ∨. Observación 2. Evitaremos simbolizar falso y verdadero con 0 y 1, respectivamente, la cual es una notación muy difundida, e.g. en técnicas digitales, o en la Sec. 2.7 del texto de referencia (2), etc. 1.1.3. Proposición compuesta Definición 3. Una proposición compuesta es un proposición obtenida por la combinación de una o más proposiciones dadas mediante el uso de operadores (o conectivos) lógicos. 1 1.1. PROPOSICIONES CAPÍTULO 1. LÓGICA 1.1.4. Tabla de verdad Definición 4. La Tabla de Verdad (TV) muestra en forma sistemática los valores de verdad de una proposición compuesta en función de los todas las combinaciones posibles de los valores de verdad de las proposiciones que la componen. 1.1.5. Operadores o conectivos lógicos Comentario 1. Consideraremos 6 operadores (o conectivos) lógicos: 1) 2) 3) 4) 5) 6) Negación (not) Conjunción (and) Disyunción (inclusiva) (or) Disyunción exclusiva (xor) Implicación (material implication) Doble implicación o bicondicional (eqv) en donde, en negrita, se destacan los conectivos lógicos de uso tan frecuente que han sido incorporados en pseudolenguajes, técnicas digitales, y en lenguajes de programación. En el libro de texto de referencia (2) se emplean casi indistintamente las frases “operador lógico” y “conectivo lógico” excepto para la negación, en donde prefiere la primera (porque sólo hay una proposición p). Comentario 2. Ocasionalmente intercalaremos programas demos en algunos temas. Los mismos serán escritos en el lenguaje Python (1) y, para su seguimiento, será suficiente un conocimiento rudimentario del mismo. Con respecto a Python: 1) Es gratis, con más precisión, posee una licencia de código abierto denominada Python Software Foundation License, y que es compatible con la Licencia Pública General de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores; 2) Está disponible para las principales plataformas (Linux, MS-Windows, Mac OS y otras), y las nuevas versiones son lanzadas simultáneamente; 3) Tiene diversos entornos integrados para el desarrollo, de cuales mencionamos el idle; 4) La distribución oficial incluye una amplia variedad de extensiones (denominadas módulos); 5) No obstante, hay bastante incompatibilidad entre las versiones 2.x y las 3.x. Todos los demos en el curso asumen versiones de Python 3.x. La cátedra dispone de demos completos autocontenidos para aquellos interesados en experimentar en la computadora. 1.1.6. Negación Definición 5. Sea p una proposición. El enunciado “no se cumple p” es otra proposición llamada la negación de p. Notación: la negación de p se denota con ¬p y se lee “no p”. La TV de la negación es la dada en la Tabla 1.1. 2 CAPÍTULO 1. LÓGICA 1.1. PROPOSICIONES p ¬p F T T F Tabla 1.1: Negación (not). 1.1.7. Conjunción Definición 6. Sean p y q proposiciones. La proposición compuesta “p y q” es la proposición que es verdadera cuando tanto p como q son verdaderas y es falsa en los demás casos. Notación: la conjunción de p y q se denota con p ∧ q y se lee “p y q”. La TV de la conjunción es la dada en la Tabla 1.2. p F F T T q p∧q F F T F F F T T Tabla 1.2: Conjunción (and). 1.1.8. Disyunción (o disyunción inclusiva) Definición 7. Sean p y q proposiciones. La proposición “p ó q” es la proposición que es falsa cuando tanto p como q son falsas y es verdadera en los demás casos. La TV de la disyunción inclusiva es la Tabla 1.3. Notación: la disyunción de p y q se denota con p ∨ q y se lee “p ó q”. Observación 3. En ciencias jurı́dicas, para evitar ambiguedades, se suele preferir decir “p y/o q”, lo cual justifica el calificativo “disyunción inclusiva”, esto es, p∨q es verdadera cuando, o bien p es verdadera y q es falsa, o bien p es falsa y q es verdadera, o bien ambas p y q son verdaderas. p F F T T Tabla 1.3: Disyunción q p∨q F F T T F T T T (o disyunción inclusiva, or). 3 1.1. PROPOSICIONES CAPÍTULO 1. LÓGICA 1.1.9. Disyunción exclusiva Definición 8. Sean p y q proposiciones. La proposición “o bien p o bien q” es aquella que es verdadera cuando exactamente solo una de la proposiciones es verdadera, y es falsa en los demás casos. Notación: la disyunción exclusiva de p y q se denota con p⊕q y se puede leer como “o bien p o bien q”. La TV de la disyunción exclusiva es la dada en la Tabla 1.4. p F F T T q p⊕q F F T T F T F T Tabla 1.4: Disyunción exclusiva (xor). Observación 4. Las TV de la disyunción exclusiva p ⊕ q y de (p ∧ ¬q) ∨ (¬p ∧ q) son las mismas, como se muestra en la Tabla 1.5. p F F T T Tabla 1.5: Las q p ⊕ q (p ∧ ¬q) ∨ (¬p ∧ q) F F F T T T F T T T F F TV de la disyunción exclusiva p ⊕ q y de (p ∧ ¬q) ∨ (¬p ∧ q) son las mismas. Tarea 1. Mostrar que las TV de la disyunción exclusiva p ⊕ q y de ¬(p ∧ q) ∧ (p ∨ q) son las mismas. Observación 5. Una implementación de la disyunción exclusiva p ⊕ q, teniendo en cuenta la Observ. 4, es la mostrada en la función logical xor(p,q). Tener presente que las lı́neas 6-12 fueron agregadas para definir un demo autocontenido pero en los subsecuentes ejemplos las omitiremos. Por otra parte, en Python se acostumbra a: (i) no poner un espacio entre el nombre de las funciones y el paréntesis de comienzo de la lista de argumentos; (ii) dejar una lı́nea en blanco antes de que empiece una función nueva. Observación 6. Lı́neas de código auxiliares, tales como 6-12 en la siguiente función, deben omitirse en las evaluaciones. 1 2 3 4 5 6 # I n i d l e 3 open t h i s f i l e and h i t F5 ( ” r u n module ” ) . def l o g i c a l x o r ( p , q ) : z = ( p and n o t q ) or ( n o t p and q ) return z # Test 4 CAPÍTULO 1. LÓGICA 7 8 9 10 11 12 1.2. PROPOSICIONES CONDICIONALES name == ’ m a i n ’ : t e s t d a t a = [ [ False , F a l s e ] , [ False , True ] , [ True , F a l s e ] , [ True , True ] ] for ( p , q ) in t e s t d a t a : print (p , q , l o g i c a l x o r (p , q ) ) # end if 1.1.10. Tablas de verdad con más de dos proposiciones Con dos proposiciones p y q, se observa que las TV tienen 4 filas, e.g. las correspondientes a los conectivos lógicos (excepto la negación); En general, la TV de una proposición obtenida por la combinación de n proposiciones, tendrá 2n filas. Este resultado se demuestra en conteo (y suele preguntarse en el parcial 2, globalizador y finales!); Si bien no es importante el orden dado a las filas en una TV, sin embargo, puede ser conveniente adquirir un criterio sistemático, para no omitir alguna fila combinatoria y/o no repetir alguna (un error algo frecuente en evaluaciones). Ejemplo 1. Si una proposición compuesta está formada por 2, 3, 4, y 5 proposiciones, entonces hay 4, 8, 16, y 32 filas en su TV, respectivamente, lo cual no parece tan extenso de hacer; Pero con 200, 300, 400, y 500 proposiciones habrán, aproximadamente, 1 × 106 , 2 × 1090 , 2 × 10120 , y 3 × 10150 filas en su TV, respectivamente, lo cual es muy caro, aún computacionalmente. Adelantamos que leyes de crecimiento como 2n son muy “malas noticias” en computación. 1.2. Proposiciones condicionales 1.2.1. Implicación Definición 9. Sean p y q proposiciones. La implicación “si p entonces q” es la proposición que es falsa únicamente cuando p es verdadera y q es falsa, y es verdadera en los demás casos. Notación: la implicación “si p entonces q”, se denota con p → q. Nomenclatura: en la implicación p → q, la p es el antecedente (o premisa o hipótesis), y la q es el consecuente (o conclusión o tesis). La TV de la implicación es la dada en la Tabla 1.6. Observación 7. La definición de la implicación p → q es más general que en el lenguaje corriente, i.e. a diferencia del sentido común, no hay una relación “causa-efecto” entre la premisa p y la conclusión q, lo cual es sorprendente para el neófito (verlo en la Guı́a de Trabajos Prácticos (GTP)); 5 1.2. PROPOSICIONES CONDICIONALES p F F T T CAPÍTULO 1. LÓGICA q p→q F T T T F F T T Tabla 1.6: Implicación. Una forma útil de entender el VV de la implicación es pensarla como un contrato legal. Tarea: leer el ejemplo alusivo en el libro de texto (2); Observación 8. Hay muchas maneras de expresar la implicación p → q (todas se preguntan en las evaluaciones!). Mencionamos 12: 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) Si p, entonces q. Si p, q. p es suficiente para q. q si p. q cuando p. Una condición necesaria para p es q. p implica q. p sólo si q. Una condición suficiente para q es p. q siempre que p. q es necesaria para p. q se deduce de p. Observación 9. En los cursos de lógica se analiza con más cuidado el siguiente detalle en el fraseo de la implicación “si p entonces q”: Normalmente la palabra si introduce al antecedente. O sea, lo que viene a continuación de la palabra si es la premisa p; La excepción es cuando aparece la frase sólo si, en donde se invierten los terminos. O sea, lo que sigue después del solo si es la conclusión q. Ejemplo 2. [por Eli Haye]. Sea p: ser santafesino, y q: ser argentino. Se tiene: 1) 2) 3) 4) 5) 6) 7) 8) 9) Si (es santafesino), entonces (es argentino). Si (es santafesino), (es argentino). (Ser santafesino) es suficiente para (ser argentino). (Es argentino) si (es santafesino). (Es argentino) cuando (es santafesino). Una condición necesaria para (ser santafesino) es (ser argentino). (Ser santafesino) implica (ser argentino). (Es santafesino) sólo si (es argentino). Una condición suficiente para (ser argentino) es (ser santafesino). 6 CAPÍTULO 1. LÓGICA 1.2. PROPOSICIONES CONDICIONALES 10) (Es argentino) siempre que (sea santafesino). 11) (Ser argentino) es necesario para (ser santafesino). 12) (Ser argentino) se deduce de (ser santafesino). Observación 10. Una implementación de la implicación p → q es la mostrada en la función implicacion(p,q). 1 2 3 4 5 6 d e f i m p l i c a c i o n ( p , q ) : # donde ” p ” y ” q ” s o n v a l o r e s b o o l e a n o s i f ( p == F a l s e ) : z = True else : z = q return z 1.2.2. Recı́proca, contrapositiva (o contra-recı́proca) e inversa Definición 10. A partir de la implicación p → q se definen: La proposición q → p es la recı́proca de p → q; La proposición ¬q → ¬p es la contrapositiva (o contra-recı́proca) de p → q; La proposición ¬p → ¬q es la inversa de p → q. Observación 11. Las TV de la implicación p → q y de su contrapositiva ¬q → ¬p son las mismas, ver la Tabla 1.7. Tarea 2. Mostrar que las TV de la recı́proca y de la inversa son las mismas. p F F T T q p → q ¬q → ¬p F T T T T T F F F T T T Las TV de la implicación p → q y de su contrapositiva ¬q → ¬p son las mismas. Tabla 1.7: 1.2.3. Doble implicación (o bicondicional) Definición 11. Sean p y q proposiciones. La doble implicación (o bicondicional) de p y q es la proposición compuesta que es verdadera cuando p y q tienen los mismos valores de verdad y es falsa en los demás casos. Notación: la doble implicación de p y q se denota con p ↔ q. La TV de la doble implicación es la dada en la Tabla 1.8. Observación 12. Hay varias maneras de expresar la doble implicación p ↔ q (y se preguntan en las evaluaciones!). Mencionamos 4: 7 1.2. PROPOSICIONES CONDICIONALES p F F T T Tabla 1.8: Doble 1) 2) 3) 4) CAPÍTULO 1. LÓGICA q p↔q F T F T F F T T implicación (o bicondicional, eqv). p si y sólo si q. p es necesario y suficiente para q. Si p entonces q y recı́procamente. p ssi p. Observación 13. La TV de la doble implicación (o bicondicional) p ↔ q y de (p → q) ∧ (q → p) son las mismas, ver la Tabla 1.9. Esto es útil en las demostraciones. p F F T T Tabla 1.9: Las q p ↔ q (p → q) ∧ (q → p) F T T T F F F F F T T T TV de la doble implicación p ↔ q y de (p → q) ∧ (q → p) son las mismas. Observación 14. , Las TV de la doble implicación (o bicondicional) p ↔ q y de (p ∧ q) ∨ (¬p ∧ ¬q) son las mismas, como se muestra en la Tabla 1.10. p F F T T Tabla 1.10: Las q p ↔ q (p ∧ q) ∨ (¬p ∧ ¬q) F T T F F T F F F T T T TV de la disyunción exclusiva p⊕q y de (p∧q)∨(¬p∧¬q) son las mismas. Observación 15. La Observ. 14 es útil en programación, pues una implementación de la doble implicación p ↔ q es la mostrada en la función logical eqv v1(p,q). 1 2 3 d e f l o g i c a l e q v v 1 ( p , q ) : # donde ” p ” y ” q ” s o n v a l o r e s b o o l e a n o s z = ( p and q ) or ( n o t p and n o t q ) return z Observación 16. También se puede programar la doble implicación p ↔ q como se muestra en la función logical eq v2(p,q), con menos operaciones booleanas “a la vista”, una binaria y una unaria. 8 CAPÍTULO 1. LÓGICA 1.2. prioridad de precedencia 1 2 3 4 5 Tabla 1.11: Reglas 1 2 3 4 5 6 7 operador lógico ¬ ∧ ∨ → ↔ PROPOSICIONES CONDICIONALES nombre negación conjunción (and) disyunción (or) implicación doble implicación de precedencia de los operadores lógicos. d e f l o g i c a l x o r ( p , q ) : # donde ” p ” y ” b ” s o n v a l o r e s b o o l e a n o s z = ( p and n o t q ) or ( n o t p and q ) return z def l o g i c a l e q v v 2 ( p , q ) : z = not l o g i c a l x o r ( p , q ) return z 1.2.4. Reglas de precedencia de los operadores lógicos La proposición compuesta (p ∨ q) ∧ (¬r) es la conjunción de p ∨ q y de ¬r; Para reducir el número de paréntesis se conviene que la negación se aplica antes que los demás operadores, e.g. la proposición (¬p) ∧ q, se reduce a ¬p ∧ q, pero (¬p) ∧ q no es lo mismo que ¬(p ∧ q); En general se acostumbra, si no hay ambiguedades, utilizar las reglas de precedencia (RP) dadas en la Tabla 1.11. Empero, si hay dudas, entonces emplear los paréntesis; Ejemplo: la notación p ∨ q → r quiere significar (p ∨ q) → r. De ningún modo equivale, por ejemplo, a p ∨ (q → r), una (fatal) errata vista en examen; Las RP se usan libremente tanto en los libros como en la GTP y en las evaluaciones. 1.2.5. Tautologı́a, contradicción y contingencia Definición 12. Una proposición compuesta que siempre es verdadera, no importando los VV de sus proposiciones componentes, se denomina tautologı́a. Definición 13. Una proposición compuesta que siempre es falsa, no importando los VV de sus proposiciones componenentes, se denomina contradicción. Definición 14. Una proposición compuesta que no es una tautologı́a ni una contradicción se denomina contingencia. Ejemplo 3. En la Tabla 1.12 se muestra un ejemplo de una tautologı́a y de una contradicción. 9 1.2. PROPOSICIONES CONDICIONALES CAPÍTULO 1. LÓGICA p ¬p p ∨ ¬p p ∧ ¬p F T T F T F T F Un ejemplo de una tautologı́a (la columna p ∨ ¬p siempre es T), y de una contradicción (la columna p ∧ ¬p siempre es F). Tabla 1.12: Equivalencia Lógica (EL ) p∨F ≡ p p∧T ≡ p p∨T ≡T p∧F ≡ F p∨ p≡ p p∧ p≡ p ¬(¬p) ≡ p p∨q≡q∨ p p∧ p≡q∧ p Tabla 1.13: Tabla Ley 1 identidad dominación 2 idempotencia 3 doble negación 4 conmutativas 5 de EL de uso muy frecuente (continúa en la Tabla 1.14). 1.2.6. Equivalencia lógica Definición 15. Se dice que las proposiciones p y q son lógicamente equivalentes (LE ), o que p y q definen una equivalencia lógica, siempre que p ↔ q es una tautologı́a. Notación: cuando p y q son LE se denota con p ≡ q. Observación 17. El sı́mbolo ≡ no es un operador (o conectivo) lógico, puesto que p ≡ q no es una proposición compuesta, sino que quiere indicar que p ↔ q es una tautologı́a. Ejemplo 4. En las Tablas 1.13-1.14 se listan las equivalencias lógicas de uso muy frecuente en las evaluaciones. Ejemplo 5. En las Tablas 1.15-1.16 se incluye listados de EL relacionadas con condicionales y bicondicionales, respectivamente. Tarea 3. Verificar cada una de las leyes listadas en las Tablas 1.13-1.16, e.g. como se hace en el siguiente ejemplo. Ejemplo 6. Leyes de De Morgan para dos proposiciones. En las Tablas 1.17-1.18 se demuestra, por medio de una TV que: ¬(p ∨ q) ≡ ¬p ∧ ¬q, que puede enunciarse como: es equivalente a (no p) y (no q)”; “no (p o q) ¬(p ∧ q) ≡ ¬p ∨ ¬q, que puede enunciarse como: es equivalente a (no p) o (no q)”. “no (p y q) 10 CAPÍTULO 1. LÓGICA 1.2. PROPOSICIONES CONDICIONALES EL (p ∨ q) ∨ r ≡ p ∨ (q ∨ r) (p ∧ q) ∧ r ≡ p ∧ (q ∧ r) p ∨ (q ∧ r) ≡ (p ∨ q) ∧ (p ∨ r) p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r) ¬(p ∨ q) ≡ ¬p ∧ ¬q ¬(p ∧ q) ≡ ¬p ∨ ¬q p ∨ (p ∧ q) ≡ p p ∧ (p ∨ q) ≡ p p ∨ ¬p ≡ T p ∧ ¬p ≡ F Tabla 1.14: Tabla Ley asociativas 6 distributivas 7 De Morgan 8 absorción 9 negación 10 de EL de uso muy frecuente (continuación de la Tabla 1.13). p → q ≡ ¬q → ¬p p → q ≡ ¬p ∨ q ¬(p → q) ≡ p ∧ ¬q p ∨ q ≡ ¬p → q p ∧ q ≡ ¬(p → ¬q) (p → q) ∧ (p → r) ≡ p → (q ∧ r) (p → r) ∧ (q → r) ≡ (p ∨ q) → r) (p → q) ∨ (p → r) ≡ p → (q ∨ r) (p → r) ∨ (q → r) ≡ (p ∧ q) → r) Tabla 1.15: Algunas (c1) (c2) (c3) (c4) (c5) (c6) (c7) (c8) (c9) EL relacionadas con condicionales. Ejemplo 7. Consigna: justificar, con y sin el uso de TV, si ((p → q) ∧ (q ∧ r)) → (p → r), es una tautologı́a, contradicción o contingencia. Solución: Con TV: para el hogar! Sin TV: considerar los pasos detallados en la Ec (1.1); Comentario: la técnica es eliminar las implicaciones, luego las negaciones, luego asociar o distribuir para obtener alguna ley conocida (e.g. identidad, dominación, absorción, negación, etc. Hay muchos caminos... el mejor es el de intentar, e intentar, e intentar, ... p ↔ q ≡ (p → q) ∧ (q → p) p ↔ q ≡ ¬p ↔ ¬q p ↔ q ≡ (p ∧ q) ∨ (¬p ∧ ¬q) ¬(p ↔ q) ≡ p ↔ ¬q Tabla 1.16: Otras (b1) (b2) (b3) (b4) EL relacionadas con bicondicionales. 11 1.3. CUANTIFICADORES CAPÍTULO 1. LÓGICA P p F F T T Tabla 1.17: Demostración q F T F T Q z }| { z }| { ¬(p ∨ q) ¬p ∧ ¬q P ↔ Q T T T F F T F F T F F T mediante TV de las leyes de De Morgan para proposiciones en el caso ¬(p ∨ q). P p F F T T Tabla 1.18: Demostración q F T F T Q z }| { z }| { ¬(p ∧ q) ¬p ∨ ¬q P ↔ Q T T T T T T T T T F F T mediante TV de las leyes de De Morgan para proposiciones en el caso ¬(p ∧ q). [(p → q) ∧ (q → r)] → (p → r) ≡ ¬[(p → q) ∧ (q → r)] ∨ (p → r) ≡ [¬(p → q) ∨ ¬(q → r)] ∨ (p → r) ≡ ¬(p → q) ∨ ¬(q → r) ∨ (p → r) ≡ ¬(¬p ∨ q) ∨ ¬(¬q ∨ r) ∨ (¬p ∨ r) ≡ (p ∧ ¬q) ∨ (q ∧ ¬r) ∨ (¬p) ∨ r ≡ [(p ∧ ¬q) ∨ ¬p] ∨ [(q ∧ ¬r) ∨ r] ≡ [(p ∨ ¬p) ∧ (¬q ∨ ¬p)] ∨ [(q ∨ r) ∧ (¬r ∨ r)] ≡ [T ∧ (¬q ∨ ¬p)] ∨ [(q ∨ r) ∧ T ] ≡ (¬q ∨ ¬p) ∨ (q ∨ r) ≡ ¬q ∨ ¬p ∨ q ∨ r ≡ (¬q ∨ q) ∨ (¬q ∨ r) ≡ T ∨ (¬q ∨ r) ≡T 1.3. Cuantificadores 1.3.1. Función proposicional Definición 16. 12 uso Tabla 1.15-c1 uso ley de De Morgan elimino corchetes uso Tabla 1.15-c1 De Morgan y saco último () asocio convenientemente uso ley distributiva (1.1) uso ley de la negación uso ley de identidad puedo quitar paréntesis asocio convenientemente uso ley de la negación uso ley de la dominación es una tautologı́a. CAPÍTULO 1. LÓGICA 1.3. CUANTIFICADORES Sea P(x) un enunciado que incluye a la variable x ∈ D. Se denomina Función Proposicional (FP ), o predicado, al enunciado P si, para cada valor x ∈ D, se tiene que P(x) es una proposición; Se denomina Dominio de Discurso (DD ) al conjunto D del enunciado P. Caso con más de una variable: un enunciado de la forma P(x1 , x2 , ..., xn ) es el VV de la FP P en la n-tupla (x1 , x2 , ..., xn ); Observación 18. Algunos conjuntos de uso frecuente: Enteros: Z = {..., −3, −2, −1, 0, 1, 2, 3, ...} (notar que el 0 no-tiene signo); Enteros positivos: Z+ = {1, 2, 3, ...}; Enteros negativos: Z− = {..., −3, −2, −1}; Enteros no-negativos: Z+0 = {0, 1, 2, 3, ...}; Números reales R. Observación 19. En general, el VV de una FP puede ser, o bien T, o bien F, según sea el valor de x, como se muestra en el siguiente ejemplo. Ejemplo 8. Sea el enunciado “P (x): x es mayor a 4”, con x ∈ R. Entonces, P(7) es T, y P(2) es F. Sea el enunciado “Q (x,y): x = y + 3”, con x ∈ R. Entonces, Q(1, 2) es F, y Q(3, 0) es T. 1.3.2. Cuantificador existencial Definición 17. La cuantificación existencial de la función proposicional P con DD D, es la proposición: P(x) es verdadera para al menos un valor x en el DD . Notación. Se denota con ∃x, P(x), donde ∃ es el cuantificador existencial. Nomenclatura. La notación ∃x, P(x) se puede leer indistintamente como sigue: Hay UN x tal que P(x); Hay AL MENOS UN x tal que P(x); Para ALGUN x, P(x); EXISTE x tal que P(x). Observación 20. Cuando todos los elementos del DD se pueden enumerar, o sea x1 , x2 , ... xn (tal como en un demo de algún lenguaje de programación), se tiene que ∃x, P(x) ≡ P(x1 ) ∨ P(x2 ) ∨ ... ∨ P(xn ) (1.2) puesto que la disyunción es verdadera ssi al menos uno de P(x1 ), P(x2 ), ..., P(xn ) es verdadero. Esta alternativa la usaremos en un programa demo en la Sec. 1.3.5. 13 1.3. CUANTIFICADORES CAPÍTULO 1. LÓGICA 1.3.3. Cuantificador universal Definición 18. La cuantificación universal de la función proposicional P con DD D, es la proposición: P(x) es verdadera para todos los valores x en el DD . Notación. Se denota con ∀x, P(x), donde ∀ es el cuantificador universal. Nomenclatura. La notación ∀x, P(x) se puede leer indistintamente como sigue: Para TODO x se cumple P(x); Para CUALQUIER x se cumple P(x); Para CADA x se cumple P(x). Observación 21. Cuando todos los elementos del DD se pueden enumerar, o sea x1 , x2 , ... xn se tiene que ∀x, P(x) ≡ P(x1 ) ∧ P(x2 ) ∧ ... ∧ P(xn ) (1.3) puesto que la conjunción es verdadera ssi P(x1 ), P(x2 ), ..., P(xn ) son todas verdaderas. Esta alternativa la usaremos en un programa demo en la Sec. 1.3.5. Observación 22. En la Tabla 1.19 se resume cuándo una sentencia cuantificada es T o F. Observación 23. Enfatizamos la importancia que tiene el DD en los ejercicios: para una misma sentencia cuantificada, el resultado puede ser verdadero o falso dependiendo de cómo se haya definido el DD , como se muestra en el siguiente ejemplo. Ejemplo 9. Evaluar el VV de ∀x (x2 ≥ x) cuando: (i) x ∈ R (tema 1); y (ii) x ∈ Z (tema 2). Solución: sea x2 ≥ x. Restando x miembro a miembro, se tiene que x2 − x ≥ x − x, y sacando factor común x en el lazo izquierdo de esta última desigualdad queda x(x−1) ≥ 0, cuyas soluciones son x ≤ 0 o x ≥ 1. En cuanto al intervalo 0 < x < 1 se puede observar: i) Cuando la variable x puede tomar valores reales, habrán (infinitos) valores de x en dicho intervalo pero, en ese caso, la última desigualdad es inválida (verificarlo!). Por eso, se concluye que ∀x (x2 ≥ x) es F cuando x ∈ R; ii) Cuando la variable x sólo puede tomar valores enteros, no existen valores de x en dicho intervalo tales que hagan F la última desigualdad. Por tanto, en este caso se concluye que ∀x (x2 ≥ x) es T cuando x ∈ Z. 1.3.4. Negación de proposiciones cuantificadas o leyes de De Morgan generaliza- das para la lógica Teorema 1. Sea P una FP en un DD D dado. Entonces ¬(∃x, P(x)) ≡ ∀x¬P(x) ¬(∀x, P(x)) ≡ ∃x¬P(x) (1.4) Demostración de la primera parte (la segunda queda como tarea para el hogar): Suponga que ¬(∃x, P(x)) es T. Eso significa que ∃x, P(x) es F. Por la definición del cuantificador existencial, la proposición ∃x, P(x) es F cuando P(x) es F para todo x ∈ D. Pero si P(x) es F para todo x ∈ D, eso significa que ¬P(x) es T para todo 14 CAPÍTULO 1. LÓGICA 1.3. CUANTIFICADORES sentencia cuándo es T cuándo es F cuantificada ∃x, P(x) P(x) es T para AL MENOS UN x P(x) es F para TODO x ∀x, P(x) P(x) es T para TODO x Al menos un x tal que P(x) es F Tabla 1.19: Casos cuando una sentencia cuantificada es T o F. x ∈ D. Por la definición del cuantificador universal, cuando ¬P(x) es T para todo x ∈ D, la proposición ∀x, ¬P(x) es T. Entonces, cuando ¬(∃x, P(x)) es T, la proposición ∀x, ¬P(x) también es T; Suponga que ¬(∃x, P(x)) es F. Eso significa que ∃x, P(x) es T. Por la definición del cuantificador existencial, la proposición ∃x, P(x) es T cuando P(x) es T para algún x ∈ D. Pero si P(x) es T para algún x ∈ D, eso significa que ¬P(x) es F para todo x ∈ D. Por la definición del cuantificador universal, cuando ¬P(x) es F para todo x ∈ D, la proposición ∀x, ¬P(x) es F. Entonces, cuando ¬(∃x, P(x)) es F, la proposición ∀x, ¬P(x) también es F. 1.3.5. Algoritmos para cuantificadores Ejemplo 10. Algunos lenguajes de programación preven instrucciones para los cuantificadores ∃x y ∀x en el caso en que todos los elementos del DD se pueden enumerar (o sea x1 , x2 , ... xn ). Uno de tales lenguajes es el Python (1). Consigna: dados una función proposicional P y un dominio de discurso X, escriba funciones en lenguaje Python que simulen el comportamiento de los cuantificadores existenciales y universales. Solución: se pueden pensar implementaciones básicas, intermedias (para entusiastas), y más avanzadas (para entusiastas), como se hacen a continuación, en donde las instrucciones any y all son nativas de este lenguaje. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # Cuantificadores existenciales y universales . # Caso A : i m p l e m e n t a c i o n e s b a s i c a s . d e f E x i s t e X ( P , X) : f o r x in X: if P(x) : return True return False d e f ParaTodoX ( P , X) : f o r x in X: i f not P ( x ) : return False return True # Caso B : i m p l e m e n t a c i o n e s i n t e r m e d i a s ( p a r a e n t u s i a s t a s ) . d e f E x i s t e X ( P , X) : i f any ( P ( x ) f o r x i n X) : return True return False 15 1.3. 20 21 22 23 24 25 26 27 28 29 CUANTIFICADORES CAPÍTULO 1. LÓGICA d e f ParaTodoX ( P , X) : i f a l l ( P ( x ) f o r x i n X) : return True return False # Caso C : i m p l e m e n t a c i o n e s a v a n z a d a s ( p a r a e n t u s i a s t a s ) . d e f E x i s t e X ( P , X) : r e t u r n any ( P ( x ) f o r x i n X) d e f ParaTodoX ( P , X) : r e t u r n a l l ( P ( x ) f o r x i n X) 1.3.6. Cuantificadores doblemente anidados Los veremos a través de un ejemplo y los ejercicios en la GTP. Ejemplo 11. Exprese en palabras y determine el VV de las siguientes proposiciones cuantificadas, en donde x, y ∈ R: Sea ∃x∃y (x + y = 17). En palabras: para algún x, existe un y tal que x + y = 17. Valor de Verdad: en este caso es posible hallar, al menos, un par x, y tal que x + y = 17 (e.g. sea el par x = 7 e y = 10). Como ambos cuantificadores son existenciales, un ejemplo es suficiente para concluir que el VV de esta proposición es T; Sea ∀x∃y (x + y = 17). En palabras: para todo x, existe un y tal que x + y = 17. Valor de Verdad: en este caso también es posible hallar, para cada x, un y tal que satisfaga la propiedad, y que está dado por y = 17 − x. Esto es, cada x tiene asegurado un y (único en cada caso) y, por eso, el VV de esta proposición es T; Sea ∃x∀y (x + y = 17). En palabras: para algún x, y para todo y, debe ser x + y = 17. Valor de Verdad: deberı́a existir un x tan particular que sumándole cualquier y diera siempre 17. Pero eso no es posible, por lo que el VV de esta proposición es F; Sea ∀x∀y (x + y = 17). En palabras: para todo x, y para todo y, debe ser x + y = 17. Valor de Verdad: para cualquier x deberı́a ser posible sumarle cualquier y y siempre dar 17. Otra vez, eso no es posible, por lo que el VV de esta proposición es F. Observación 24. En general ∃x∃y P(x, y) ≡ ∃y∃x P(x, y) ∀x∀y P(x, y) ≡ ∀y∀x P(x, y) ∀x∃y P(x, y) . ∃y∀x P(x, y) conmutan conmutan no conmutan (1.5) 1.3.7. Negación de proposiciones con cuantificadores doblemente anidados Para negar proposiciones con cuantificadores doblemente anidados, se emplea sucesivamente las reglas de negación para proposiciones con único cuantificador. 16 CAPÍTULO 1. LÓGICA 1.3. CUANTIFICADORES Ejemplo 12. Negar la proposición ∃x∀y (x + y = 17), donde x, y ∈ R. Solución: ¬(∃x∀y (x + y = 17)) ≡ ∀x ¬(∀y (x + y = 17)) ≡ ∀x ∃y ¬(x + y = 17) ≡ ∀x ∃y (x + y , 17) (1.6) Observación 25. Cuando todos los elementos del DD se pueden enumerar, o sea x1 , x2 , ... xn , puede ser útil pensar a los cuantificadores anidados como recorridos anidados. Por ejemplo, para determinar si ∀x∀y P(x, y) es T o F, recorremos todos los valores x e y de la siguiente manera. Para cada x revisamos con un recorrido anidado todos los valores de y. Si encontramos que P(x, y) es T en todos los casos, la conclusión inevitable es que ∀x∀y P(x, y) es T. Si por el contrario, cuando encontramos el primer par de valores x e y tal que P(x, y) es F, podrı́an haber más de un par, es suficiente para concluir que ∀x∀y P(x, y) es F. 1.3.8. Algoritmos para cuantificadores doblemente anidados Como en el caso de cuantificadores simples, se pueden hacer implementaciones básicas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 # C u a n t i f i c a d o r e s doblemente anidados . # Caso A : i m p l e m e n t a c i o n e s b a s i c a s . d e f ParaTodoX ParaTodoY ( P , X, Y) : f o r x in X: f or y in Y: i f not P ( x , y ) : return False return True d e f P a r a T o d o X E x i s t e Y ( P , X, Y) : f o r x in X: existe y = False f or y in Y: if P(x , y) : e x i s t e y = True break i f not e x i s t e y : return False return True d e f E x i s t e X P a r a T o d o Y ( P , X, Y) : f o r x in X: p a r a t o d o y = True f or y in Y: i f not P ( x , y ) : paratodo y = False break i f paratodo y : return True return False d e f E x i s t e X E x i s t e Y ( P , X, Y) : f o r x in X: f or y in Y: 17 1.3. 35 36 37 CUANTIFICADORES CAPÍTULO 1. LÓGICA if P(x , y) : return True return False o bien, intermedias 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # C u a n t i f i c a d o r e s doblemente anidados . # Caso B : i m p l e m e n t a c i o n e s i n t e r m e d i a s ( p a r a e n t u s i a s t a s ) . d e f ParaTodoX ParaTodoY ( P , X, Y) : f o r x in X: i f n o t a l l ( P ( x , y ) f o r y i n Y) : return False return True d e f P a r a T o d o X E x i s t e Y ( P , X, Y) : f o r x in X: i f n o t any ( P ( x , y ) f o r y i n Y) : return False return True d e f E x i s t e X P a r a T o d o Y ( P , X, Y) : f o r y in Y: i f any ( P ( x , y ) f o r x i n X) : return True return False d e f E x i s t e X E x i s t e Y ( P , X, Y) : f o r x in X: i f any ( P ( x , y ) f o r y i n Y) : return True return False y más avanzadas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # C u a n t i f i c a d o r e s doblemente anidados . # Caso C : i m p l e m e n t a c i o n e s a v a n z a d a s ( p a r a e n t u s i a s t a s ) . d e f ParaTodoX ParaTodoY ( P , X, Y) : r e t u r n a l l ( P ( x , y ) f o r x i n X f o r y i n Y) d e f P a r a T o d o X E x i s t e Y ( P , X, Y) : f o r x in X: i f n o t any ( P ( x , y ) f o r y i n Y) : return False return True d e f E x i s t e X P a r a T o d o Y ( P , X, Y) : f o r x in X: i f a l l ( P ( x , y ) f o r y i n Y) : return True return False d e f E x i s t e X E x i s t e Y ( P , X, Y) : r e t u r n any ( P ( x , y ) f o r x i n X f o r y i n Y) De nuevo, las instrucciones any y all son nativas de este lenguaje. 18 APÉNDICE A Acrónimos y abreviaturas empleadas A.1. Lista de acrónimos DD Dominio de Discurso EL Equivalencia Lógica F Falso (por False FP Función Proposicional GTP Guı́a de Trabajos Prácticos LE lógicamente equivalentes RP reglas de precedencia T verdadero (por True) TV Tabla de Verdad VV Valor de Verdad V Verdadero A.2. Lista de abreviaturas i.e. es decir, o esto es, del latı́n id est e.g. por ejemplo, del latı́n exempli gratia 19 A.2. LISTA DE ABREVIATURAS APÉNDICE A. ACRÓNIMOS Y ABREVIATURAS EMPLEADAS 20 Bibliografı́a [1] P. http://www.python.org/, 2013. [2] R, K. H. Matemática Discreta y sus Aplicaciones, 5 ed. ISBN 9788448140731. Mc Graw Hill, Colombia, 2004. 21 BIBLIOGRAFÍA BIBLIOGRAFÍA 22 Nomenclatura ∃x, P(x) Cuantificador existencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 ∀x, P(x) Cuantificador universal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 ¬p Negación de p. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 p ↔ q Doble implicación (o bicondicional) de p y q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 p ⊕ q Disyunción exclusiva de p y q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 p → q Implicación de p y q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 p ∨ q Disyunción de p y q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 p ∧ q Conjunción de p y q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 23 Indice alfabético algoritmos para cuantificadores doblemente leyes de De Morgan para dos proposiciones, anidados, 17 10 algoritmos para cuantificadores existencial negación, 2 y universal, 15 negación de proposiciones con cuantificadores doblemente anidados, 16 bicondicional, 7 negación de proposiciones cuantificadas, 14 condición necesaria y condición suficiente, operadores y conectivos lógicos, 2 6 conjunción, 3 premisa y conclusión, 6 contingencia, 9 proposición, 1 contra-recı́proca, 7 proposición compuesta, 1 contradicción, 9 recı́proca, contrapositiva (o contra-recı́procuantificador existencial, 13 ca) e inversa, 7 cuantificador universal, 14 reglas de precedencia, 9 cuantificadores doblemente anidados, 16 tabla de equivalencias lógicas, 10 tabla de verdad, 2 tabla de verdad con más de dos proposiciones, 5 tautologı́a, 9 disyunción exclusiva, 4 disyunción inclusiva, 3 doble implicación, 7 dominio de discurso, 13 equivalencia lógica, 10 valor de verdad, 1 equivalencias lógicas con bicondicionales, 10 equivalencias lógicas con condicionales, 10 fraseos de la doble implicación, 7 fraseos de una implicación, 6 función proposicional, 13 implicación, 5 leyes de De Morgan generalizadas para la lógica, 14 24