ВАЖНЕЙШИЕ ЗАМКНУТЫЕ КЛАССЫ. ТЕОРЕМА ПОСТА О ПОЛНОТЕ
аранов Виктор Павлович. Дискретная математика.
Раздел 4. Функциональные системы с операциями. Алгебра логики.
Лекция 23. Важнейшие замкнутые классы. Теорема Поста о полноте.
Лекция 23. ВАЖНЕЙШИЕ ЗАМКНУТЫЕ КЛАССЫ.
ТЕОРЕМА ПОСТА О ПОЛНОТЕ
План лекции:
- Важнейшие замкнутые классы булевых функций.
- Класс функций, сохраняющий константу 0.
- Класс функций, сохраняющий константу 1.
1.3. Класс самодвойственных функций.
1.4. Класс монотонных функций.
1.5. Класс линейных функций.
2. Теорема Поста о полноте.
Для формулировки критерия полноты необходимо предварительно рассмотреть пять замкнутых относительно операции суперпозиции классов булевых функций в . Каждый из них обладает тем свойством, что если производить операцию суперпозиции над функциями данного класса, то в результате будут получаться только функции из этого же класса.
- Важнейшие замкнутые классы булевых функций
- Класс функций, сохраняющий константу 0
Обозначим через класс всех булевых функций из , сохраняющих константу 0, то есть функций, которые равны нулю на нулевом наборе переменных:
.
Заметим, что если , а , то и .
Легко убедиться, что функции 0, , , , принадлежат классу , а функции 1, , , не входят в .
Поскольку таблица для функции из класса в первой строке содержит значение 0, то в содержится ровно булевых функций от переменных.
Покажем, что замкнутый класс. Для этого надо доказать следующее утверждение.
Лемма 1. Суперпозиция функций из класса является функцией класса .
Для доказательства необходимо убедиться, что применение операций и к функциям, сохраняющим 0, всякий раз дает функцию, сохраняющую 0.
В результате операции для функции имеем формулу , которая при нулевых значениях своих аргументов совпадает с .
Теперь покажем, что функция , полученная в результате применения операции , принадлежит , если принадлежат :
.
Лемма доказана.
Пример 1. Функции и входят в , поэтому суперпозиция этих функций будет сохранять 0. Следовательно, система неполная.
- Класс функций, сохраняющий константу 1
Обозначим через класс всех булевых функций из , сохраняющих константу 1, то есть функций, которые равны 1 на единичном наборе переменных:
.
Например, функции 1, , , принадлежат классу , а функции 0, , не входят в .
В силу того, что класс двойствен классу , нетрудно перенести результаты о классе на класс . Так, если , а , то и . Класс содержит булевых функций от переменных и является замкнутым классом, то есть суперпозиция функций из класса является функцией класса .
- Класс самодвойственных функций
Обозначим через класс всех самодвойственных функций из , то есть таких, что .
Как и выше, нетрудно проверить, что добавление равных функций не выводит за пределы класса :
.
Очевидно, что самодвойственными будут функции , . Менее тривиальным примером является функция :
Для самодвойственной функции имеет место тождество
.
Другими словами, на противоположных наборах и самодвойственная функция принимает противоположные значения. Отсюда следует, что самодвойственная функция определяется своими значениями на первой половине строк таблицы истинности. Поэтому число самодвойственных функций переменных равно .
Докажем, что класс замкнут, то есть, что суперпозиция самодвойственных функций является самодвойственной функцией. Для этого достаточно показать, что функция
является самодвойственной, если самодвойственны. Последнее устанавливается непосредственно:
.
Докажем теперь лемму о несамодвойственной функции.
Лемма 2. Если , то из нее путем подстановки функций и можно получить несамодвойственную функцию одного переменного, то есть константу.
Доказательство. Так как , то найдется набор такой, что
.
Рассмотрим функции () и положим
.
Тогда
Лемма доказана.
Например, функция несамодвойственна, так как . Аналогично для функции имеем: .
- Класс монотонных функций
Рассмотрим множество двоичных слов длины . Зададим на этом множестве отношение порядка (предшествования) следующим образом: будем говорить, что слово
предшествует слову
,
если
.
Тот факт, что слово предшествует слову будем обозначать .
Отношение предшествования удовлетворяет аксиомам рефлексивности, антисимметричности и транзитивности.
Например, 001011, 001001111111.
Слова 01 и 10 не находятся в отношении предшествования. Такие слова называются несравнимыми.
Отношение “” можно представить в виде ориентированного графа. Для имеем следующий граф:
Рис. 1. Представление отношения предшествования в виде ориентированного графа
Слово предшествует слову , если от к можно пройти по стрелкам.
Функция называется монотонной, если для любых наборов переменных и выполняется условие
,
то есть значение функции на меньшем наборе не превосходит значения функции на большем наборе.
Очевидно, что функция, равная монотонной функции, также является монотонной.
Например, монотонными функциями будут 0, 1, , , .
Обозначим через множество всех монотонных функций. Покажем, что класс монотонных функций замкнут.
Лемма 3. Суперпозиция функций из класса является функцией класса .
Доказательство. Доказательство леммы проведем на примере конкретной суперпозиции, рассуждение для общего случая будет аналогичным.
Пусть , где . Покажем, что . Рассмотрим два сравнимых набора значений аргументов функции :
.
Тогда , и в силу монотонности имеет место неравенство
.
Отсюда и в силу монотонности имеет место неравенство
.
В результате имеем
Таким образом, . Лемма доказана.
Будем называть наборы и соседними по -ой координате , если
, .
Докажем теперь лемму о немонотонной функции.
Лемма 4. Из немонотонной функции путем подстановки констант на места некоторых аргументов можно получить отрицание.
Доказательство. Пусть . Это значит, что
.
Покажем, что для функции найдется пара соседних наборов, для которых нарушается условие монотонности. Очевидно, пару соседних наборов и , для которых , всегда можно связать цепочкой соседних наборов. Возьмем пару соседних наборов , , для которых
, .
Рассмотрим функцию одного аргумента
.
Имеем
.
Так как , а , то . Лемма доказана.
- Класс линейных функций
Последним классом является класс всех линейных функций.
Функция называется линейной, если ее многочлен Жегалкина содержит только члены степени не выше первой:
.
Класс , очевидно, содержит константы 0 и 1, тождественную функцию , отрицание , сумму по mod 2 . Дизъюнкция нелинейная функция. Нелинейной также является конъюнкция , многочлен Жегалкина которого имеет вид .
Очевидным является следующее утверждение относительно замкнутости класса .
Лемма 5. Суперпозиция линейных функций является линейной функцией.
Докажем лемму о нелинейной функции.
Лемма 6. Пусть нелинейная функция и . Подстановкой констант на места аргументов функции можно получить нелинейную функцию от двух аргументов.
Доказательство. Рассмотрим многочлен Жегалкина функции , который по условию содержит, по крайней мере, один член степени выше первой. Переименовывая переменные, будем считать , что в этот член входят переменные , и, возможно, какие-то другие переменные. Выполним следующую группировку членов полинома Жегалкина функции : соберем члены, в которые входят и и вынесем за скобки. Среди оставшихся соберем члены, содержащие , и вынесем за скобки. Точно так же соберем члены, содержащие , и вынесем за скобки. В результате получим
.
Здесь некоторые функции от , причем функция тождественно не равна 0. Это следует из единственности полинома Жегалкина: если тождественно равно 0, то это означало бы, что функция имеет два полинома Жегалкина с произведением и без него. Тогда для некоторого набора значений переменных имеем . Отсюда
,
где , , .
Лемма доказана.
В заключение заметим, что замкнутые классы попарно различны, что видно из следующей таблицы, в которой знак + означает, что функция содержится в классе, а знак обозначает противоположную ситуацию.
Таблица 1
0 |
+ |
|
|
+ |
+ |
1 |
|
+ |
|
+ |
+ |
|
|
+ |
|
+ |
- Теорема Поста о полноте
Перейдем к рассмотрению одного из основных вопросов алгебры логики вопроса о необходимых и достаточных условиях полноты. Пусть
произвольная система функций из . Спрашивается, как выяснить, будет она полной или нет? Ответ на этот вопрос дает следующая теорема.
Теорема Поста. Для того чтобы система функций была полной, необходимо и достаточно, чтобы она целиком не содержалась ни в одном из пяти замкнутых классов .
Доказательство. Необходимость. Пусть полна, то есть . Допустим, что содержится в одном из указанных классов обозначим его через , то есть . Тогда в силу свойств замыкания и замкнутости имеем
.
Отсюда , что не так. Необходимость доказана.
Достаточность. Пусть целиком не содержится ни в одном из указанных классов. Тогда из можно выделить подсистему , содержащую не более пяти функций, которая обладает этим свойством. Для этого возьмем в функции , , , , и положим
.
Для доказательства достаточности убедимся, что из функций можно построить отрицание и конъюнкцию. Доказательство проведем в два этапа.
- Построение при помощи функций , , и констант и отрицания.
Рассмотрим функции и . Построим функции одного аргумента:
и .
При сделанных предположениях
, .
В зависимости от того, какие значения имеют и , возможны четыре варианта.
- , .
В этом случае , . В результате суперпозиции получаем константу 1: . Таким образом, отрицание и константы построены.
- , .
В этом случае , . Строим , и первый этап закончен.
- , .
Имеем . Воспользуемся функцией . Для этой функции найдется пара противоположных наборов и , на которых принимает одно и то же значение, так как
.
Рассмотрим функцию , в которой на место -го аргумента ставится , если , или , если . Тогда
.
Отсюда следует, что . С помощью отрицания построим другую константу.
- , .
Следовательно, , . Воспользуемся немонотонной функцией . По лемме 4 из путем подстановки констант можно получить отрицание.
- Покажем, что из функций можно построить конъюнкцию. При этом будем использовать построенные на первом этапе константы и отрицание. Воспользуемся нелинейной функцией . Подставим в нее константы и построим нелинейную функцию от двух аргументов, что возможно по лемме 6:
.
Рассмотрим функцию . Для построения функции нужно только отрицание, поскольку прибавление двоичной константы либо ничего не изменяет, если она равна 0, либо меняет переменную на ее отрицание. Например, при , , .
В общем случае
Раскрыв скобки, убеждаемся, что . Таким образом, конъюнкция построена из функций системы .
Теорема доказана.
Для проверки полноты конкретной системы функций удобно заполнять таблицу, в которой отмечается 1 или 0 вхождение или невхождение функции в классы , , , и . Например, для системы функций
, где , ,
имеем следующую таблицу:
Таблица 2
Функция |
Класс |
||||
0 |
0 |
1 |
0 |
1 |
|
1 |
1 |
0 |
1 |
0 |
|
1 |
1 |
0 |
1 |
0 |
Пример. Импликация имеет следующую таблицу истинности:
0 0 |
1 |
0 1 |
1 |
1 0 |
0 |
1 1 |
1 |
Из таблицы следует, что не сохраняет 0, несамодвойственна, немонотонна. Кроме того, , так как
.
Добавляя к любую функцию, не сохраняющую 1, получим полную систему. Рассмотрим, например, систему , где . Построим отрицание и конъюнкцию:
, при и имеем ;
.
Таким образом, для любой функции можно написать формулу, в которую будут входить только импликации и нули. Например,
.
Баранов Виктор Павлович. Дискретная математика.
Раздел 4. Функциональные системы с операциями. Алгебра логики
ВАЖНЕЙШИЕ ЗАМКНУТЫЕ КЛАССЫ. ТЕОРЕМА ПОСТА О ПОЛНОТЕ