- •4.13. Специальные классы булевских функций определение
- •4.13.1. Функции, сохраняющие ноль
- •4.13.2. Функции, сохраняющие единицу
- •4.13.3. Самодвойственные функции
- •Определение
- •Определение
- •4.13.4. Монотонные функции
- •Определение
- •4.13.5. Линейные функции
- •4.14. Критерий функциональной полноты
- •4.14.1. Построение функций-констант
- •4.14.3. Построение конъюнкции
- •4.15. Предполные классы булевских функций определение
4.14. Критерий функциональной полноты
ТЕОРЕМА 4.9
Класс B P2 является полной системой тогда и только тогда, когда он целиком не содержится ни в одном из классов Т0, Т1, S, L, M.
Доказательство
Необходимость. Пусть [B] = P2. Тогда B целиком не содержится ни в одном из классов Т0, Т1, S, L, M, поскольку в противном случае всякий из перечисленных классов, содержащий B, являлся бы полной системой, что неверно.
Достаточность. Пусть B целиком не содержится ни в одном из классов Т0, Т1, S, L, M. Выделим из B пять функций f0, f1, fS, fL, fM, которые не содержатся в перечисленных классах Т0, Т1, S, L, M соответственно. При этом не исключается совпадение некоторых из выделенных функций.
Покажем, что через выделенные функции системы B выражаются функции полной системы x1& x2 и .
4.14.1. Построение функций-констант
Рассмотрим функцию f0. По определению f0(0,..., 0) = 1.
Если f0(1,..., 1) = 1, то h(x) = f0(x,..., x) = 1, т.е. это функция, получаемая из f0 отождествлением всех переменных, является константой 1. В противном случае f0(1, . . . , 1) = 0. Поэтому f0(x,...,x) = . Тогда по лемме о несамодвойственной функции из f0 с помощью функции отрицания и тождественной функции можно получить одну из констант.
Вторая константа получается из первой константы с помощью отрицания (т.е. является отрицанием первой константы).
Значит, из f0 можно получить либо одну из констант, либо обе константы и отрицание.
Рассмотрим функцию f1. По определению этой функции f1(1,...,1) = 0. Если f1(0, . . . , 0) = 0, то f1(x, . . . , x) = 0, т.е. это функция-константа 0.
В противном случае f1(0, . . . ,0) = 1 и f1(x, . . . , x) = . Тогда из леммы о несамодвойственной функции следует, что из f1 можно получить одну из констант. Вторая константа получается из первой константы с помощью функции .
Поэтому из f0 и f1 с помощью отождествления переменных всегда можно выразить обе функции-константы, а в некоторых случаях еще и функцию отрицания.
4.14.2. Построение отрицания
Рассмотрим функцию fM. По лемме о немонотонной функции через fM с помощью функций-констант и тождественной функции x можно выразить отрицание .
4.14.3. Построение конъюнкции
Рассмотрим функцию fL. По лемме о нелинейной функции из fL с помощью уже полученных функций 0, 1, и обозначений переменных можно выразить конъюнкцию x1&x2.
Следовательно, через функции системы B можно выразить функции полной системы . Тогда на основании теоремы редукции можно утверждать, что B это полная система.
Доказательство окончено.
Упражнение.
Используя доказательство критерия полноты, выразить функции x1&x2 и через функции полной системы .
Достоинство доказанной теоремы по сравнению с теоремой редукции состоит в том, что теперь полнота произвольной системы, булевских функций может быть установлена на основании проверки простых свойств у функции системы.
При этом если система B является конечной, то такая проверка может быть проведена за конечное время.
Для проверки полноты произвольной конечной системы B можно построить таблицу со строками, соответствующими функциям системы B, и пятью столбцами, соответствующими пяти классам: Т0, Т1, S, L и M.
Таблица заполняется символами "+" и "". Некоторый элемент таблицы это "+", если функция, соответствующая строке, содержится в классе функций, соответствующем столбцу. В противном случае элемент таблицы равен "".
Если в каждом столбце полученной таблицы имеется хотя бы один минус, то B это полная система.
Если в таблице имеется столбец, содержащий только символы "+", то B это неполная система.
Например. Для системы B = {x1 x2, x1 + x2} таблица имеет вид:
|
Т0 |
Т1 |
S |
L |
M
|
x1 x2 |
|
+ |
|
|
|
x1 + x2 |
+ |
|
|
+ |
|
Следовательно, множество функций {x1 x2, x1 + x2} это полная система.
Классы Т0, Т1, S, L и M объединяет одно общее свойство, которое состоит в том, что всякий из них является "почти" полным.