Вы находитесь на странице: 1из 17

Лекция 6

§ 2.4. Классы Поста и замыкание

Функции, сохраняющие 0. Функции, сохраняющие 1. Самодвой-


ственные функции. Монотонные функции. Полином Жегалкина,
представление булевой функции полиномом Жегалкина. Линей-
ные функции. Классы Поста. Замыкание системы булевых функ-
ций.

Базовые понятия и утверждения


1. Функции, сохраняющие 0; функции, сохраняющие 1. Гово-
рят, что булева функция сохраняет 0, если f (0, 0,..., 0)  0 .
Говорят, что булева функция сохраняет 1, если f (1,1,...,1)  1 .
Обозначим через T0 ( T1 ) множество всех булевых функций, со-
храняющих 0 (1), а через T0  n  ( T1  n  ) множество функций от n пе-
ременных, сохраняющих 0 (1).
Пр и м ер 1 . Определить, принадлежит ли множествам T0 и T1
функция f  x, y, z    x  y   z .
◄ f  0, 0, 0   0  0  0  0 , следовательно,
f  x, y, z    x  y   z  T0 ;
f 1,1,1  1  1  1  1 , следовательно,
f  x, y, z    x  y   z  T1 . ►
Несложно убедиться, что функции 0, x , x  y, x  y, x  y сохра-
няют 0, а функции 1, x , x y, x  y, x  y, x  y не сохраняют 0,

функции 1, x , x  y, x  y, x  y, x  y сохраняют 1, а функции 0, x ,


x y, x  y, x  y не сохраняют 1.

1
Очевидно, что определения функций, сохраняющих 0 и 1, можно
переформулировать следующим образом: функция сохраняет 0, если ее
вектор значений начинается нулем, и функция сохраняет 1, если ее век-
тор значений оканчивается единицей.
Пр и м ер 2 . Определить число булевых функций от n перемен-
ных сохраняющих 0.
◄ Вектор значений функции от n переменных, сохраняющей 0,
 
имеет 2 n координаты, первая из которых равна 0, т.е.  0, ,...,   .
 
 2n 1 
Следовательно, функций от n переменных, сохраняющих 0, столько
же, сколько булевых векторов длины 2n  1 , т.е. 22 1 . ►
n

2. Самодвойственные функции. Булева функция называется са-


модвойственной, если она равна двойственной к ней, т.е. на любом
наборе  1 ,..., n  значений переменных  x1 ,..., xn  выполняется ра-

 
венство f  1 ,...,  n   f 1 ,...,  n .
Обозначим через S множество всех самодвойственных функций, а
через S( n) множество самодвойственных функций от n переменных.

 x
*
Пр и м ер 3 . а)  0 *  1 , 1*  0 ,  x *  x ,  x , значит,
среди функций одной переменной самодвойственными являются только
тождественная функция и отрицание.
б) Среди элементарных функций двух переменных
x  y, x  y, x  y , x y , x  y , x  y , x  y нет самодвойственных.
Чтобы убедиться в этом, достаточно сравнить векторы значений этих
функций с векторами значений функций, двойственных к ним:
 x  y   (0001)*  (0111) ,  x  y   (0111)*  (0001) ,
 x y

 x  y   (0110)*  (1001) ,  (1110)*  (1000) ,

 x  y

 (1000)*  (1110) ,  x  y   (1101)*  (0100) ,
 x  y   (1001)*  (0110) .

2
3. Монотонные функции. Если для любого i  i  i
( i  1, 2,..., n ), то говорят, что вектор    1 , 2 ,..., n  предшеству-
ет вектору   1 , 2 ,..., n  , и пишут  .
Заметим, что если номер вектора  меньше номера вектора  (и,
значит, в таблице истинности  стоит выше  ), то это еще не значит,
что  предшествует  . Чтобы выяснить, предшествует ли один вектор
другому, нужно, согласно определению, сравнить их координаты
(первую с первой, вторую со второй и т.д.).
Пр и м ер 4. а) Вектору (1, 0) предшествует вектор (0, 0) (но не
предшествует также меньший его по номеру вектор (0,1) ).
б) Вектору (1, 0,1) предшествуют векторы (0, 0, 0) , (0, 0,1) ,
(1, 0, 0) , (1, 0,1) .
Если произвольно взять два вектора одной длины, то может ока-
заться, что ни один из этих векторов не предшествует другому.
Нап р и м ер , вектор (0,1,1) не предшествует вектору (1,1, 0) и вектор
(1,1, 0) не предшествует вектору (0,1,1) .
Если имеет место хотя бы одно из соотношений   или  ,
то  и  называют сравнимыми.
Пр и м ер 5 . Сколько булевых векторов предшествует вектору
(1, 0,1,1, 0,1,1) ?
◄ Векторы, предшествующие вектору (1, 0,1,1, 0,1,1) , имеют вид
 1 , 0, 2 , 3 , 0, 4 , 5  , где  i выбираются из множества 0,1 . Для
подсчета будем использовать правило произведения. Вначале выбираем
значение 1 (это можно сделать двумя способами - взять 0 или 1), за-
тем выбираем значение  2 (0 или 1) и последним выбираем значение
 5 (0 или 1). Следовательно, общее число векторов, предшествующих
вектору (1,0,1,1,0,1,1) , равно 2  2  2  2  2  32 . ►
У п р ажн ен и е 2 . 23 . Скольким булевым векторам предшествует
вектор (1,0,1,0,0,0,1,0,1)?

3
Определение. Булева функция f называется монотонной, если
для любых наборов  и  значений переменных, таких что  ,
выполняется неравенство f     f  . 
Обозначим через M множество всех монотонных функций, а че-
рез M  n  множество монотонных функций от n переменных.
Чтобы убедиться в немонотонности функции, достаточно найти
два булевых вектора  и  , такие что  
 , а f     f  . Для
вывода о монотонности нужно сравнить значения функции на всех па-
рах сравнимых векторов.
Пр и м ер 6 . а) Ф ункции 0,1, x монотонные, а функция x немо-
нотонная, что легко проверить, поскольку для функций одной перемен-
ной условие монотонности сводится к выполнению неравенства
f (0)  f (1) .
б) Функции xy , x  y монотонные, а x  y , x y , x  y , x  y ,
x  y немонотонные. Действительно, для функций двух переменных
условие монотонности сводится к выполнению неравенств
f (0, 0)  f (0,1) , f (0, 0)  f (1, 0) , f (0, 0)  f (1,1) , f (0,1)  f (1,1) ,
f (1,0)  f (1,1) (обратите внимание, что значения f (0,1) и f (1, 0) не
сравниваются, так как в паре векторов (0,1), (1, 0) ни один не предше-
ствует другому). Для функций xy , x  y все эти неравенства выполня-
ются, а для остальных элементарных функций двух переменных - нет.
Действительно,
для f ( x, y )  x  y  (1001) имеем f (0,0)  f (0,1) ;
для f  x, y   x y  (1110) имеем f (0,0)  f (1,1) ;
для f ( x, y)  x  y  1000  имеем f (0,0)  f (0,1) ;
для f ( x, y )  x  y  (1101) имеем f (0,0)  f (1,0) ;
для f ( x, y )  x  y  (0110) имеем f (0,1)  f (1,1) .
Пр и м ер 7. Выяснить, монотонна или нет функция
f  (01010010) .
◄ Выпишем таблицу истинности функции f (табл. 2.25).

4
Будем последовательно перебирать пары
Таблица 2.25 булевых векторов, отбирать из них сравнимые и
x1 x2 x3 f сопоставлять значения функции f на векторах
0 0 0 0 этих пар.
0 0 1 1 Перебор можно вести, придерживаясь та-
0 1 0 0 кой схемы: сначала перебираем пары с векто-
0 1 1 1 ром (0, 0, 0) , затем пары с вектором (0, 0,1)
1 0 0 0 (вектор (0, 0, 0) уже не рассматриваем), затем
1 0 1 0 пары с вектором (0,1, 0) (векторы (0, 0, 0) и
1 1 0 1
1 1 1 (0, 0,1) уже не рассматриваем) и т.д.
0
Вектор (0, 0, 0) предшествует всем про-
чим булевым векторам длины 3, при этом значение функции на этом
векторе, будучи равным нулю, меньше либо равно значениям функции
на всех других векторах. Этот факт не позволяет сделать никаких выво-
дов относительно монотонности функции f , поэтому переходим к рас-
смотрению пар с вектором (0, 0,1) . Вектор (0, 0,1) предшествует век-
торам (0,1,1) , (1, 0,1) , (1,1,1) , при этом f (0, 0,1)  f (0,1,1) , однако
уже f (0, 0,1)  f (1, 0,1) . Следовательно, условие монотонности нару-
шено, и, значит, функция немонотонна. ►
У п р ажн ен и е 2 .2 4 . Выяснить, монотонна или нет функция
h  (01010111) .
4. Линейные функции. Рассмотрим формулы с двумя бинарными
операциями - конъюнкцией (умножением) и сложением по модулю два
(вместо x  y часто пишут x  y и говорят просто о сложении x и y ,
не указывая, что сложение производится по модулю два).
В дальнейшем будем использовать ряд равносильностей, справед-
ливость которых нетрудно проверить с помощью таблиц истинности:
1) x  y  y  x ;
2)  x  y   z  x   y  z  ;
3)  x  y  z  xz  yz ;
4) x  1  x ;
5) x  0  x ;
6) x  x  0 .

5
Таким образом, для сложения (по модулю два) и умножения
(конъюнкции) имеют место все основные арифметические законы: ком-
мутативность, ассоциативность, дистрибутивность умножения относи-
тельно сложения. Это позволяет использовать в записи арифметических
выражений все обычные упрощения, в частности, привычным образом
перемножать скобки:
7)  x  y  z  t   xz  yz  xt  yt .
Ассоциативность сложения позволяет упростить запись формул,
если договориться опускать скобки в случае многократного последова-
тельного применения этой операции. Тогда формулу x   y  z  мож-
но записывать в виде x  y  z . Для краткого обозначения суммы не-
скольких слагаемых используют знак , например, пишут
n
x1  x2  ...  xn   xi .
i 1
Полиномом Жегалкина над множеством X   x1 , x2 ,..., xn  назы-
вается всякая сумма (по модулю два) различных элементарных конъ-
юнкций над X , не содержащих отрицаний переменных.
Заметим, что элементарные конъюнкции, не содержащие отрица-
ний переменных, называют монотонными.
Наибольший из рангов элементарных конъюнкций, входящих в по-
лином, называют степенью полинома.
Согласно определению, произвольный полином Жегалкина имеет
вид  xi xi ...xi
1 2 k
или 1   xi xi ...xi
1 2 k
(здесь суммирование ведется
по некоторому множеству наборов  i1 , i2 ,...ik  , в каждом из которых
все i j различны). В число полиномов Жегалкина также входит кон-
станта 1 (напомним, что 1 считается элементарной конъюнкцией ранга
нуль). Кроме того, в число полиномов включают константу 0 .
Нап р и м ер , 1  x2  x1 x3 и x1 x2  x1 x3  x1 x2 x3 - полиномы
Жегалкина 2-й и 3-й степени соответственно над множеством
X   x1 , x2 , x3  .

6
Зададимся целью реализовать полиномом Жегалкина произволь-
ную булеву функцию. Для начала найдем полином Жегалкина для
дизъюнкции:
(4) (4) (7)
f  x 1  x2  x1  x2  x1  x2  1   x1  1   x2  1  1 
(5),(6)
 x1  x2  x1  x2  1  1  x1  x2  x1  x2 .
Теперь в нашем распоряжении есть очень полезная формула:
8) x1  x2  x1  x2  x1  x2 ,
Формула (8) в сочетании с тождествами (1) - (7) позволяет перейти
от произвольной ДНФ к полиному Жегалкина. Для этого нужно, приме-
нив формулы (8) и (4), избавиться от дизъюнкции и отрицания, после
чего перемножить скобки, воспользовавшись тождествами (3) и (7), и
затем упростить полученное выражение с помощью равенств (1) - (6).
Таким образом, если некоторая функция задана в виде ДНФ, то после
всех описанных преобразований она окажется заданной полиномом Же-
галкина. Поскольку каждую булеву функцию, не равную тождественно
нулю, можно представить в виде дизъюнктивной нормальной формы
(например, СДНФ), то приведенные выше рассуждения доказывают, что
любую булеву функцию можно задать полиномом Жегалкина.
Заметим, что если для получения полинома Жегалкина некоторой
функции в качестве исходной формулы использовать СДНФ, то на пер-
вом шаге преобразований знак  дизъюнкции можно просто заменить
знаком  суммы. Дело в том, что для любой пары входящих в СДНФ
элементарных конъюнкций K1 и K 2 найдется хотя бы одна перемен-
ная, которая в одну из конъюнкций входит без отрицания, а в другую - с
отрицанием, и, значит, произведение этих конъюнкций равно 0 , а если
K1 K 2  0 , то K1  K 2  K1  K 2 .
Чтобы представить функцию в виде полинома Жегалкина, вовсе не
обязательно в качестве исходной формулы брать ДНФ. Можно восполь-
зоваться любым представлением функции через дизъюнкцию, конъ-
юнкцию и отрицание, например, использовать СКНФ функции.
Пр и м ер 8 . Используя метод равносильных преобразований,
найти полином Жегалкина, реализующий функцию:
а) f  x 1 , x2   x1  x2 ; б) f  x 1 , x2   x1  x2 ;
в) f  x1 , x2   x1 x2 ; г) f  x 1 , x2   x1  x2 .

7
СДНФ
◄ а) x1  x2  x1  x2   x1  1 x2  1  x1 x2  x1  x2  1 ;
СДНФ
б) x1  x2  x1  x2  x1 x2  x1  x2  x1x2 
 x1 x2  x1  x2  1  x1 x2  x1  x2  1 ;
CKH
в) x1 x2  x1  x2  x1 x2  x1 x2  1 ;
CKH
г) x1  x2  x1  x2  x1  x2  x1  x2 
 x1  1  x2   x1  1 x2  1  x1  x1 x2 .►
Теорема 2.9. Для любой булевой функции существует задающий ее
полином Жегалкина. Он единственен с точностью до перестановок
слагаемых.
Доказательство. Возможность представления полиномом Жегал-
кина любой булевой функции нами уже доказана. Докажем, что такое
представление единственно.
Сначала выясним, сколько всего можно составить полиномов Же-
галкина от n переменных. Поставим в соответствие каждой монотон-
ной элементарной конъюнкции xi1 xi2 ...xik булев вектор длины n , в
котором координаты с номерами i1 , i2 ,...ik равны 1 , а остальные коор-
динаты равны 0 . Константе 1 поставим в соответствие нулевой набор.
Полученное соответствие взаимно-однозначно, значит, число элемен-
тарных конъюнкций, которые могут быть включены в произвольный
полином Жегалкина, равно числу булевых векторов длины n , т.е. 2 n .
Теперь упорядочим конъюнкции по возрастанию номеров сопо-
ставленных им булевых векторов: K0 , K1 ,..., K2n 1 . Очевидно, что вся-
кий полином Жегалкина единственным образом можно записать в виде
суммы: a0 K0  a1 K1  ...  a2n 1 K 2n 1 , где каждый коэффициент ai
равен 0 или 1 . Суммы такого вида будем называть каноническими по-
линомами Жегалкина от n переменных (примеры записи полиномов
Жегалкина в каноническом виде приведены сразу после доказательства
теоремы).
Каждый канонический полином Жегалкина от n переменных од-
нозначно определяется набором своих коэффициентов a0 , a1 ,..., a2n 1 ,

8
а каждый такой набор можно рассматривать как булев вектор длины
2 n . Следовательно, канонических полиномов Жегалкина от n пере-
n
менных столько же, сколько булевых векторов длины 2 n , т.е. 22 . Та-
ким образом, число полиномов Жегалкина от n переменных равно чис-
лу функций от n переменных.
Напомним, что наша цель - доказать, что каждая функция пред-
ставляется единственным полиномом. Предположим обратное, что
найдется функция, заданная двумя разными полиномами. Имеем: каж-
дому полиному соответствует ровно одна функция, им реализуемая,
причем в силу предположения для каких-то двух полиномов эта функ-
ция общая. Но тогда число функций, реализуемых полиномами, будет
меньше числа всех полиномов, а значит, и числа всех булевых функций.
Следовательно, найдется функция, не заданная ни одним полиномом,
что невозможно в силу справедливости первого утверждения теоремы.

Вернемся к вопросу о записи произвольного полинома Жегалкина
от n переменных в каноническом виде. Начнем с того, что запишем в
общем виде канонический полином Жегалкина от двух переменных. В
него войдут все монотонные элементарные конъюнкции над множе-
ством переменных  x1 , x2  , записанные в сумму в порядке возрастания
номеров соответствующих им булевых векторов. Напомним, что в каж-
дой такой конъюнкции перемножаются только те переменные, значения
которых в соответствующем булевом векторе равны 1. Первой идет
элементарная конъюнкция K 0  1 , соответствующая вектору (0,0), за
ней K1  x2 , соответствующая вектору (0,1), далее K 2  x1 , соответ-
ствующая вектору (1,0), и, наконец, K3  x1 x2 , соответствующая век-
тору (1,1). Итак, канонический полином Жегалкина от двух перемен-
ных имеет вид a0  a1 x2  a2 x1  a3 x1 x2 .
Рассуждая аналогично, выпишем в общем виде канонический по-
лином Жегалкина от трех переменных:
a0  a1 x3  a2 x2  a3 x2 x3  a4 x1  a5 x1 x3  a6 x1 x2  a7 x1 x2 x3 .
Имея перед глазами общие виды канонических полиномов, не со-
ставит труда переписать в каноническом виде любой конкретный поли-
ном. Нап р им ер ,
1  x1  x1 x2  1  0  x2  1  x1  1  x1 x2 ;

9
x1  x1 x3  x2 x3  x1 x2 x3 
 0  0  x3  0  x2  1  x2 x3  1  x1  1  x1 x3  0  x1 x2  1  x1 x2 x3 .
Чтобы задать функцию полиномом Жегалкина, применяют метод
равносильных преобразований и метод неопределенных коэффици-
ентов. С первым из них мы уже познакомились, доказывая возможность
представления произвольной булевой функции полиномом Жегалкина.
Рассмотрим метод неопределенных коэффициентов. Пусть
функция f зависит от n переменных. Запишем в общем виде канони-
ческий полином Жегалкина P от n переменных и для каждого набора
 1 , 2 ,..., n  значений переменных составим уравнение
f  1 , 2 ,..., n   P  1 , 2 ,..., n  .
В результате получим систему из 2 n уравнений, которая одно-
значно определяет коэффициенты полинома.
Пр и м ер 9. Используя метод неопределенных коэффициентов,
построить полином Жегалкина функции:
а) f  x1 , x2   x1 x2 ;
б) f  x 1 , x2 , x3   (10110111) .
◄ а) Выпишем таблицу истинности функции f (табл. 2.26).

Канонический полином Жегалкина от двух переменных имеет вид:


P( x1 , x2 )  a0  a1 x2  a2 x1  a3 x1 x2 .
Поэтому должны выполняться равенства:
Таблица 2.26
f  0,0   1  P  0,0   a0  a1  0  a2  0  a3  0  0;
x1 x2 f
f  0,1  1  P  0,1  a0  a1 1  a2  0  a3  0 1;
0 0 1
0 1 1 f 1,0   1  P 1,0   a0  a1  0  a2 1  a3 1 0;
1 0 1 f 1,1  0  P 1,1  a0  a1  1  a2  1  a3  1 1 .
1 1 0

Откуда последовательно находим a0  1 , a1  0 , a2  0 , a3  1 .


Таким образом, f  1  x1 x2 .

10
б) Выпишем таблицу истинности функции
Таблица 2.27
f (табл. 2.27).
x1 x2 x3 f Запишем в общем виде канонический по-
0 0 0 1 лином Жегалкина от трех переменных:
0 0 1 0 P  x1 , x2 , x3   a0  a1 x3  a2 x2 
0 1 0 1
a3 x2 x3  a4 x1  a5 x1 x3  a6 x1 x2  a7 x1 x2 x3 .
0 1 1 1
1 0 0 0 Нам нужно подобрать такие коэффици-
1 0 1 1 енты ai , чтобы на каждом наборе значений
1 1 0 1 переменных выполнялось равенство
1 1 1 1 f   1 , 2 , 3   P   1 , 2 , 3  .
Имеем:
f  0,0,0   1  P  0,0,0   a0  a1  0  a2  0  a3  0  0 
a4  0  a5  0  0  a6  0  0  a7  0  0  0  a0  1 ;
f  0,0,1  0  P  0,0,1  1  a1 1  a2  0  a3  0 1 
a4  0  a5  0  1  a6  0  0  a7  0  0  1  a1  1;
f  0,1,0   1  P  0,1,0   1  1  0  a2 1  a3 1  0 
a4  0  a5  0  0  a6  0  1  a7  0  1  0  a2  0 ;
f  0,1,1  1  P  0,1,1  1  11  0 1  a3 11 
a4  0  a5  0  1  a6  0  1  a7  0 1 1  a3  1 ;
f 1,0,0  0  P 1,0,0  1  1 0  0  0  1 0  0 
a4  1  a5  1  0  a6  1  0  a7 1  0  0  a4  1 ;
f 1,0,1  1  P 1,0,1  1  1 1  0  0  1  0 1 
1  1  a5 1 1  a6 1  0  a7  1  0  1  a5  0 ;
f 1,1,0   1  P 1,1,0   1  1  0  0 1  1 1  0  1 1 
0  1  0  a6  1  1  a7  1  1  0  a6  1 ;
f 1,1,1  1  P 1,1,1  1  11  0 1  1 1 1  1 1 
0  1  1  1  1  1  a7  1  1  1  a7  0 .
Теперь, когда коэффициенты найдены, запишем полином Жегал-
кина:

11
f  x1 , x2 , x3   1  1  x3  0  x2  1  x2 x3 
1  x1  0  x1 x3  1  x1 x2  0  x1 x2 x3 .
Упростив запись, получим
f  x1 , x2 , x3   1  x3  x2 x3  x1  x1 x2 . ►
Определение. Булева функция называется линейной, если ее поли-
ном Жегалкина имеет степень 0 или 1.
Иначе говоря, функция линейна, если ее можно представить фор-
мулой вида f  b0  b1 x1  b2 x2  ...  bn xn .
Обозначим через L множество всех линейных булевых функций,
через L(n) - множество линейных функций от n переменных.
Пр и м ер 1 0 . а) Все функции одной переменной 0,1, x, x  x  1
линейные.
б) Функции xy , x  y  x  y  xy , x y  1  xy ,
x  y  1  x  y  xy и x  y  x  y  x  y  xy  1  x  xy
линейными не являются. Функции x  y , x  y  x  y  x  y  1
линейные.
Множества функций T0 , T1 , S , M , L называют классами
Поста.
Пр и м ер 11 . Определить, каким из классов Поста принадлежит

функция f  x, y, z    x  y   z  x . 
◄ Выпишем таблицу истинности функции f (табл. 2.28).
Таблица 2.28

x y z x y x zx 
f  x, y , z    x  y   z  x 
0 0 0 0 1 0 0
0 0 1 0 1 0 0
0 1 0 1 1 0 1
0 1 1 1 1 0 1
1 0 0 1 0 1 0
1 0 1 1 0 0 1
1 1 0 1 0 1 0

12
1 1 1 1 0 0 1

f  0, 0, 0   0 , следовательно, f  T0 .
f 1,1,1  1 , следовательно, f  T1 .
f (0, 0,1)  f (1,1, 0) , следовательно, f S .
 0,1,0 (1,1,0) , а f  0,1, 0   f (1,1, 0) , следовательно, f M .
Чтобы определить, линейна ли функция, найдем ее полином Же-
галкина методом элементарных преобразований. Выпишем СДНФ
функции и упростим ее:
f  xyz  xyz  xyz  xyz  xy  z  z   xz  y  y   xy  xz 
 xy  xz  ( x  1) y  xz  xy  y  xz .
Поскольку в полиноме Жегалкина есть произведения переменных,
то f L . ►
5. Замыкание системы булевых функций. Замыкание B си-
стемы булевых функций B - это множество всех функций, которые
можно задать формулами над B .
Заметим что термин «система» используется в дискретной матема-
тике как синоним слова «множество».
 
Пр и м ер 12 . а) Пусть B  1, x , тогда B  0,1, x, x  .
б) Замыканием системы B  , ,  является множество всех
булевых функций P2 , поскольку любая булева функция представима в
виде СДНФ или СКНФ.
в) Замыканием системы B  0,1, ,  является множество
всех булевых функций P2 , поскольку любая булева функция предста-
вима в виде полинома Жегалкина.
Определение. Система функций B называется замкнутой, если
B  B .
Классы Поста T0 , T1 , S , M , L являются замкнутыми множе-
ствами.
Из этого утверждения (его доказательство приведено во второй ча-
сти параграфа) вытекает, что если функции f1 , f 2 ,..., f k принадлежат

13
некоторому классу Поста, то любая функция, записанная формулой с
использованием только функций этого класса, также будет принадле-
жать данному классу Поста.
Пр и м ер 1 3 . а) Функция f  xy  xz  yz монотонная, посколь-
ку она представлена исключительно через дизъюнкцию и конъюнкцию,
а эти две функции - монотонные.
б) Функция f  x  y  z линейная, поскольку она представлена
через линейные функции - отрицание, сложение по модулю два и экви-
валентность.
В то же время функцию, не принадлежащую какому-нибудь классу
Поста, нельзя представить формулой только через функции, входящие в
этот класс.
Пр и м ер 14 . Доказать, что функцию f  (1001) нельзя задать
формулой над множеством B   .
◄ Конъюнкция  принадлежит к классу T0 . Класс T0 является
замкнутым множеством, следовательно, любая функция, заданная фор-
мулой над его функциями, сохраняет 0. Функция f  (1001) этим
свойством не обладает, значит, ее нельзя задать формулой только через
конъюнкцию. ►

Теоретические обоснования
Теорема 2.10. Замыкание обладает следующими свойствами:
1) B  B ;
2) B  B ;


3)  B1  B2   B1   B2  ; 
4) B1   B2   B1  B2  .
Доказательство. Справедливость утверждения (1) непосред-
ственно следует из определения замыкания, поскольку всякая функция
реализуется формулой в виде символической записи самой функции.
Справедливость утверждения (2) вытекает из индуктивного опре-
деления формулы: всякая функция из B задается некоторой форму-

14
лой над B , а тогда всякая функция из B , которая задается форму-
лой над B , задается также некоторой формулой над B .
Утверждение (3) очевидно, поскольку, если B1 подмножество
B2 , то любая формула над B1 является также формулой над B2 .
Докажем утверждение (4). Возьмем произвольную функцию
f  B1   B2  . Согласно определению объединения множеств,
f  B1  или f  B2  , т.е. f можно задать формулой над B1 или
формулой над B2 . Но любая формула над B1 ( B2 ) будет формулой и
над B1  B2 . Следовательно, f  B1  B2  , что и требовалось до-
казать. ■
Теорема 2.11. Классы Поста T0 , T1 , S , M , L являются за-
мкнутыми множествами.
Доказательство. Надо доказать, что классы Поста совпадают со
своими замыканиями. Для этого нужно доказать два утверждения:
1) каждый класс Поста принадлежит своему замыканию и 2) замыкание
каждого класса Поста принадлежит самому классу.
Справедливость первого утверждения непосредственно вытекает
из первого свойства замыкания.
Второе утверждение сводится к тому, что любая функция, заданная
формулой через функции класса Поста, также принадлежит этому клас-
су. Справедливость этого утверждения несложно установить индукцией
по построению формул.
Б аз и с ин дук ци и . Тождественная функция принадлежит всем
классам Поста, значит, когда формула есть переменная, утверждение
справедливо.
Ин дук ти вн ый п ер ех о д. 1. Покажем, что функция
F  f ( f1 , f 2 ,..., f n )  T0 , если f , f1 , f 2 ,..., f n  T0 :
F (0,0,...,0)  f  f1  0,0,...,0  , f 2  0,0,...,0 ,..., f n  0,0,...,0   
fiT0 f T0
 f  0,0,...,0   0 .
2. Покажем, что функция F  f ( f1 , f 2 ,..., f n )  T1 , если
f , f1 , f 2 ,..., f n  T1 :

15
F (1,1,...,1)  f  f1 1,1,...,1 , f 2 1,1,...,1 ,..., f n 1,1,...,1  
fi T1 f T1
 f 1,1,...,1  1 .
3. Покажем, что функция F  f ( f1 , f 2 ,..., f n ) S , если
f , f1 , f 2 ,..., f n S :
принип двойственности

F    f ( f1 , f 2 ,..., f n )  
 f  ( f1 , f 2 ,..., f n )  f ( f1 , f 2 ,..., f n )  F .
4. Покажем, что функция F  f ( f1 , f 2 ,..., f n ) M , если
f , f1 , f 2 ,..., f n M .
Возьмем два произвольных набора  и  значений переменных
таких, что   . Тогда в силу монотонности функций f1 , f 2 ,..., f n
имеем:

1  f1     f1   1 ;
2  f 2     f 2    2 ;
……………………………

n  f n     f n   n .
Следовательно,  1 , 2 ,..., n   1, 2 ,..., n  , и в силу монотон-
ности f
f  1 , 2 ,..., n   f  1 , 2 ,..., n  .
Или
  
f  f1    , f 2    ,..., f n      f f1  , f 2  ,..., f n  .  
Таким образом, для любых наборов  и  таких что   , вы-

полняется неравенство F     F  , что и требовалось доказать.
5. Покажем что функция F  f ( f1 , f 2 ,..., f n ) L , если
f , f1 , f 2 ,..., f n L .
Пусть

16
f  b0  b1 y1  b2 y2  ...  bn yn ;
f1  a10  a11 x1  a12 x2  ...  a1n xn ;
f 2  a02  a12 x1  a22 x2  ...  an2 xn ;
……………………………………….
f n  a0n  a1n x1  a2n x2  ...  ann xn .

Подставим правые части этих равенств в формулу для F :


 n   n 
F  b0  b1  a10 
 
a1i xi   b2  a02 
  
ai2 xi   ... 

 i 1   i 1 
 n 
bn  a0n 
 
ain xi   b0  b1a10  b2 a02  ...  bn a0n 

 i 1 

  b1a1i xi  b2 ai2 xi  ...  bn ain xi  


n

i 1

 b1a1i  b2 ai2  ...  bn ain  xi 


n
 b0  b1a10  b2 a02  ...  bn a0n 
c0 i 1
ci
 c0  c1 x1  c2 x2  ...  cn xn .■

17