Дизъюнкция обозначается знаком. Простейшие логические операции в информатике. Простые дизъюнкции и конъюнкции

Дизъюнкция

Дизъю́нкция - (лат. disjunctio - разобщение) логическая операция , по своему применению максимально приближённая к союзу «или» в смысле «или то, или это, или оба сразу». Синонимы: логи́ческое «ИЛИ» , включа́ющее «ИЛИ» , логи́ческое сложе́ние , иногда просто «ИЛИ» .

Дизъюнкция может быть бинарной операцией, то есть, иметь два операнда, тернарной операцией, то есть иметь три операнда или n-арной операцией, то есть иметь n операндов.
Запись может быть префиксной - знак операции стоит перед операндами (польская запись), инфиксной - знак операции стоит между операндами или постфиксной - знак операции стоит после операндов. При числе операндов более 2-х префиксная и постфиксная записи экономичнее.
Чаще всего встречаются следующие варианты записи:
|| | .

Булева алгебра

Определение.
Логическая функция MAX в двухзначной (двоичной) логике называется дизъюнкция (логи́ческое "ИЛИ" , логи́ческое сложе́ние или просто "ИЛИ" ).
Правило: результат равен наибольшему операнду.
Описание.
В булевой алгебре дизъюнкция - это функция двух, трёх или более переменных (они же - операнды операции, они же - аргументы функции).
Правило: результат равен , если все операнды равны ; во всех остальных случаях результат равен .

Таблица истинности

Таблица истинности для тернарной (трёхоперандной) дизъюнкции:

X Y Z X Y Z
0 0 0 0
1 0 0 1
0 1 0 1
1 1 0 1
0 0 1 1
1 0 1 1
0 1 1 1
1 1 1 1

Многозначная логика

Операция, называемая в двоичной логике дизъюнкция , в многозначных логиках называется максимум : , где , а - значность логики. Возможны и другие варианты. Как правило, стараются сохранить совместимость с булевой алгеброй для значений операндов .

Следует отметить, что название этой операции максимум имеет смысл в логиках с любой значностью, в том числе и в двоичной логике, а названия дизъюнкция , логи́ческое "ИЛИ" , логическое сложе́ние и просто "ИЛИ" имеют смысл только в двоичной логике, а при переходе к многозначным логикам теряют смысл.

Классическая логика

В классическом исчислении высказываний свойства дизъюнкции определяются с помощью аксиом . Классическое исчисление высказываний может быть задано разными системами аксиом, и некоторые из них будут описывать свойства дизъюнкции. Один из самых распространённых вариантов включает 3 аксиомы для дизъюнкции:


С помощью этих аксиом можно доказать другие формулы, содержащие операцию дизъюнкции. Обратите внимание, что в классическом исчислении высказываний не происходит вычисления результата по значениям операндов (как в булевой алгебре), а требуется доказать формулу как единое целое на основе аксиом и правил вывода. Высоко летать-больно падать

Схемотехника

0 0 0
1 0 1
0 1 1
1 1 1

Мнемоническое правило для дизъюнкции с любым количеством входов звучит так: На выходе будет:

  • "1" тогда и только тогда, когда хотя бы на одном входе есть «1»,
  • "0" тогда и только тогда, когда на всех входах «0»


Программирование

В компьютерных языках используется два основных варианта дизъюнкции: логическое «ИЛИ» и побитовое «ИЛИ». Например, в языках C/C++ логическое «ИЛИ» обозначается символом "||", а побитовое - символом "|". В языках Pascal/Delphi оба вида дизъюнкции обозначаются с использованием ключевого слова «or », а результат действия определяется типом операндов. Если операнды имеют логический тип (например, Boolean) - выполняется логическая операция, если целочисленный (например, Byte) - поразрядная.

Логическое «ИЛИ» применяется в операторах условного перехода или в аналогичных случаях, когда требуется получение результата или . Например:

If (a || b) { /* какие-то действия */ } ;

Результат будет равен , если оба операнда равны или . В любом другом случае результат будет равен .

При этом применяется стандартное соглашение: если значение левого операнда равно , то значение правого операнда не вычисляется (вместо может стоять сложная формула). Такое соглашение ускоряет исполнение программы и служит полезным приёмом в некоторых случаях. Компилятор Delphi поддерживает специальную директиву, включающую

{$B-}

или выключающую

{$B+}

подобное поведение. Например, если левый операнд проверяет необходимость вычисления правого операнда:

If (a == NULL || a-> x == 0 ) { /* какие-то действия */ } ;

В этом примере, благодаря проверке в левом операнде, в правом операнде никогда не произойдёт разыменования нулевого указателя.

Побитовое «ИЛИ» выполняет обычную операцию булевой алгебры для всех битов левого и правого операнда попарно. Например,

если
a =
b =
то
a ИЛИ b =

Связь с естественным языком

Часто указывают на сходство между дизъюнкцией и союзом «или» в естественном языке, когда он употребляется в смысле «или то, или то, или оба сразу». В юридических документах часто пишут: «и/или», подразумевая «или то, или то, или оба сразу». Составное утверждение «A и/или B» считается ложным, когда ложны оба утверждения A и B, в противном случае составное утверждение истинно. Это в точности соответствует определению дизъюнкции в булевой алгебре, если «истину» обозначать как , а «ложь» как .

Неоднозначность естественного языка заключается в том, что союз «или» используется в двух значениях: то для обозначения дизъюнкции, то для другой операции -

Логическое сложение (дизъюнкция)

Логическое умножение (конъюнкция)

Логическое умножение есть соединение двух простых высказываний союзом "И". Например, возьмем два высказывания: «Дважды два равно четырем» (a), «Трижды три равно девяти» (a). Сложное высказывание «Дважды два равно четырем и Трижды три равно девяти» истинно, т.к. истинны оба высказывания a и b. Но если взять другие высказывания: «Дважды два равно четырем» (c), и «Стол имеет 2 ножки» (d), то сложное высказывание «Дважды два равно четырем и Стол имеет 2 ножки» будет ложным, т.к. ложно высказывание (d).

Конъюнкция: сложное высказывание, в простейшем случае являющееся соединением двух простых высказываний a и b, истинно тогда и только тогда, когда истинны оба высказывания a и b.

Обозначения операции «конъюнкция»: a & b, a and b, ab, a Λ b.

Знак & - амперсанд - читается как английское "and".

Таблица истинности функции «логическое умножение»:

Логическое умножение
Аргументы Функция
a b F = ab

Значение функции a = «2*2=4» =1, значение функции b = «3*3=8» = 0.

Значение функции ab = «(2*2=4) & (3*3=8)» = 0

Логическое сложение есть соединение двух простых высказываний союзом "ИЛИ". Например, возьмем два высказывания: «Дважды два равно четырем» (a), «Трижды три равно девяти» (b). Сложное высказывание «Дважды два равно четырем ИЛИ трижды три равно девяти» истинно, т.к. оно соответствует действительности. Формально, это сложное высказывание является истинным, т.к. истинны оба этих высказывания. С точки зрения здравого смысла, даже если взять два других высказывания: «Дважды два равно четырем» (c) и «Стол имеет 2 ножки» (d), то сложное высказывание «Дважды два равно четырем ИЛИ стол имеет 2 ножки» соответствует действительности и является истинным. Формально оно является истинным, т.к. в этом сложном высказывании есть одно истинное высказывание (c). Таким образом, исходя из обычного смысла союза "ИЛИ", приходим к определению соответствующей логической операции - дизъюнкции.

Дизъюнкция: сложное высказывание, в простейшем случае являющееся соединением двух простых высказываний a и b, истинно тогда и только тогда, когда истинным является хотя бы одно высказывание - a или b.

Обозначения операции «дизъюнкция»: a ! b, a or b, a + b, a V b.

Таблица истинности функции «логическое сложение»:

Логическое умножение
Аргументы Функция
a b F = a V b


1. Значение функции a = «2*2=4» =1, значение функции b = «3*3=8» = 0.

Значение функции a V b = «(2*2=4) V (3*3=8)» = 1

2. Значение функции a = «2*2=4» =1, значение функции b = «3*3=9» = 1.

Значение функции a V b = «(2*2=4) V (3*3=9)» = 1

3. Значение функции a = «2*2=5» =0, значение функции b = «3*3=8» = 0.

Значение функции a V b = «(2*2=5) V (3*3=8)» = 0

Равносильные логические выражения: логические функции, представленные разными формулами, но для одинаковых комбинаций логических переменных (аргументов) имеющие одно и то же значение.

Пример. С помощью таблиц истинности определим равносильность двух выражений: &и .

Сравнивая эти две таблицы истинности, можно убедиться в равносильности двух сложных выражений.

Для обозначения равносильных логических выражений применяется знак «=».

Для рассмотренного случая можно записать: &= .

Конъюнктивная x + y {\displaystyle x+y} Полином Жегалкина x ⊕ y ⊕ x y {\displaystyle x\oplus y\oplus xy} Принадлежность предполным классам Сохраняет 0 Да Сохраняет 1 Да Монотонна Да Линейна Нет Самодвойственна Нет

Дизъюнкция может быть операцией как бинарной (имеющей два операнда), так и n {\displaystyle n} -арной (имеющей n {\displaystyle n} операндов) для произвольного n {\displaystyle n} .

Запись может быть префиксной - знак операции стоит перед операндами (польская запись), инфиксной - знак операции стоит между операндами или постфиксной - знак операции стоит после операндов. При числе операндов более двух префиксная и постфиксная записи экономичнее.

Обозначения

Наиболее часто встречаются следующие обозначения для операции дизъюнкции:

a ∨ b , a {\displaystyle a\lor b,\;a} || b , a {\displaystyle b,\;a} | b , a OR b {\displaystyle b,\;a~{\mbox{OR}}\,\,b} , max (a , b) . {\displaystyle ,\;\max(a,b).}

При этом обозначение наиболее широко распространено в современной математике и математической логике . Появилось оно не сразу: Джордж Буль , положивший начало систематическому применению символического метода к логике, не работал с дизъюнкцией (используя вместо неё строгую дизъюнкцию , которую обозначал знаком + ), а Уильям Джевонс предложил для дизъюнкции знак ·|· . Эрнст Шрёдер и П. С. Порецкий вновь использовали знак + , но уже применительно к обычной дизъюнкции . Символ ∨ {\displaystyle \lor } как обозначение дизъюнкции впервые встречается в статье «Математическая логика, основанная на теории типов» Бертрана Рассела (1908); он образован от лат. vel что означает ‘или’ .

Обозначение ⋁ для дизъюнкции было использовано и в раннем языке программирования Алгол 60 . Однако из-за отсутствия соответствующего символа в стандартных наборах символов (например, в ASCII или EBCDIC), применявшихся на большинстве компьютеров , в получивших наибольшее распространение языках программирования были предусмотрены иные обозначения для дизъюнкции. Так, в Фортране IV и PL/I применялись соответственно обозначения.OR. и | (с возможностью замены последнего на ключевое слово OR) ; в языках Паскаль и Ада используется зарезервированное слово or ; в языках и C++ применяются обозначения | для побитовой дизъюнкции и || для логической дизъюнкции ).

Наконец, при естественном упорядочении значений истинности двузначной логики (когда полагают, что 0 < 1 {\displaystyle 0<1} ), оказывается, что (a ∨ b) = max (a , b) . {\displaystyle (a\lor b)\,=\,\max(a,b).} Таким образом, дизъюнкция оказывается частным случаем операции вычисления максимума ; это открывает наиболее естественный способ определить операцию дизъюнкции в системах многозначной логики .

Булева алгебра

Логическая функция MAX в двухзначной (двоичной) логике называется дизъюнкция (логи́ческое «ИЛИ» , логи́ческое сложе́ние или просто «ИЛИ» ). При этом результат равен наибольшему операнду.

В булевой алгебре дизъюнкция - это функция двух, трёх или более переменных (они же - операнды операции, они же - аргументы функции). Таким образом, результат равен , если все операнды равны ; во всех остальных случаях результат равен 1 {\displaystyle 1} .

Таблица истинности
a {\displaystyle a} b {\displaystyle b} a ∨ b {\displaystyle a\lor b}
1 {\displaystyle 1} 1 {\displaystyle 1}
1 {\displaystyle 1} 1 {\displaystyle 1}
1 {\displaystyle 1} 1 {\displaystyle 1} 1 {\displaystyle 1}

Таблица истинности для тернарной (трёхоперандной) дизъюнкции:

a {\displaystyle a} b {\displaystyle b} c {\displaystyle c} a ∨ b ∨ c {\displaystyle a\lor b\lor c}
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1

Многозначная логика

Операция, называемая в двоичной логике дизъюнкция , в многозначных логиках называется максимум : m a x (a , b) {\displaystyle max(a,b)} , где a , b ∈ [ 0 , . . . , n − 1 ] {\displaystyle a,b\in } , а n {\displaystyle n} - значность логики. Возможны и другие варианты [чего? ] . Как правило, стараются сохранить совместимость с булевой алгеброй для значений операндов 0 , 1 {\displaystyle 0,1} .

Следует отметить, что название этой операции максимум имеет смысл в логиках с любой значностью, в том числе и в двоичной логике, а названия дизъюнкция , логи́ческое «ИЛИ» , логическое сложе́ние и просто «ИЛИ» характерны для двоичной логики, а при переходе к многозначным логикам используются реже.

Классическая логика

В классическом исчислении высказываний свойства дизъюнкции определяются с помощью аксиом . Классическое исчисление высказываний может быть задано разными системами аксиом, и некоторые из них будут описывать свойства дизъюнкции. Один из самых распространённых вариантов включает 3 аксиомы для дизъюнкции:

С помощью этих аксиом можно доказать другие формулы, содержащие операцию дизъюнкции. Обратите внимание, что в классическом исчислении высказываний не происходит вычисления результата по значениям операндов (как в булевой алгебре), а требуется доказать формулу как единое целое на основе аксиом и правил вывода.

Схемотехника

Мнемоническое правило для дизъюнкции с любым количеством входов звучит так: На выходе будет:

  • «1» тогда и только тогда, когда хотя бы на одном входе есть «1»,
  • «0» тогда и только тогда, когда на всех входах «0»

Теория множеств

Программирование

В компьютерных языках используется два основных варианта дизъюнкции: логическое «ИЛИ» и побитовое «ИЛИ». Например, в языках C/C++/Perl/PHP логическое «ИЛИ» обозначается символом "||", а побитовое - символом "|". В языках Pascal/Delphi оба вида дизъюнкции обозначаются с использованием ключевого слова «or », а результат действия определяется типом операндов. Если операнды имеют логический тип (например, Boolean) - выполняется логическая операция, если целочисленный (например, Byte) - поразрядная.

Логическое «ИЛИ» применяется в операторах условного перехода или в аналогичных случаях, когда требуется получение результата или . Например:

if (a || b ) { /* какие-то действия */ };

Результат будет равен f a l s e {\displaystyle false} , если оба операнда равны f a l s e {\displaystyle false} или . В любом другом случае результат будет равен t r u e {\displaystyle true} .

При этом применяется стандартное соглашение: если значение левого операнда равно t r u e {\displaystyle true} , то значение правого операнда не вычисляется (вместо b {\displaystyle b} может стоять сложная формула). Такое соглашение ускоряет исполнение программы и служит полезным приёмом в некоторых случаях. Компилятор Delphi поддерживает специальную директиву, включающую

Логическое сложение (дизъюнкция)

Логическое сложение - одна из трех базовых операций логической алгебры.

Соединение двух (или нескольких) высказываний союзом ИЛИ называется дизъюнкцией или логическим сложением . Логическое сложение схоже с союзом ИЛИ в естественном языке, если он употребляется в смысле «или то, или это, или оба сразу». Операцию логического сложения часто называют операцией ЛОГИЧЕСКОГО ИЛИ .

Высказывание А+В истинно (равно 1) тогда, когда истинно хотя бы одно из входящих в него высказываний А или В, и ложно только тогда, когда ложны оба слагаемых (равны 0).

0 + 0 = 0

1 + 1 = 1


Следует обратить внимание на то, что при сложении двух логических единиц получается логическая единица. Алгебра логики оперирует только двумя значениями - ложью (логический 0) и истиной (логическая 1). Истина не может быть двойной или истиной в квадрате, поэтому при сложении двух истин мы получаем просто истину. Точно также при сложении двух логических сигналов высокого уровня мы получаем логический сигнал высокого уровня.

Дизъюнкция обозначается символом v или знаком сложения (+).

Правила логического сложения двух высказываний можно свести в следующую таблицу:

A B A + B
0 0 0
0 1 1
1 0 1
1 1 1

Такая таблица называется таблицей истинности для дизъюнкции.

Нетрудно увидеть, что первые три строки таблицы соответствуют правилам сложения двоичных чисел в одном разряде без учета и образования переноса.

Дизъюнкция n переменных ложна тогда и только тогда, когда все составляющие ее переменные ложны.

В логических схемах BEAM-роботов логическое ИЛИ используется для согласования двух логических сигналов.

Другие базовые операции в алгебре логики

СВОЙСТВА ЛОГИЧЕСКИХ ОПЕРАЦИЙ

1. Обозначения

1.1. Обозначения для логических связок (операций):

a) отрицание (инверсия, логическое НЕ) обозначается ¬ (например, ¬А);

b) конъюнкция (логическое умножение, логическое И) обозначается /\
(например, А /\ В) либо & (например, А & В);

c) дизъюнкция (логическое сложение, логическое ИЛИ) обозначается \/
(например, А \/ В);

d) следование (импликация) обозначается → (например, А → В);

e) тождество обозначается ≡ (например, A ≡ B). Выражение A ≡ B истинно тогда и только тогда, когда значения A и B совпадают (либо они оба истинны, либо они оба ложны);

f) символ 1 используется для обозначения истины (истинного высказывания); символ 0 – для обозначения лжи (ложного высказывания).

1.2. Два логических выражения, содержащих переменные, называются равносильными (эквивалентными), если значения этих выражений совпадают при любых значениях переменных. Так, выражения А → В и (¬А) \/ В равносильны, а А /\ В и А \/ В – нет (значения выражений разные, например, при А = 1, В = 0).

1.3. Приоритеты логических операций: инверсия (отрицание), конъюнкция (логическое умножение), дизъюнкция (логическое сложение), импликация (следование), тождество. Таким образом, ¬А \/ В \/ С \/ D означает то же, что и

((¬А) \/ В)\/ (С \/ D).

Возможна запись А \/ В \/ С вместо (А \/ В) \/ С. То же относится и к конъюнкции: возможна запись А /\ В /\ С вместо (А /\ В) /\ С.

2. Свойства

Приведенный ниже список НЕ претендует на полноту, но, надеемся, достаточно представителен.

2.1. Общие свойства

  1. Для набора из n логических переменных существует ровно 2 n различных значений. Таблица истинности для логического выражения от n переменных содержит n+1 столбец и 2 n строк.

2.2.Дизъюнкция

  1. Если хоть одно из подвыражений, к которым применяется дизъюнкция, истинно на некотором наборе значений переменных, то и вся дизъюнкция истинна для этого набора значений.
  2. Если все выражения из некоторого списка истинны на некотором наборе значений переменных, то дизъюнкция этих выражений тоже истинна.
  3. Если все выражения из некоторого списка ложны на некотором наборе значений переменных, то дизъюнкция этих выражений тоже ложна.
  4. Значение дизъюнкции не зависит от порядка записи подвыражений, к которым она применяется.

2.3. Конъюнкция

  1. Если хоть одно из подвыражений, к которым применяется конъюнкция, ложно на некотором наборе значений переменных, то и вся конъюнкция ложна для этого набора значений.
  2. Если все выражения из некоторого списка истинны на некотором наборе значений переменных, то конъюнкция этих выражений тоже истинна.
  3. Если все выражения из некоторого списка ложны на некотором наборе значений переменных, то конъюнкция этих выражений тоже ложна.
  4. Значение конюнкции не зависит от порядка записи подвыражений, к которым она применяется.

2.4. Простые дизъюнкции и конъюнкции

Назовем (для удобства) конъюнкцию простой , если подвыражения, к которым применяется конъюнкция, – различные переменные или их отрицания. Аналогично, дизъюнкция называется простой , если подвыражения, к которым применяется дизъюнкция, – различные переменные или их отрицания.

  1. Простая конъюнкция принимает значение 1 (истина) ровно на одном наборе значений переменных.
  2. Простая дизъюнкция принимает значение 0 (ложь) ровно на одном наборе значений переменных.

2.5. Импликация

  1. Импликация A B равносильна дизъюнкции А) \/ В. Эту дизъюнкцию можно записать и так: ¬А \/ В.
  2. Импликация A B принимает значение 0 (ложь) только если A=1 и B=0. Если A=0, то импликация A B истинна при любом значении B.