Добавил:
Помогу с учёбой на Прикладной информатике, пишите, найдёте сами Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИФПМ (ПРИТ) / Учебник

.pdf
Скачиваний:
71
Добавлен:
30.12.2021
Размер:
3.64 Mб
Скачать

4.Элементы математической логики

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

F(x1,..., xn ) .

Определение 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

Соседние файлы в папке ИФПМ (ПРИТ)