В логике дизъюнкция , также известная как логическая дизъюнкция , логическое или , логическое сложение или инклюзивная дизъюнкция , является логической связкой, обычно обозначаемой как и читаемой вслух как «или». Например, предложение на английском языке « it is sunny or it is warm» может быть представлено в логике с помощью дизъюнктивной формулы , предполагая, что сокращает «it is sunny» и сокращает «it is warm».
В классической логике дизъюнкции придается истинностная функциональная семантика, согласно которой формула истинна, если оба и не ложны. Поскольку эта семантика позволяет дизъюнктивной формуле быть истинной, когда оба ее дизъюнкта истинны, она является инклюзивной интерпретацией дизъюнкции, в отличие от исключающей дизъюнкции . Классические теоретические трактовки доказательств часто даются в терминах правил, таких как введение дизъюнкции и устранение дизъюнкции . Дизъюнкции также даются многочисленные неклассические трактовки, мотивированные проблемами, включая аргумент Аристотеля о морском сражении , принцип неопределенности Гейзенберга , а также многочисленные несоответствия между классической дизъюнкцией и ее ближайшими эквивалентами в естественных языках . [1] [2]
Операндом дизъюнкции является дизъюнкт . [3]
Поскольку логическое или означает, что формула дизъюнкции истинна, когда истинны одна или обе ее части, она называется инклюзивной дизъюнкцией. Это контрастирует с исключающей дизъюнкцией , которая истинна, когда истинен один или другой из аргументов, но не оба (называется исключающим или , или XOR ).
Когда необходимо уточнить, подразумевается ли включающее или исключающее or , носители английского языка иногда используют фразу and/or . С точки зрения логики эта фраза идентична or , но делает включение обоих истинным явным.
В логике и смежных областях дизъюнкция обычно обозначается инфиксным оператором (Unicode U+2228 ∨ LOGICAL OR ). [1] Альтернативные обозначения включают , используемый в основном в электронике , а также и во многих языках программирования . Иногда также используется английское слово or , часто заглавными буквами. В префиксной нотации Яна Лукасевича для логики оператор — , сокращение от польского alternatywa (английский: альтернатива). [4]
В математике дизъюнкция произвольного числа элементов может быть обозначена как итеративная бинарная операция с использованием большего ⋁ (Unicode U+22C1 ⋁ N-ARY LOGICAL OR ): [5]
В семантике логики классическая дизъюнкция — это операция истинностного функционала , которая возвращает значение истинности true, если оба ее аргумента не являются false . Ее семантическая запись стандартно задается следующим образом: [a]
Эта семантика соответствует следующей таблице истинности : [1]
В классических логических системах, где логическая дизъюнкция не является примитивом, ее можно определить в терминах примитива и ( ) и не ( ) следующим образом:
В качестве альтернативы его можно определить в терминах подразумевает ( ), а не как: [6]
Последнее можно проверить с помощью следующей таблицы истинности:
Его также можно определить исключительно с точки зрения :
Это можно проверить с помощью следующей таблицы истинности:
К дизъюнкции применимы следующие свойства:
Операторы , соответствующие логической дизъюнкции, существуют в большинстве языков программирования .
Дизъюнкция часто используется для побитовых операций . Примеры:
Оператор or
можно использовать для установки битов в битовом поле в 1, объединив or
поле с константным полем, установив соответствующие биты в 1. Например, x = x | 0b00000001
принудительно установит последний бит в 1, оставив остальные биты без изменений. [ необходима цитата ]
Во многих языках побитовая и логическая дизъюнкция различаются с помощью двух отдельных операторов; в языках, следующих за C , побитовая дизъюнкция выполняется с помощью оператора одинарной вертикальной линии ( |
), а логическая дизъюнкция — с помощью оператора двойной вертикальной линии ( ||
).
Логическая дизъюнкция обычно является короткозамкнутой ; то есть, если первый (левый) операнд оценивается как true
, то второй (правый) операнд не оценивается. Таким образом, оператор логической дизъюнкции обычно представляет собой точку последовательности .
В параллельном (конкурентном) языке возможно закоротить обе стороны: они оцениваются параллельно, и если одна завершается со значением true, другая прерывается. Этот оператор поэтому называется параллельным или .
Хотя тип выражения логической дизъюнкции в большинстве языков является булевым (и, таким образом, может иметь только значение true
или false
), в некоторых языках (таких как Python и JavaScript ) оператор логической дизъюнкции возвращает один из своих операндов: первый операнд, если он оценивается как истинное значение, и второй операнд в противном случае. [8] [9] Это позволяет ему выполнять роль оператора Элвиса .
Соответствие Карри–Ховарда связывает конструктивистскую форму дизъюнкции с маркированными типами объединения . [ необходима ссылка ] [10]
Принадлежность элемента множества объединения в теории множеств определяется в терминах логической дизъюнкции: . Вследствие этого логическая дизъюнкция удовлетворяет многим из тех же тождеств, что и теоретико-множественное объединение, таким как ассоциативность , коммутативность , дистрибутивность и законы де Моргана , отождествляющие логическую конъюнкцию с пересечением множеств , логическое отрицание с дополнением множеств . [11]
Дизъюнкция в естественных языках не совсем соответствует интерпретации в классической логике. Примечательно, что классическая дизъюнкция является инклюзивной, в то время как дизъюнкция в естественном языке часто понимается исключительно, как это обычно бывает в следующем английском примере. [1]
Этот вывод иногда понимался как вывод , например, Альфредом Тарским , который предположил, что дизъюнкция естественного языка неоднозначна между классической и неклассической интерпретацией. Более поздние работы в прагматике показали, что этот вывод может быть выведен как разговорная импликатура на основе семантического обозначения, которое ведет себя классически. Однако, дизъюнктивные конструкции, включая венгерское vagy... vagy и французское soit... soit , как утверждается, являются по своей сути исключительными, делая неграмматичными в контекстах, где в противном случае было бы вынуждено инклюзивное прочтение. [1]
Похожие отклонения от классической логики были отмечены в таких случаях, как свободная дизъюнкция и упрощение дизъюнктивных антецедентов , где определенные модальные операторы вызывают конъюнктивную интерпретацию дизъюнкции. Как и в случае с исключительностью, эти выводы анализировались как импликатуры, так и следствия, возникающие из неклассической интерпретации дизъюнкции. [1]
Во многих языках разделительные выражения играют роль в формировании вопроса.
Например, хотя приведенный выше пример на английском языке можно интерпретировать как полярный вопрос о том, правда ли, что Мэри является либо философом, либо лингвистом, его также можно интерпретировать как альтернативный вопрос о том, какая из двух профессий принадлежит ей. Роль дизъюнкции в этих случаях была проанализирована с использованием неклассических логик, таких как альтернативная семантика и пытливая семантика , которые также были приняты для объяснения выводов свободного выбора и упрощения. [1]
В английском языке, как и во многих других языках, дизъюнкция выражается сочинительным союзом . Другие языки выражают дизъюнктивные значения различными способами, хотя неизвестно, является ли дизъюнкция сама по себе лингвистической универсалией . Во многих языках, таких как дьирбал и марикопа , дизъюнкция обозначается с помощью глагольного суффикса . Например, в примере марикопа ниже дизъюнкция обозначается суффиксом šaa . [1]
Джонш
Джон- НОМ
Биллш
Билл- НОМ
vʔaawuumšaa
3 -прийти- PL - FUT - INFER
«Джон или Билл придут».