En lógica , la disyunción , también conocida como disyunción lógica , o lógica o , adición lógica o disyunción inclusiva , es un conector lógico que normalmente se escribe y se lee en voz alta como "o". Por ejemplo, la oración en inglés "está soleado o está cálido" se puede representar en lógica utilizando la fórmula disyuntiva , asumiendo que abrevia "está soleado" y abrevia "está cálido".
En la lógica clásica , la disyunción tiene una semántica funcional de verdad según la cual una fórmula es verdadera a menos que tanto y sean falsas. Debido a que esta semántica permite que una fórmula disyuntiva sea verdadera cuando ambos disyuntos son verdaderos, es una interpretación inclusiva de la disyunción, en contraste con la disyunción exclusiva . Los tratamientos teóricos de prueba clásicos a menudo se dan en términos de reglas como la introducción de la disyunción y la eliminación de la disyunción . La disyunción también ha recibido numerosos tratamientos no clásicos , motivados por problemas que incluyen el argumento de la batalla naval de Aristóteles , el principio de incertidumbre de Heisenberg , así como los numerosos desajustes entre la disyunción clásica y sus equivalentes más cercanos en los lenguajes naturales . [1] [2]
Un operando de una disyunción es un disyunto . [3]
Debido a que la fórmula de disyunción lógica o significa que es verdadera cuando una o ambas de sus partes son verdaderas, se la denomina disyunción inclusiva . Esto contrasta con una disyunción exclusiva , que es verdadera cuando uno u otro de los argumentos son verdaderos, pero no ambos (conocida como o exclusiva o XOR ).
Cuando es necesario aclarar si se pretende incluir o excluir, los hablantes de inglés a veces usan la frase and /or . En términos de lógica, esta frase es idéntica a or , pero hace explícita la inclusión de que ambos sean verdaderos.
En lógica y campos relacionados, la disyunción se suele denotar con un operador infijo (Unicode U+2228 ∨ LOGICAL OR ). [1] Las notaciones alternativas incluyen , utilizado principalmente en electrónica , así como y en muchos lenguajes de programación . La palabra inglesa or también se utiliza a veces, a menudo en mayúsculas. En la notación de prefijo de Jan Łukasiewicz para lógica , el operador es , abreviatura de alternatywa en polaco (en español: alternative). [4]
En matemáticas, la disyunción de un número arbitrario de elementos se puede denotar como una operación binaria iterada utilizando un ⋁ mayor (Unicode U+22C1 ⋁ N-ARIO OR LÓGICO ): [5]
En la semántica de la lógica , la disyunción clásica es una operación funcional de verdad que devuelve el valor de verdad verdadero a menos que ambos argumentos sean falsos . Su entrada semántica se da de manera estándar de la siguiente manera: [a]
Esta semántica corresponde a la siguiente tabla de verdad : [1]
En los sistemas lógicos clásicos donde la disyunción lógica no es una primitiva, se puede definir en términos de la primitiva y ( ) y no ( ) como:
Alternativamente, puede definirse en términos de implica ( ) y no como: [6]
Esto último se puede comprobar mediante la siguiente tabla de verdad:
También puede definirse únicamente en términos de :
Esto se puede comprobar mediante la siguiente tabla de verdad:
Las siguientes propiedades se aplican a la disyunción:
Los operadores correspondientes a la disyunción lógica existen en la mayoría de los lenguajes de programación .
La disyunción se utiliza a menudo para operaciones bit a bit . Ejemplos:
El or
operador se puede utilizar para establecer los bits de un campo de bits en 1, mediante or
la adición de un campo constante con los bits relevantes establecidos en 1. Por ejemplo, x = x | 0b00000001
forzará el bit final a 1, mientras que los otros bits no se modificarán. [ cita requerida ]
Muchos lenguajes distinguen entre disyunción bit a bit y disyunción lógica al proporcionar dos operadores distintos; en lenguajes posteriores a C , la disyunción bit a bit se realiza con el operador de tubería simple ( |
), y la disyunción lógica con el ||
operador de tubería doble ( ).
La disyunción lógica suele estar en cortocircuito ; es decir, si el primer operando (izquierdo) se evalúa como true
, entonces el segundo operando (derecho) no se evalúa. El operador de disyunción lógica constituye, por tanto, un punto de secuencia .
En un lenguaje paralelo (concurrente), es posible cortocircuitar ambos lados: se evalúan en paralelo y, si uno termina con el valor verdadero, el otro se interrumpe. Este operador se denomina entonces paralelo o .
Aunque el tipo de una expresión de disyunción lógica es booleano en la mayoría de los lenguajes (y por lo tanto solo puede tener el valor true
o false
), en algunos lenguajes (como Python y JavaScript ), el operador de disyunción lógica devuelve uno de sus operandos: el primer operando si se evalúa como un valor verdadero, y el segundo operando en caso contrario. [8] [9] Esto le permite cumplir el rol del operador Elvis .
La correspondencia Curry-Howard relaciona una forma constructivista de disyunción con los tipos de unión etiquetados . [ cita requerida ] [10]
La pertenencia de un elemento de un conjunto de unión en la teoría de conjuntos se define en términos de una disyunción lógica: . Debido a esto, la disyunción lógica satisface muchas de las mismas identidades que la unión en la teoría de conjuntos, como la asociatividad , la conmutatividad , la distributividad y las leyes de De Morgan , que identifican la conjunción lógica con la intersección de conjuntos y la negación lógica con el complemento de conjuntos . [11]
La disyunción en los lenguajes naturales no coincide exactamente con la interpretación que se da en la lógica clásica. Cabe destacar que la disyunción clásica es inclusiva, mientras que la disyunción en lenguaje natural suele entenderse de manera exclusiva, como suele suceder en el siguiente ejemplo en inglés. [1]
Esta inferencia se ha entendido a veces como una implicación , por ejemplo por Alfred Tarski , quien sugirió que la disyunción del lenguaje natural es ambigua entre una interpretación clásica y una no clásica. Trabajos más recientes en pragmática han demostrado que esta inferencia se puede derivar como una implicatura conversacional sobre la base de una denotación semántica que se comporta de manera clásica. Sin embargo, se ha argumentado que las construcciones disyuntivas, incluidas la húngara vagy... vagy y la francesa soit... soit, son inherentemente excluyentes, lo que hace que no sean gramaticalmente correctas en contextos en los que, de lo contrario, se forzaría una lectura inclusiva. [1]
Se han observado desviaciones similares de la lógica clásica en casos como la disyunción de libre elección y la simplificación de antecedentes disyuntivos , donde ciertos operadores modales desencadenan una interpretación de la disyunción similar a la de una conjunción . Al igual que con la exclusividad, estas inferencias se han analizado tanto como implicaturas como como implicancias que surgen de una interpretación no clásica de la disyunción. [1]
En muchos idiomas, las expresiones disyuntivas juegan un papel en la formación de preguntas.
Por ejemplo, si bien el ejemplo inglés anterior puede interpretarse como una pregunta polar que pregunta si es cierto que Mary es filósofa o lingüista, también puede interpretarse como una pregunta alternativa que pregunta cuál de las dos profesiones es la suya. El papel de la disyunción en estos casos se ha analizado utilizando lógicas no clásicas como la semántica alternativa y la semántica inquisitiva , que también se han adoptado para explicar las inferencias de libre elección y simplificación. [1]
En inglés, como en muchos otros idiomas, la disyunción se expresa mediante una conjunción coordinante . Otros idiomas expresan significados disyuntivos de diversas maneras, aunque se desconoce si la disyunción en sí misma es un universal lingüístico . En muchos idiomas, como Dyirbal y Maricopa , la disyunción se marca utilizando un sufijo verbal . Por ejemplo, en el ejemplo de Maricopa a continuación, la disyunción se marca con el sufijo šaa . [1]
Juan
Juan- NOM
Facturas
Proyecto de ley- NOM
vʔaawuumšaa
3 -ven- PL - FUT - INFER
"John o Bill vendrán."