Логика высказываний: таблицы истинности, импликация и законы
Высказывания и логические операции без зубрёжки: строим таблицы истинности, распутываем импликацию, упрощаем формулы законами де Моргана и поглощения.
Каждая строчка кода в итоге сводится к вопросу «истина или ложь»: if (пароль верный) и (админ) — открыть доступ. Компьютер живёт в мире, где у утверждений всего два значения, и в этом мире есть точная грамматика — алгебра логики. Разберём её так, чтобы таблицы истинности перестали быть скучными сетками, а импликация — главной ловушкой семинара.
Высказывание и пять операций#
Высказывание — повествовательное предложение, про которое осмысленно спрашивать «истина или ложь». «Дважды два четыре» — высказывание (истинно). «Который час?» — нет: у вопроса нет истинностного значения. «» — тоже не высказывание: без указания судить не о чем; такие заготовки станут предикатами в уроке о логике предикатов. Обозначают высказывания латинскими буквами , , , а истину и ложь — и (или И/Л).
Из простых высказываний строят сложные пятью операциями. Приоритет: сначала отрицание , потом , потом , импликация и эквивалентность — последними. Скобки всё решают, но без них порядок надо помнить.
| Операция | Читается | Истинна, когда… | Пример: A=1, B=0 |
|---|---|---|---|
| — отрицание | не A | A ложно | |
| — конъюнкция | A и B | оба истинны | |
| — дизъюнкция | A или B | хотя бы одно истинно | |
| — импликация | если A, то B | не так: A истинно, а B ложно | |
| — эквивалентность | A тогда и только тогда, когда B | значения совпадают |
Импликация заслуживает отдельного разговора, потому что интуиция на ней ломается. Фраза «если идёт дождь, то асфальт мокрый» ложна только в одном случае: дождь идёт, а асфальт сухой. А если дождя нет? Обещание не нарушено — значение истинно, хоть асфальт хоть залейся. Отсюда табличка импликации: , , , и лишь . Из лжи следует что угодно — это не парадокс, а правило игры.
Формулы, тавтологии и законы#
Формула алгебры логики — высказывательные переменные, соединённые операциями. У формулы с переменными таблица истинности содержит строк: для трёх переменных — 8, для десяти — уже 1024. Формула, истинная при любых значениях переменных, называется тавтологией (закон логики), ложная всегда — противоречием. Проверка: истинно всегда — закон исключённого третьего, а ложно всегда — закон противоречия.
Формулы называются равносильными, если их столбцы в таблице истинности совпадают. Равносильности — рабочие лошадки упрощения:
- законы де Моргана: и — отрицание переворачивает операцию
- контрапозиция: — «если дождь, то мокро» равносильно «если сухо, то дождя нет»
- разворачивание импликации: — спасает, когда хочется убрать стрелку
- поглощение: и
- идемпотентность: , — повторение ничего не добавляет
Откуда брать законы? Из таблиц истинности — но лучше из здравого смысла. Де Моргана на русском: «неверно, что (сдал и матан, и физику)» означает «(матан не сдал) или (физику не сдал)». Контрапозиция: «если число делится на 4, то оно чётно» — то же самое, что «если число нечётно, то оно не делится на 4». Обе переформулировки безошибочны, и в доказательствах вы будете менять одну на другую постоянно.
Как упрощают формулы: разбор на шагах#
Типичная задача семинара: доказать равносильность или упростить формулу. Стратегия такая: 1) убрать импликации через ; 2) протащить отрицания внутрь по де Моргану; 3) применить поглощение и дистрибутивность. Пройдём на живом примере: упростим .
Ещё один частый тип задачи — перевод с русского языка. «Неверно, что турист взял с собой зонт или карту» превращается в : ни зонта, ни карты. Заметьте, как «или» превратилось в «и» — без де Моргана такие переводы постоянно путают.
Выполнимость: где логика встречается с алгоритмами
Формула называется выполнимой, если хотя бы на одном наборе значений она истинна. Вопрос «существует ли набор, делающий формулу истинной?» — знаменитая задача SAT, базовая NP-полная задача: для переменных в худшем случае надо просмотреть строк. Отсюда и практический интерес: современные SAT-решатели проверяют микросхемы и расписания, а сама задача — эталон сложности в теории алгоритмов.
Чему равно значение импликации ?
Операции-экзоты: XOR, штрих Шеффера, стрелка Пирса#
Кроме пятёрки базовых операций в задачах встречаются ещё три. Исключающее ИЛИ истинно, когда значения различны: честный перевод бытового «либо одно, либо другое». В электронике это сумма по модулю 2 — главный ингредиент сумматоров и шифрования. Штрих Шеффера — отрицание конъюнкции («не оба сразу»), стрелка Пирса — отрицание дизъюнкции («оба ложны»). Все три выражаются через базовые: , , .
Чем они интересны? Полотой системы. Система вентилей называется полной, если через неё можно выразить любую формулу. Стандартная тройка полна; но и одинокий штрих Шеффера полон: , а конъюнкция собирается как . То же верно для стрелки Пирса. В микросхемах это буквально экономит деньги: производить один тип вентиля проще, чем три.
Пример на чтение формул со скобками. Дана запись . По приоритету отрицание сильнее конъюнкции, конъюнкция сильнее импликации: читается как . Забыли приоритет — восстанавливайте скобками на черновике; потеря одной пары скобок меняет всю таблицу истинности.
Соберём всё в одну задачу, которую дают на контрольных в середине семестра: доказать равносильность . Слева — двойная импликация, справа — простая дизъюнкция; с виду они не похожи. Решайте по шагам, потом открывайте проверку.
- Убираем внешнюю импликацию: .
- Убираем внутреннюю: .
- Де Морган: , после снятия двойного отрицания: .
- Дистрибутивность наоборот: , а вторая скобка — тавтология.
- Итог: . Равносильность доказана.
| $A$ | $B$ | $A \oplus B$ | $A \uparrow B$ | $A \downarrow B$ |
|---|---|---|---|---|
- Таблица с переменными — строк; не ленитесь выписывать наборы в порядке двоичного счёта от 0 до , так ни одна строка не потеряется.
- Импликация — обещание: ложна ровно в одной строке .
- Де Морган — «переворот»: отрицание меняет операцию и инвертирует оба слагаемых.
- Любую импликацию можно убрать: — если стрелка мешает, превращайте её.
- Проверка равносильности одним набором не доказывается, но один удачный набор может опровергнуть — пользуйтесь для быстрого отсева.
- Формулы со скобками читайте по приоритету: ¬, затем ∧, затем ∨, и только потом стрелки — сомневаетесь, ставьте скобки.
Кстати, вся эта алгебра живёт внутри языков программирования. Логическое «и» в коде вычисляется с коротким замыканием: если левая часть конъюнкции ложна, правая даже не вычисляется — поэтому проверка if (s != null && s.length > 0) безопасна, а переставленная в обратный порядок упадёт с ошибкой. Компиляторы применяют де Моргана буквально: условие !(a && b) превращается в !a || !b. А таблица истинности XOR — это бит сложения по модулю два, на котором стоит вся криптография с одноразовым блокнотом.
Какая формула равносильна ?
Частые вопросы
Как быстро запомнить таблицу истинности импликации?
Импликация — обещание. Ложно обещание ровно тогда, когда его нарушили: посылка была истинной, а следствие не сбылось. Во всех остальных случаях обещание честно: из лжи ничего не следует, из истины в истину тоже норма.
Сколько строк в таблице истинности у формулы с пятью переменными?
строки. Растёт таблица быстро: 6 переменных — 64 строки, 10 — уже 1024. Поэтому для больших формул используют не перебор, а преобразования равносильностей и алгоритмы выполнимости.
Чем дизъюнкция в логике отличается от «или» в бытовом языке?
Логическая дизъюнкция — включающее «или»: истинно, когда верно хотя бы одно утверждение, в том числе оба сразу. Бытовое «или» часто исключающее («чай или кофе?»). Исключающее «или» в логике обозначается отдельно: , и в него входят слова «либо… либо».
Что сначала: отрицание, конъюнкция или импликация?
Порядок такой: отрицание , затем конъюнкция , затем дизъюнкция , потом импликация и эквивалентность . Импликация слабее всех, поэтому читается как , а не как .
Готовитесь к контрольной?
Чеклист тем по «Дискретка»: что вы уже умеете, что повторить и в каком порядке.
Открыть чеклист предмета →
Проверьте себя в бою
Босс-экзамен по «Дискретка»: квизы всех уроков плюс бесконечный поток сгенерированных задач. Каждая попытка — новый расклад.
Начать босс-экзамен →