ИФПМ (ПРИТ) / Учебник
.pdf4.Элементы математической логики
4.1.Алгебра высказываний
Одним из первоначальных понятий математической логики является понятие вы-
сказывания. В математике часто имеем дело с различными высказываниями. Например,
2 5 ;
17 делится на 8;
101 – простое число.
Каждое такое высказывание формулируется с помощью математических символов или слов какого-то языка. Можно сказать, что первое и второе высказывания из этого спи-
ска являются ложными, а третье высказывание – истинно. Высказывание – это такое предложение, формулируемое с помощью некоторого языка, относительно которого имеет смысл говорить истинно оно или ложно. Не каждую последовательность математических символов или слов некоторого языка можно считать высказыванием. Например, следую-
щие предложения высказываниями не являются.
Число 0,0001 очень мало.
Существует ли число, квадрат которого равен 2?
Да здравствует книга – источник знаний!
x 0 .
Действительно, в первом предложении понятие «очень мало» не имеет точного смысла. Поэтому сделать вывода о справедливости такого утверждения нельзя. Не имеет смысла говорить истинно или ложно вопросительное или восклицательное предложение.
Что касается последнего, то, не зная x , нельзя сказать, истинно это неравенство или нет.
Относительно высказываний справедливо следующее:
1)всякое высказывание является либо истинным, либо ложным (закон исклю-
чения третьего);
2)никакое высказывание не может быть одновременно истинным и ложным
(закон противоречия).
Каждому высказыванию будем сопоставлять его значение истинности: 1 – если вы-
сказывание истинно и 0 – если ложно.
В дальнейшем высказывания будем обозначать большими латинскими буквами:
A, B,C,...,Y, Z .
Над высказываниями можно производить логические операции. Рассмотрим сле-
дующие из них: конъюнкцию, дизъюнкцию, отрицание, импликацию, эквивалентность.
91
Результатом операции над высказываниями является новое высказывание. Дать определе-
ние операции означает в точности указать, когда новое высказывание является истинным,
а когда – ложным. Приведѐм обозначение операций и соответствующий им оборот рус-
ского языка:
Название операции |
Обозначение |
Оборот русского языка |
||
Конъюнкция |
A B, A B |
И |
||
|
|
|
|
|
Дизъюнкция |
A B |
Или |
||
Отрицание |
|
|
|
Не |
A |
||||
Импликация |
A B |
Если A , то B , |
||
|
|
|
|
из A следует B |
Эквивалентность |
A B |
A тогда и только тогда, |
||
|
|
|
|
когда B |
В следующей таблице указаны значения истинности полученного в результате опе-
рации высказывания в зависимости от значений истинности высказываний, участвующих
воперации. Еѐ можно рассматривать как определение этих операций.
Определение 1.
A |
B |
A B |
A B |
|
|
|
A B |
A B |
A |
||||||||
0 |
0 |
0 |
0 |
1 |
|
1 |
1 |
|
0 |
1 |
0 |
1 |
1 |
|
1 |
0 |
|
1 |
0 |
0 |
1 |
0 |
|
0 |
0 |
|
1 |
1 |
1 |
1 |
0 |
|
1 |
1 |
Для примера сформулируем определение конъюнкции. Конъюнкцией двух выска-
зываний A и B называется высказывание, которое истинно только в том случае, когда истинны оба высказывания A и B одновременно.
Аналогично, пользуясь вышеприведѐнной таблицей, можно сформулировать опре-
деления остальных логических операций.
Пример 1. A – идѐт дождь, B – дует ветер.
A B – идѐт дождь и дует ветер;
A B – идѐт дождь или дует ветер;
A – дождь не идѐт;
A B – если идѐт дождь, то дует ветер;
A B – дождь идѐт тогда и только тогда, когда дует ветер.
В дальнейшем будем отвлекаться от конкретного смысла высказывания A и счи-
тать A просто переменной, принимающей два значения: 0 или 1. Такие переменные назы-
вают логическими или булевыми.
Теперь перейдѐм к предикатам.
92
Определение 2. Если некоторое предложение содержит переменные величины,
принимающие значения из некоторого множества так, что при каждом наборе кон-
кретных значений этих величин данное предложение превращается в высказывание, то имеем дело с предикатом. Количество неизвестных величин, входящих в такое предло-
жение, называется местностью предиката. Бывают одноместные, двухместные, трѐх-
местные и т.д. предикаты.
Приведѐм некоторые примеры.
Пример 2.
1)x2 3x 2 0 ;
2)x 0 ;
3)x3 5x делится на 6;
4)x делится на y ;
5)x2 y2 z2 .
Уравнение x2 3x 2 0 содержит переменную x . При подстановке конкретных значений x получаем высказывание, которое может быть верным или неверным. Так, при x 0 получаем неверное равенство 2 0 , а при x 1 – верное 0 0 .
Для каждого предиката нужно знать, какие значения могут принимать неизвестные величины. Так, в 1), 2) и 5) неизвестные x, y и z могут принимать действительные значе-
ния, а в 3) и 4) неизвестные x и y предполагаются натуральными числами. Предикаты в
1), 2), 3) – одноместные. В 4) и 5) имеем дело с двухместным и трѐхместным предикатами соответственно.
К предикатам будем приписывать так называемые кванторы. Бывают квантор всеобщности (обозначение ) и квантор существования (обозначение ).
Обозначение x читается «для любого x ». Обозначение x читается «существует x ». К любой неизвестной величине, входящей в предикат, можно слева приписать квантор. Если к n -местному предикату слева приписать квантор, относящийся к одной из неизвестных, то получится (n 1) -местный предикат.
Пример 3.
1)x x2 3x 2 0 ;
2)x x 0 ;
3)x x3 5x делится на 6;
4)x y x делится на y ;
5)x y z x2 y2 z2 ;
6)y z x x2 y2 z2 .
93
Запишем словесно, например, последнее высказывание: «Для любого y и для лю-
бого z существует такое x , что x2 y2 z2 .
В заключение покажем, как можно построить отрицание высказывания, содержа-
щего кванторы. Пусть P(x) – одноместный предикат с неизвестным x . Отрицание выска-
зывания x P(x) означает, что P(x) верно не для всех x , т.е. существует такое x , для ко-
торого P(x) неверно. Поэтому
x P(x) x P(x) .
Аналогично
x P(x) x P(x) .
Пример 4.
y z x x2 y2 z2 x z x x2 y2 z2
y z x x2 y2 z2 y z x x2 y2 z2
y z x x2 y2 z2 .
4.2. Булевы функции
Определение 1. Множество B 0;1 , состоящее из двух элементов 0 и 1, будем
называть булеаном.
Определение 2. Булевой функцией n переменных будем называть произвольное отображение f : Bn B . Булеву функцию будем записывать в виде f (x1, x2 ,..., xn ) .
Булеву функцию можно задать так называемой таблицей истинности. В каждой
строке такой таблицы указывается значение булевой функции в зависимости от значений набора неизвестных. Наборы неизвестных обычно следуют в порядке возрастания двоич-
ных чисел.
Пример 1.
x |
y |
z |
f (x, y, z) |
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
94
Используя знаки логических операций, можно строить более сложные функции.
Запись функции в виде суперпозиции простейших логических функций, имеющих свои обозначения, называется формулой. Однако бывает, что две по виду разные формулы вы-
ражают одну и ту же булеву функцию.
Определение 3. Две булевы функции f (x1,..., xn ) и g(x1,..., xn ) от одного и того же набора переменных называются тождественно равными, если их таблицы истинно-
сти совпадают. В этом случае пишем f (x1,..., xn ) g(x1,..., xn ) .
Приведѐм несколько примеров пар формул тождественно равных функций. Доказа-
тельство в каждом случае состоит в сравнении таблиц истинности этих функций и остаѐт-
ся в качестве упражнения:
1)A A .
2)A B A B .
3)A B A B .
4)A B B A.
5)A B A B .
Поскольку существует 2n различных наборов значений переменных x1,..., xn и для каждого набора логическая функция может принимать два значения, то существует всего
22n логических функций от n переменных. В частности, существует 4 логические функ-
ции одной переменной:
x |
0 |
1 |
2 |
3 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
Функции 0 , |
|
3 – это константы 0 и 1 соответственно, |
1(x) x – тождественная |
|||||||||||||||||||||||
функция, а 2 (x) x |
|
– отрицание. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
Далее, существует 222 |
24 |
16 логических функций двух переменных: |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1 |
|
x2 |
|
0 |
|
1 |
|
2 |
|
3 |
4 |
5 |
|
6 |
|
7 |
|
|
|||||
|
|
|
0 |
|
0 |
|
0 |
|
0 |
|
0 |
0 |
|
0 |
0 |
0 |
0 |
|
|
|||||||
|
|
|
0 |
|
1 |
|
0 |
|
0 |
|
0 |
0 |
|
1 |
1 |
1 |
1 |
|
|
|||||||
|
|
|
1 |
|
0 |
|
0 |
|
0 |
|
1 |
1 |
|
0 |
0 |
1 |
1 |
|
|
|||||||
|
|
|
1 |
|
1 |
|
0 |
|
1 |
|
0 |
1 |
|
0 |
1 |
0 |
1 |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
x1 |
|
x2 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
13 |
|
14 |
|
15 |
|
||||||
|
|
0 |
|
0 |
|
1 |
|
1 |
|
1 |
1 |
|
1 |
1 |
1 |
1 |
|
|
||||||||
|
|
0 |
|
1 |
|
0 |
|
0 |
|
0 |
0 |
|
1 |
1 |
1 |
1 |
|
|
||||||||
|
|
1 |
|
0 |
|
0 |
|
0 |
|
1 |
1 |
|
0 |
0 |
1 |
1 |
|
|
||||||||
|
|
1 |
|
1 |
|
0 |
|
1 |
|
0 |
1 |
|
0 |
1 |
0 |
1 |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
|
|
|
|
|
|
|
|
|
Отметим среди них конъюнкцию 1 , дизъюнкцию 7 , импликацию 13 , эквива-
лентность 9 . Кроме них свои обозначения имеют 8 x1 x2 |
– стрелка Пирса, 14 x1 |
|
x2 |
|
|||
– штрих Шеффера, 6 x1 x2 – сложение по модулю 2. |
|
|
|
Определение 4. Для B 0;1 определим
|
|
x |
x, |
при 0, |
|
|
|
|
при 1. |
|
|
|
|
|
x, |
|
|
Заметим, что x 1 x . |
|
|
|
|
|
Теорема 1. Каждую булеву функцию |
f (x1,..., xn ) при любом m (1 m n) можно |
||||
представить в следующей форме: |
|
|
|
|
|
f (x1,..., xn ) |
|
x1 1 |
... xmm f 1,..., m , xm 1,..., xn .(4.1) |
||
( 1,..., n ) |
|
|
|
||
Следствие 1. Справедлива следующая формула разложения булевой функции по |
|||||
одной переменной: |
|
|
|
|
|
f (x1,..., xn ) x1 f 0, x2 ,..., xn x1 f (1, x2 ,..., xn ) . |
|
||||
Следствие 2. Справедлива следующая формула: |
|
||||
f (x1,..., xn ) |
|
x1 1 ... xn n . |
(4.2) |
||
|
|
|
f ( 1,..., n ) 1 |
|
|
Определение 5. Равенство (4.2) называется совершенной дизъюнктивной нор- |
мальной формой (СДНФ) функции f (x1,..., xn ) .
Для того чтобы составить СДНФ для функции f , заданной своей таблицей истин-
ности, нужно рассмотреть строки значений аргументов, для которых значения f равны 1.
Каждой строке соответствует элементарная конъюнкция, т.е. конъюнкция всех перемен-
ных функции f , причѐм, если значение xi 0 , то xi входит в элементарную конъюнкцию как xi , в противном случае как просто xi . СДНФ представляет собой дизъюнкцию этих элементарных конъюнкций.
Пример 2. Рассмотрим функцию f (x, y, z) , заданную своей таблицей истинности из примера 1. Столбец значений функции содержит три единицы во 2-й, 5-й и 6-й строках.
Вторая строка таблицы истинности содержит значения переменных 001. Ей соответствует элементарная конъюнкция x y z . Пятой строке соответствует x y z и шестой – x y z .
Таким образом, СДНФ функции f имеет вид
f(x, y, z) x y z x y z x y z .
Вматематической логике имеет место так называемый принцип двойственности.
Если имеется некоторое утверждение, сформулированное в логических терминах, то мож-
96
но сформулировать двойственное ему утверждение, если поменять местами x и x , и
, 0 и 1.
Наряду с СДНФ каждая функция f может быть записана в двойственной форме,
которая называется совершенной конъюнктивной нормальной формой (СКНФ). Способ записи функции в виде СКНФ разберѐм на примере.
Пример 3. Рассмотрим опять функцию f (x, y, z) , заданную таблицей истинности из примера 1. Теперь нас будут интересовать строки, в которых значения функции f равны 0.
Каждой такой строке соответствует элементарная дизъюнкция. Причѐм, если значение со-
ответствующей переменной x равно 1, то x входит в элементарную дизъюнкцию как x ,
иначе как x . Например, первой строке таблицы истинности соответствует элементарная дизъюнкция x y z , третьей строке – x y z , четвѐртой – x y z , седьмой – x y z и
восьмой – x y z . СКНФ представляет собой конъюнкцию этих элементарных дизъюнк-
ций:
f (x, y, z) (x y z) (x y z) (x y z ) (x y z) (x y z ) .
Возможность записи функции f в виде СДНФ и СКНФ показывает, что любую булеву функцию можно выразить с помощью трѐх логических операций: конъюнкции,
дизъюнкции и отрицания.
Задачи
Докажите, что следующие булевы функции тождественно равны, сравнив их таб-
лицы истинности.
1.x y x y .
2.x y x y .
3.8 (x1, x2 ) x1 x2 x y .
4.14 (x1, x2 ) x1 x2 x y .
Для следующих булевых функций трѐх переменных составьте их таблицы истин-
ности.
5.f1(x, y, z) x ( y z ) .
6.f2 (x, y, z) (x y) ( y z) .
7.f3 (x, y, z) (x y) (x z ) .
Найдите СДНФ и СКНФ для следующих функций.
8.Для функции f1 .
9.Для функции f2 .
10.Для функции f3 .
97
x |
y |
z |
f1 |
f2 |
f3 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
4.3. Полные системы и замкнутые классы булевых функций
Определение 1. Пусть P f1, f2 ,..., |
fk – некоторая система булевых функций |
произвольного конечного числа аргументов, а |
L x1,..., xn – фиксированный набор пере- |
менных. Определим множество функций P , порождѐнное системой P . Пусть fi P . |
Будем считать, что функция, которая получается в результате подстановки вместо аргументов функции fi переменных из списка L (в любых сочетаниях), принадлежит P
. Кроме того, если функция |
f P , то функция, полученная в результате подстановки |
|
вместо аргументов функции |
f любых переменных из списка L или функция из |
P , так |
же принадлежит P . Будем говорить, что множество функций P порождено систе- |
||
мой P . Функцию, принадлежащую P , будем называть суперпозицией функций из P . |
||
Определение 2. Система булевых функций P f1, f2 ,..., fk называется полной, |
||
если для любого списка конечного числа переменных L x1,..., xn множество P |
совпа- |
|
дает с множеством всех булевых функций n переменных. |
|
Определение 3. Полная система булевых функций P f1, f2 ,..., fk называется базисом, если она является минимальной полной системой по включению. Другими слова-
ми, если из этой системы удалить хотя бы одну функцию, то оставшиеся функции уже не будут образовывать полную систему.
Лемма. Пусть имеются две системы (I ) : f1, f2 ,... и (II ) : g1, g2 ,... и каждая из функций системы (I ) выражается через функции системы (II ) . Тогда если система (I )
является полной, то и система (II ) будет полной.
Доказательство. Пусть h – произвольная булева функции. Тогда еѐ можно выразить через функции системы (I ) . Каждую функцию, входящую в это выражение, можно, в свою очередь, выразить через функции системы (II ) . В результате получим выражение функции h
через функции системы, следовательно, эта система также является полной.
98
Лемма доказана.
Теорема 1. Следующие системы булевых функция являются полными:
(А): x, x y ;
(В): x, x y ;
(С): x y ; (D): x y .
Доказательство. Из теоремы 1 § 4.2 следует, что система x, x y, x y является полной. Но x y x y . Поэтому система (А) полна.
Аналогично полна система (B), поскольку x y x y . Далее, x | y x y . Поэтому x x x x x . Кроме того, (x y) (x y) x y x y . Значит, система (С) так же полна.
Аналогично полна система (D).
Теорема доказана.
Определение 3. Если в качестве сложения рассматривать сложение по модулю
2 (обозначение x1 x2 ), а в качестве умножения – конъюнкцию (обозначение x1x2 ), то многочлен от n переменных с коэффициентами 0 и 1 называется многочленом Жегалки-
на.
Заметим, что в многочлене Жегалкина не могут присутствовать степени перемен-
ных выше первой, поскольку всегда x2 x .
Теорема 2. Каждая булева функция может быть записана в виде многочлена Жегалкина, причѐм единственным образом.
Доказательство. Во-первых, заметим, что система функций 0,1, x1 x2 , x1 x2 явля-
ется полной, поскольку x 1 x . Следовательно, любую булеву функцию можно записать в виде многочлена Жегалкина.
Подсчитаем число многочленов Жегалкина от n переменных. Число одночленов есть 2n . Перед каждым из них можно поставить коэффициент 0 или 1 и образовать сумму.
В итоге получим 22n многочленов, т.е. ровно столько же, сколько и булевых функций.
Поскольку разные булевы функции не могут иметь один и тот же многочлен Жегалкина,
то соответствие между многочленами Жегалкина и булевыми функциями является взаим-
но однозначным.
Теорема доказана.
Пример. Запишем дизъюнкцию x1 x2 в виде многочлена Жегалкина:
x1 x2 x1 x2 (x1 1)(x2 1) 1 x1x2 x1 x2 .
99
Определение 4. Семейство булевых функций C будем называть замкнутым классом, если любая суперпозиция функций из C опять принадлежит C .
Определение 5. Класс всех булевых функций (любого конечного числа аргумен-
тов), для которых f (0,...,0) 0 , обозначим T0 . Класс всех булевых функций, для которых
f (1,...,1) 1, обозначим T1 . |
|
|
|
|
|
|
|
|
|
||
|
Предложение 1. Классы T0 и T1 |
являются замкнутыми. |
|
||||||||
|
Доказательство. Пусть f (x1,..., xn ) T0 |
и |
g1(x1,..., xn ),..., gn (x1,..., xn ) T0 . |
Заметим, |
|||||||
что |
xi T0 , |
поэтому |
возможно, |
|
что |
gk (x1,..., xn ) xi . |
Тогда |
||||
f g1(0,...,0),..., gn (0,...,0) f (0,...,0) 0 |
и, значит, класс T0 |
замкнут. |
|
||||||||
|
Аналогично T1 замкнут. |
|
|
|
|
|
|
|
|
|
|
|
Предложение доказано. |
|
|
|
|
|
|
|
|
|
|
|
|
|
(x ,..., x |
|
|||||||
|
Определение 6. Функция |
f |
) |
f |
(x ,..., x ) называется двойственной к |
||||||
|
|
|
|
1 |
n |
|
|
1 |
n |
|
|
f x ,..., x . В случае |
f f функция |
f x , , x |
|
называется самодвойственной. Класс |
|||||||
1 |
n |
|
|
|
1 |
n |
|
|
|
|
всех самодвойственных функций обозначим S .
Предложение 2. Класс S замкнут.
Доказательство. Заметим, что xi S . Пусть
f x1, , xn , g1 x1, , xn ,…, gn x1, , xn S
и
F(x1,..., xn ) f g1(x1,..., xn ),..., gn (x1,..., xn ) .
Тогда
F(x1,..., xn ) f g1(x1,..., xn ),..., gn (x1,..., xn )
f g1(x1,..., xn ),..., gn (x1,..., xn )
f g1(x1,..., xn ),..., gn (x1,..., xn ) F(x1,..., xn ) ,
что и означает самодвойственность функции Предложение доказано.
Определение 7. Будем считать, что две двоичные последовательности длины n
( 1,..., n ) и ( 1,..., n ) |
связаны неравенством |
, |
если i |
i i . Функцию |
f (x1,..., xn ) будем называть |
монотонной, если для |
любых |
наборов |
( 1,..., n ) и |
( 1,..., n ) , таких что , выполняется неравенство |
f ( ) f ( ) . Класс всех моно- |
тонных функций обозначим M . |
|
100