Опубликован: 24.04.2007 | Уровень: специалист | Доступ: платный
Лекция 1:

Логика высказываний

Пример. Рассмотрим формулу (p\land (q\land \lnot r)). Она истинна в единственном случае — когда p и q истинны, а r ложно (см.таблицу 1.3).

Таблица 1.3. Таблица истинности.
p q r \lnot r (q \land \lnot r) (p\land(q\land\lnot r))
0 0 0 1 0 0
0 0 1 0 0 0
0 1 0 1 1 0
0 1 1 0 0 0
1 0 0 1 0 0
1 0 1 0 0 0
1 1 0 1 1 1
1 1 1 0 0 0

Некоторые формулы выражают логические законы — составные высказывания, истинные независимо от смысла их частей. Такие формулы (истинные при всех значениях входящих в них переменных) называют тавтологиями.

Пример. Формула ((p \land q)\to p) является тавтологией (это можно проверить, например, составив таблицу). Она выражает такой логический закон: из конъюнкции утверждений следует первое из них.

1. Как выглядит симметричное утверждение для дизъюнкции и какая формула его выражает?

Две формулы называют эквивалентными,если они истинны при одних и тех же значениях переменных (другими словами, если они задают одну и ту же булеву функцию). Например, формула (p \land (p\to q)) истинна лишь при p=q=И, и потому эквивалентна формуле (p\land q).

Рассмотрим формулу ((p\land q)\lor q). Она истинна, если переменная q истинна, и ложна, если переменная q ложна. Хотелось бы сказать, что она эквивалентна формуле q, но тут есть формальная трудность: она содержит две переменные и потому задает функцию от двух аргументов (типа \mathbb B\times\mathbb B\to\mathbb B ), в то время как формула q задает функцию одного аргумента. Мы не будем обращать на это внимания и будем считать эти формулы эквивалентными. Вообще, если есть список переменных p_1,\dots,p_n, содержащий все переменные некоторой формулы \varphi (и, возможно, еще какие-то переменные), можно считать, что формула \varphi задает функцию от n аргументов, возможно, на деле зависящую не от всех аргументов (постоянную по некоторым аргументам)

После сделанных оговорок легко проверить следующий факт: формулы \varphi и \psi эквивалентны тогда и только тогда, когда формула ((\varphi\to\psi)\hm\land{(\psi\to\varphi))} является тавтологией. Используя сокращение (p\leftrightarrow q) для ((p\to q)\hm\land{(q\to p)}), можно записывать утверждения об эквивалентности формул в виде тавтологий. Вот несколько таких эквивалентностей:

Теорема 1. Формулы

(p\land q) \leftrightarrow (q \land p);
((p\land q) \land r) \leftrightarrow (p\land (q \land r));
(p\lor q) \leftrightarrow (q \lor p);
((p\lor q) \lor r) \leftrightarrow (p\lor (q \lor r));
(p\land(q\lor r)) \leftrightarrow ((p\land q)\lor (p\land r));
(p\lor(q\land r)) \leftrightarrow ((p\lor q)\land (p\lor r));
\lnot(p\land q) \leftrightarrow (\lnot p\lor \lnot q);
\lnot(p\lor q) \leftrightarrow (\lnot p\land \lnot q);
(p\lor (p \land q)) \leftrightarrow p;
(p\land (p \lor q)) \leftrightarrow p;
(p\to q) \leftrightarrow (\lnot q\to \lnot p);
p \leftrightarrow \lnot\lnot p
являются тавтологиями.

Первые четыре эквивалентности выражают коммутативность и ассоциативность конъюнкции и дизъюнкции. Проверим, например, вторую: левая и правая части истинны в единственном случае (когда все переменные истинны), и потому эквивалентны. (Для дизъюнкции удобнее смотреть, когда она ложна.)

Две следующие эквивалентности утверждают дистрибутивность— заметим, что в отличие от сложения и умножения в кольцах здесь верны оба свойства дистрибутивности. Проверить эквивалентность легко, если отдельно рассмотреть случаи истинного и ложного p.

Следующие два свойства, законы Де Моргана, легко проверить, зная, что конъюнкция истинна, а дизъюнкция ложна лишь в одном случае. Эти свойства иногда выражают словами: "конъюнкция двойственна дизъюнкции".

Далее следуют два очевидных закона поглощения (один из них мы уже упоминали).

За ними идет правило контрапозиции, которое говорит, в частности, что утверждения "если x совершенно, то x четно"и "если x нечетно, то x несовершенно"равносильны. Хотя оно и очевидно проверяется с помощью таблиц истинности, с ним связаны любопытные парадоксы. Вот один из них.

Биолог А выдвинул гипотезу: все вороны черные. Проверяя ее, он вышел во двор и обнаружил на дереве ворону. Она оказалось черной. Биолог А радуется — гипотеза подтверждается. Биолог Б переформулировал гипотезу так: все не-черные предметы — не вороны (применив наше правило контрапозиции) и не стал выходить во двор, а открыл холодильник и нашел там оранжевый предмет. Он оказался апельсином, а не вороной. Биолог Б обрадовался — гипотеза подтверждается — и позвонил биологу А. Тот удивляется — у него тоже есть апельсин в холодильнике, но с его точки зрения никакого отношения к его гипотезе апельсин не имеет...

Другой парадокс: с точки зрения формальной логики утверждения "кто не с нами, тот против нас"и "кто не против нас, тот с нами"равносильны.

Последнее (и очевидное) правило p\leftrightarrow \lnot\lnot p называется снятием двойного отрицания.

2. Перечисленные эквивалентности соответствуют равенствам для множеств: например, первая гарантирует, что P\hm\cap Q\hm=Q\hm\cap P для любых множеств P и Q. Какие утверждения соответствуют остальным эквивалентностям?

3. Две формулы, содержащие только переменные и связки \land, \lor и \lnot, эквивалентны. Докажите, что они останутся эквивалентными, если всюду заменить \land на \lor и наоборот.

Далеко не все тавтологии имеют ясный интуитивный смысл. Например, формула {(p\to q)}\hm\lor{(q\to p)} является тавтологией (если одно из утверждений p и q ложно, то из него следует все, что угодно; если оба истинны, то тем более формула истинна), хотя и отчасти противоречит нашей интуиции — почему, собственно, из двух никак не связанных утверждений одно влечет другое? Еще более загадочна тавтология

((p\to q)\to p)\to p
(хотя ее ничего не стоит проверить с помощью таблиц истинности).

Отступление о пользе скобок.На самом деле наше определение истинности содержит серьезный пробел. Чтобы обнаружить его, зададим себе вопрос: зачем нужны скобки в формулах? Представим себе, что мы изменим определение формулы, и будем говорить, что P \land Q и P \lor Q являются формулами для любых P и Q. Останутся ли наши рассуждения в силе?

Легко понять, что мы столкнемся с трудностью при определении булевой функции, соответствующей формуле. В этом определении мы подставляли нули и единицы на место переменных и затем вычисляли значение формулы с помощью таблиц истинности для связок. Но теперь, когда мы изменили определение формулы, формула p\land q \lor r может быть получена двумя способами — из формул p\land q и r с помощью операции \lor и из формул p и q\lor r спомощью операции \land. Эти два толкования дадут разный результат при попытке вычислить значение 0 \land 0 \lor 1.

Из сказанного ясно, что скобки нужны, чтобы гарантировать однозначность синтаксического разбора формулы. Точнее говоря, верно такое утверждение:

Теорема 2 (однозначность разбора). Пропозициональная формула, не являющаяся переменной, может быть представлена ровно в одном из четырех видов (A\land B), (A\lor B), (A\to B) или \lnot A, где A и B — некоторые формулы, причем A и B (в первых трех случаях) восстанавливаются однозначно.

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

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

Слова "индукцией по построению"означают, что мы проверяем утверждение для переменных, а также доказываем, что если оно верно для формул A и B, то оно верно и для формул (A\land B), (A\lor B), (A\to B) и \lnot A.

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

Нет смысла вдаваться в подробности этого (несложного) рассуждения: вообще-то алгоритмы разбора формул — это отдельная большая и практически важная тема (в первую очередь в связи с компиляторами). Приведенный нами алгоритм далеко не оптимален. С другой стороны, мы вообще можем обойти эту проблему, потребовав, чтобы при записи формул левая и правая скобки, окружающие формулу, связывались линией — тогда однозначность разбора формулы не вызывает вопросов, и больше ничего нам не надо.

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

4. Польский логик Лукасевич предлагал обходиться без скобок, записывая в формулах сначала знак операции, а потом операнды (без пробелов и разделителей). Например, (a+b)\hm\times(c+(d\times e)) в его обозначениях запишется как {{\times}{+}ab{+}c{\times}{d}
{e}}. Эту запись еще называют польской записью. Обратная польская запись отличается от нее тем, что знак операции идет после операндов. Покажите, что в обоих случаях порядок действий восстанавливается однозначно.

Алексей Васильев
Алексей Васильев
Россия, Новосибирск
David Satseradze
David Satseradze
Грузия, Тбилиси