Теоретические обоснования
Лемма о функции, не сохраняющей 0.
Пусть
.
Тогда формулой над множеством
можно задать либо константу 1,
либо отрицание.
Доказательство. Пусть
,
т.е.
.
Отождествим между собой все переменные
функции
.
Получим функцию от одной переменной
.
Возможны два случая:
или
.
В первом случае
и
,
следовательно,
и
,
откуда
.
Во втором случае
и
,
следовательно,
и
,
откуда
.■
Лемма о функции, не сохраняющей 1.
Пусть
.
Тогда формулой над множеством
можно задать либо константу 0, либо
отрицание.
Доказательство. Пусть
,
т.е.
.
Отождествим между собой все переменные
функции
.
Получим функцию от одной переменной
.
Возможны два случая:
или
.
В первом случае
и
,
следовательно,
и
,
откуда
.
Во втором случае
и
,
следовательно,
и
,
откуда
.■
|
|
|
|
Рис. 2.1. |
Рис. 2.2. |
Лемма о несамодвойственной функции.
Пусть
- несамодвойственная функция. Тогда
формулой над множеством
можно задать константы 0
и 1.
Доказательство. Пусть
.
Тогда существует набор
значений переменных
,
такой что
,
и, значит,
.
Рассмотрим функцию
,
где
,
если
,
и
,
если
.
Заметим, что
,
.
Имеем
|
|
|
Рис. 2.3. |
.
С учетом равенства
![]()
получим
,
т.е.
- константа,
- другая константа. ■
На рис. 2.3 представлено условное обозначение алгоритма, использованного в доказательстве леммы о несамодвойственной функции.
Лемма о немонотонной функции. Пусть
- немонотонная функция. Тогда формулой
над множеством
можно задать отрицание.
Доказательство. Пусть
.
Тогда существуют такие наборы
и
значений переменных, что
,
а
,
и, значит,
,
.
Поскольку
,
то можно выделить подпоследовательность
индексов
такую, что
и для всякого
(и, значит,
).
Рассмотрим функцию
,
заданную формулой, полученной в результате
подстановки в формулу
вместо переменных
чисел
соответственно, а на остальные места -
.
Не ограничивая общности рассуждений,
можно считать, что
.
Так как
при
,
имеем
.
Так как
при
и
,
…,
,
имеем
.
Равенства
и
означают, что
.
■
|
|
|
Рис. 2.4. |
Лемма о нелинейной функции. Пусть
.
Тогда формулой над множеством
можно задать конъюнкцию.
Доказательство. Пусть
.
Тогда в каноническом полиноме Жегалкина
данной функции найдется член с отличным
от нуля коэффициентом, содержащий
произведение переменных. Не нарушая
общности рассуждений, можно считать,
что этот член содержит
.
Следовательно, полином Жегалкина функции
можно преобразовать к виду
![]()
,
где
функция
такова, что найдется набор
значений переменных такой, что
.
Рассмотрим функцию
,
или
![]()
![]()
,
где
,
,
.
Теперь рассмотрим функцию
,
получаемую из функции
следующим образом:
.
Преобразуем формулу, реализующую функцию
:
![]()
![]()
.
Подытоживая проделанное, можем записать
.
Заметим, что
![]()
|
|
|
Рис. 2.5. |
На рис. 2.5 представлено условное обозначение алгоритма, использованного при доказательстве леммы о нелинейной функции.
Теорема 2.13 (критерий полноты Поста).
Для того чтобы система функций
была полна, необходимо и достаточно,
чтобы для каждого из классов Поста в
нашлась функция
,
ему не принадлежащая.
Доказательство. Необходимость.
Пусть система
полна. Надо доказать, что для каждого
из классов Поста найдется функция
,
ему не принадлежащая.
Рассуждаем от противного: предположим,
что найдется класс Поста (обозначим его
),
в котором содержатся все функции из
.
Тогда
.
Следовательно,
.
т.е.
.
Но этого не может быть, поскольку есть
булевы функции, не принадлежащие ни
одному из классов Поста (например, штрих
Шеффера). Получили противоречие,
следовательно, наше предположение было
неверным.
Достаточность.
Пусть найдутся функции
из
такие, что
,
,
,
,
.
Покажем, что отрицание и конъюнкцию
можно реализовать формулами над
множеством
.
Схема построения соответствующих формул
представлена на рис. 2.6.
|
|
|
Рис. 2.6. |
Таким образом, конъюнкцию и отрицание
можно задать формулой над
.
Имеем: система
полная, и каждая ее функция может быть
выражена формулой над
.
Следовательно, условия теоремы о полноте
двух систем выполнены и, значит,
- полная система. ■
