Простейшие логические операции
Простейшие логические операции относятся к двузначной логике. Их 4 штуки: “НЕ”, “И”, “ИЛИ”, “XOR”. Также для обозначения этих операций используют разные значки (“~”, “&” и т.п.).
При записи логических формул вместо слов “истина” и “ложь” обычно используют стандартные международные обозначения:
Вместо “истина” пишут: true, T, t, 1.
Вместо “ложь” пишут: false, F, f, 0.
“НЕ”
Операция “НЕ” преобразует истину в ложь, а ложь в истину:
НЕ true = false
НЕ false = true
У этой операции бывают разные другие названия: “логическое НЕ”, “отрицание”, “логическое отрицание”, “инверсия”, “логическая инверсия”. Для международных обозначений вместо “НЕ” пишут “NOT”.
В естественном языке этой операции соответствует добавление слов “неправда, что...” в начале высказывания. Например:
“Сурков должен мне денег”. (1)
Применение операции “НЕ” к высказыванию (1):
“Неправда, что Сурков должен мне денег”. (2)
Если высказывание (1) ложно, то высказывание (2) истинно. Если высказывание (2) ложно, то высказывание (1) истинно.
Нетрудно понять, что двойное применение “НЕ” возвращает нас к прежней истинности.
“Неправда, что неправда, что Сурков должен мне денег”. (3)
Истинность высказывания (3) всегда совпадает с истинностью высказывания (1).
“И”
Операция “И” применяется к двум высказываниям. Ее результат “истина”, только если оба высказывания истинны (а иначе “ложь”):
false И false = false
false И true = false
true И false = false
true И true = true
У этой операции бывают разные другие названия: “логическое И”, “конъюнкция”, “логическое умножение”. Для международных обозначений вместо “И” пишут “AND”.
В естественном языке этой операции соответствует вставка союза “и” между высказываниями. Например:
“Сурков должен мне денег”. (1)
“Петров должен мне денег”. (2)
Применение операции “И” к высказываниям (1) и (2):
“Сурков должен мне денег, и Петров должен мне денег”. (3)
Эту фразу можно сократить, сохранив прежний смысл:
“Сурков и Петров должны мне денег”. (3)
Высказывание (3) истинно только тогда, когда истинны оба высказывания: (1) и (2). Если хотя бы одно из них ложно, то результат тоже ложен. Если оба ложны - тоже.
То есть, если Петров мне денег не задолжал, а задолжал только Сурков, тогда высказывание (3) не будет “полуправдой” или “полуложью”, а будет просто ложью.
“ИЛИ”
Операция “ИЛИ” применяется к двум высказываниям. Ее результат “истина”, если хотя бы одно высказывание истинно (а иначе “ложь”):
false ИЛИ false = false
false ИЛИ true = true
true ИЛИ false = true
true ИЛИ true = true
У этой операции бывают разные другие названия: “логическое ИЛИ”, “включающее ИЛИ”, “дизъюнкция”, “логическое сложение”. Для международных обозначений вместо “ИЛИ” пишут “OR”.
В естественном языке этой операции соответствует вставка союза “или” между высказываниями, но... не всегда (см. ниже об операции “XOR”). Например:
“Я хочу попить”. (1)
“Я хочу поесть”. (2)
Применение операции “ИЛИ” к высказываниям (1) и (2):
“Я хочу попить, или я хочу поесть”. (3)
По-русски звучит правильно, но коряво, и эту фразу можно сократить, сохранив прежний смысл:
“Я хочу попить или поесть ”. (3)
Высказывание (3) истинно тогда, когда истинно хотя бы одно из высказываний (1) и (2), а можно оба. Если оба высказывания ложны, то результат тоже ложен.
То есть, если я хочу есть, но не пить, тогда высказывание (3) истинно. Если я не прочь и поесть, и попить, выказывание (3) тоже истинно. Ложно оно тогда, когдя я не хочу ни того, ни другого.
“XOR”
Операция “XOR” применяется к двум высказываниям. Ее результат “истина”, если ровно одно из высказываний истинно (а иначе “ложь”):
false XOR false = false
false XOR true = true
true XOR false = true
true XOR true = false
У этой операции бывают разные другие названия: “исключающее ИЛИ”, “сложение по модулю 2”, “логическое сложение по модулю 2”. “XOR” - это международное обозначение, общепринятого “русского” аналога нет.
В естественном языке этой операции соответствует вставка союза “или” между высказываниями - так же, как в случае с операцией “ИЛИ”. Например:
“Я собираюсь просить прибавки к зарплате”. (1)
“Я попытаюсь сэкономить ”. (2)
Применение операции “XOR” к высказываниям (1) и (2):
“Я собираюсь просить прибавки к зарплате или я попытаюсь сэкономить”. (3)
Сокращенно:
“Я собираюсь просить прибавки к зарплате или попытаюсь сэкономить”. (3)
Высказывание (3) истинно тогда, когда истинно ровно одно из высказываний (1) и (2). Если я не собираюсь ни просить прибавки, ни экономить, тогда фраза ложна. Также, я имел в виду, что не собираюсь делать и то, и другое одновременно.
Обратите внимание на разницу между операциями “ИЛИ” и “XOR”. Она заключается только в последнем правиле:
true ИЛИ true = true
true XOR true = false
В естественном языке обе операции изображаются одним и тем же союзом “или”. Это - пример неоднозначности естественного языка. Если помните, омонимы и многозначные слова могут иметь больше одного значения. Союз “или” именно такой: он имеет два возможных значения. Первое выражается логической операцией “ИЛИ”, второе - логической операцией “XOR”.
В английском языке существуют те же проблемы: союз “or” имеет те же два значения. А вот древним римлянам было проще, так как в латыни есть два разных слова: “vel” (операция “ИЛИ”) и “aut” (операция “XOR”).
Поскольку разница между операциями “ИЛИ” и “XOR” невелика (всего одно последнее правило), то иногда эта разница не имеет значения. Иногда о том, что имеется в виду, можно догадаться по интонации, или по контексту. Иногда определить точный смысл так и не удается.