Опубликован: 24.04.2007 | Доступ: свободный | Студентов: 721 / 35 | Оценка: 4.60 / 4.30 | Длительность: 25:56:00
Специальности: Программист
Лекция 1:

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

Полные системы связок

Рассматриваемая нами система пропозициональных связок ( \land, \lor, \to, \lnot ) полна в следующем смысле:

Теорема 3 (Полнота системы связок). Любая булева функция n аргументов может быть записана в виде пропозициональной формулы.

Проще всего пояснить это на примере. Пусть, например, булева функция \varphi(p,q,r) задана таблицей 1.4

(\lnot p \land \lnot q \land \lnot r) \lor(\lnot p \land q \land r) \lor(p \land q \land r) \phantom{\lor}
Таблица 1.4. Булева функция и задающая ее формула
p q r \varphi(p,q,r)
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1

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

Ясно, что аналогичная конструкция применима для любой таблицы (с любым числом переменных).

Для формул подобного вида есть специальное название: формулы в дизъюнктивной нормальной форме. Более подробно: литералом называется переменная или отрицание переменной, конъюнктом называется произвольная конъюнкция литералов, а дизъюнктивной нормальной формой называется дизъюнкция конъюнктов. В нашем случае в каждый конъюнкт входит n литералов (где n — число переменных), а число конъюнктов равно числу строк с единицами и может меняться от нуля (тогда, правда, получается не совсем формула, а "пустая дизъюнкция", и ее можно заменить какой-нибудь всегда ложной формулой типа p\land \lnot p ) до 2^n (если булева функция всегда истинна).

5. Длина построенной в доказательстве теоремы 3 формулы зависит от числа единиц: формула будет короткой, если единиц в таблице мало. А как написать (сравнительно) короткую формулу, если в таблице мало нулей, а в основном единицы?

Иногда полезна конъюнктивная нормальная форма, которая представляет собой конъюнкцию дизъюнктов. Каждый дизъюнкт состоит из литералов, соединенных дизъюнкциями. Теорему 3 можно теперь усилить так:

Теорема 4. Всякая булева функция может быть выражена формулой, находящейся в дизъюнктивной нормальной форме, а также формулой, находящейся в конъюнктивной нормальной форме.

Первая часть утверждения уже доказана. Вторая часть аналогична первой, надо только для каждой строки с нулем написать подходящий дизъюнкт.

Можно также представить функцию \lnot \varphi в дизъюнктивной нормальной форме, а затем воспользоваться законами Де Моргана, чтобы внести отрицание внутрь.

6. Проведите второй вариант рассуждения подробно.

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

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

Заметим, что при доказательстве теоремы 3 мы обошлись без импликации. Это и не удивительно, так как она выражается через дизъюнкцию и отрицание:

(p\to q) \ \leftrightarrow \ (\lnot p \lor q)
(проверьте!). Мы могли бы обойтись только конъюнкцией и отрицанием, так как
(p\lor q) \ \leftrightarrow \ \lnot(\lnot p \land \lnot q),
или только дизъюнкцией и отрицанием, так как
(p\land q) \ \leftrightarrow \ \lnot(\lnot p \lor \lnot q)
(обе эквивалентности вытекают из законов Де Моргана; их легко проверить и непосредственно). Как говорят, система связок \land, \lnot, а также система связок \lor, \lnot являются полными. (По определению это означает, что с их помощью можно записать любую булеву функцию.)

8. Докажите, что система связок \lnot, \to полна. (Указание: как записать через них дизъюнкцию?)

А вот без отрицания обойтись нельзя. Система связок \land,
\lor,\to неполна — и по очень простой причине: если все переменные истинны, то любая их комбинация, содержащая только указанные связки, истинна. (Как говорят, все эти связки "сохраняют единицу".)

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

10. Пусть \varphi\to\psiтавтология. Покажите, что найдется формула \tau, которая включает в себя только общие для \varphi и \psi переменные, для которой формулы (\varphi\to\tau) и (\tau\to\psi) являются тавтологиями. (Более общий вариант этого утверждения, в котором рассматриваются формулы с кванторами, называется леммой Крейга.)

В принципе мы не обязаны ограничиваться четырьмя рассмотренными связками. Любая булева функция может играть роль связки. Например, можно рассмотреть связку (p \texttt{ notand } q), задаваемую эквивалентностью

(p \texttt{ notand } q) \ \leftrightarrow \ \lnot(p\land q)
(словами: (p\texttt{ notand }q) ложно, лишь если p и q истинны). Через нее выражается отрицание ( p \texttt{ notand }p ), после чего можно выразить конъюнкцию, а затем, как мы знаем, и вообще любую функцию. (Знакомые с цифровыми логическими схемами малого уровня интеграции хорошо знакомы с этим утверждением: достаточно большой запас схем И-НЕ позволяет реализовать любую требуемую зависимость выхода от входов.)

Другая интересная полная система связок — сложение по модулю 2, конъюнкция и константа 1 (которую можно считать 0 -арной связкой, задающей функцию от нуля аргументов). Представленные в этой системе булевы функции становятся полиномами с коэффициентами в кольце вычетов по модулю 2. Идея рассматривать булевы функции как полиномы (оказавшаяся неожиданно плодотворной в последние годы) была высказана в 1927 г. российским математиком Иваном Ивановичем Жегалкиным.

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

Назовем полиномом сумму таких мономов по модулю 2 (это значит, что 0\oplus0\hm =0, 0\oplus 1\hm=1\oplus 0\hm=1 и 1\oplus1\hm=0 ). Ясно, что два повторяющихся монома можно сократить (ведь сложение по модулю 2 ), так что будем рассматривать только полиномы без повторяющихся мономов. При этом, естественно, порядок членов в мономе (как и порядок мономов в полиноме) роли не играет, их можно переставлять.