Это в лекции 3. |
Полные системы функций и теорема Поста
Критерий полноты (теорема Поста)
Оказывается, что всякая система, не содержащаяся внутри одного из указанных пяти классов полна.
Теорема 5.2. (Теорема Поста о полноте) Система булевых функций F является полной тогда и только тогда, когда она не содержится ни в одном из классов и , т.е. когда в ней имеется хотя бы одна функция, не сохраняющая 0, хотя бы одна функция, не сохраняющая 1, хотя бы одна несамодвойственная функция, хотя бы одна немонотонная функция и хотя бы одна нелинейная функция.
Доказательство. Необходимость условия теоремы непосредственно следует из установленного выше следствия 5.1.1.
Для доказательства достаточности предположим, что F Содержит не сохраняющую 0 функцию , не сохраняющую 1 функцию , несамодвойственную функцию , немонотонную функцию и нелинейную функцию . Покажем, что с помощью этих функций всегда можно выразить функции одной из двух уже известных нам полных систем: или . Для этого установим, что:
- используя f0, f1 и fs, можно выразить константы 0 и 1;
- с помощью констант из fm можно получить отрицание ;
- с помощью констант и отрицания из fl можно получить конъюнкцию или дизъюнкцию
Лемма 5.1. Формулами, построенными из функций f0, f1 и fs,можно задать константы 0 и 1.
Доказательство.. Рассмотрим два возможных значения на наборе аргументов, состоящем из одних единиц.
Случай 1. f0(1, ... , 1)= 0. Рассмотрим функцию g(X), заданную формулой f0(X,... , X). Тогда, очевидно, g(0) =f0(0, ... , 0) =1, а g(1) = f0(1, ... , 1)= 0. Таким образом, получили отрицание: . Так как , то для некоторого набора значений аргументов имеет место равенство . Положим тогда (такая подстановка переменной X1 и ее отрицания X0 возможна, так как мы уже получили отрицание). Тогда h - это константа const. Действительно, . Другая константа тогда задается формулой .
Случай 2. f0(1, ... , 1)= 1. В этом случае формула f0(X,... , X) задает функцию g(X), тождественно равную 1, а формула f1(g(X), ... , g(X)) задает функцию h(X), тождественно равную 0. Действительно, для любого .
Лемма 5.2. Формулами, построенными из констант 0 и 1 и немонотонной функции можно задать отрицание
Доказательство. Так как немонотонна, то имеются два разных набора аргументов и таких, что для всех и при этом , а . Пусть i1, ... , il - это все индексы, для которых . Так как , то l >= 1. Определим последовательность из (l+1) -го набора аргументов следующим образом: , а далее каждый набор получется из предыдущего заменой ij -ой координаты с 0 на 1. Таким образом, последний из этих наборов совпадает с . Рассмотрим значения функции fm на этих наборах: . Так как первое из них , а последнее , то найдутся два соседних набора и таких, что , а . Они отличаются только ij -ой координатой. Пусть , a . Положим тогда . Тогда , a . Следовательно, .
Лемма 5.3. Формулами, построенными из констант 0 и 1, отрицания и нелинейной функции можно задать дизъюнкцию или конъюнкцию
Доказательство. Так как , то в представляющий ее многочлен Жегалкина обязательно входит слагаемое вида . Выберем самое короткое из таких слагаемых и рассмотрим функцию , где при и в остальных случаях. При такой подстановке констант многочлен Жегалкина для g(X1,X2) = g1(X1,X2) имеет вид: , где . Таким образом, всего возможно 8 вариантов. Рассмотрим 4 из них в случае, когда . Тогда
- при и получаем, что ;
- при и получаем, что ;
- при и получаем, что ;
- при и имеем .
Остальные 4 варианта в случае, когда , получаются как отрицания соответствующих вариантов для .
Из приведенных трех лемм, очевидно, следует достаточность условия теоремы Поста.
Пример 5.2. Рассмотрим набор функций f, g и h, представленный в следующей таблице:
X1 | X2 | X3 | f | g | h |
---|---|---|---|---|---|
0 | 0 | 0 | 1 | 1 | 0 |
0 | 0 | 1 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 1 | 1 |
1 | 1 | 1 | 0 | 1 | 0 |
Функция f, очевидно, не сохраняет 0 и 1, но является самодвойственной. Функция g(X1,X2,X3)= 1+X1+X2 + X1 * X3 + X1 * X2 * X3 является несамодвойственной, немонотонной и нелинейной. По лемме 5.1 получаем, что , функция , а функция . Подставив X2=0 в g получим g3(X1,X3)= g(X1,0,X3)= 1 + X1 + X1 * X3. Тогда . Таким образом, мы с помощью f и g сумели выразить обе функции полной системы и, следовательно, система функций {f, g } полная.
Определение 5.5. Полная система функций называется минимальной полной системой или базисом, если после удаления из нее любой функции она перестает быть полной .
Например, система не является базисом, а каждая из систем является. Мы уже знаем, что имеются полные системы, состоящие из одной функции (например, система { | } ). Они, конечно, являются базисами. Имеются и полные системы, включающие 3 функции, например, система { 1, *, +}, на которой основаны многочлены Жегалкина (отметим, что константу 0 можно выразить как 1+1). Из теоремы Поста следует, что никакая минимальная система не содержит более 5 функций. Оказывается, что для полноты всегда достаточно четырех функций.
Теорема 5.3. Во всяком базисе F содержится не более 4-х функций.
Доказательство. Действительно, по теореме Поста в базисе имеется функция . Поэтому f0(0,0, ..., 0) =1. Если она хотя бы на одном наборе значений аргументов принимает значение 0, то она немонотонна, т.е. . В противном случае, f0 на всех наборах значений аргументов равна 1. Но тогда она несамодвойственна , так как f0(0, 0, ..., 0)=1 = f0(1,1,..., 1). Во всех случаях или и, следовательно, в системе F содержится не более 4-х функций.
Может быть, в минимальной системе можно обойтись тремя функциями? Это не так. Рассмотрим, например, систему . В этой системе, . Легко проверить, что при удалении любой из функций система F(4) перестает быть полной. Таким образом, теорема 5.3 дает наилучшую верхнюю оценку числа функций в базисе.
Замечание. Е. Пост в работах, опубликованных в 1921 и 1941 гг. не только установил критерий полноты, но и описал структуру всех замкнутых классов функций в . Он показал, что число таких классов счетно и что в каждом из них имеется собственный конечный базис.
Задачи
Задача 5.1. Докажите полноту системы , включающей только стрелку Пирса, непосредственно выразив через нее отрицание, дизъюнкцию и конъюнкцию.
Задача 5.2. Определите принадлежность каждой из функций f1, f2, f3, f4 и f5, представленных в таблице 5.1, каждому из классов и .
Задача 5.3. Используя результаты задачи 5.2, определите, какие из троек функций, представленных в таблице 5.1, являются полными системами. Имеются ли среди них полные системы из двух функций? Из одной функции?
Задача 5.4. Проверьте полноту системы функций {g, h}, представленных в таблице 5.2. Если она полна, выразите с помощью этих функций обе константы, отрицание и импликацию
Задача 5.5. Докажите, что система не является полной. Можно ли ее сделать полной, добавив некоторую константу?
Задача 5.6. Выразите функции с помощью формул, построенных из функций полной системы .
Задача 5.7. Определите количество функций из , принадлежащих каждому из классов и .
Задача 5.8. Доказать, что для монотонных функций справедливо представление . Вывести отсюда (индукцией по n ), что для всякой монотонной функции, отличной от константы, существует задающая ее ДНФ, не содержащая отрицаний переменных.
Задача 5.9. Докажите, что число монотонных функций в не меньше .
Задача 5.10. Найдите все базисы, которые можно получить, удаляя функции из системы .
Задача 5.11. Найти число булевых функций от n переменных, являющихся одновременно самодвойственными и линейными.
Задача 5.12. Найти число булевых функций от n переменных, являющихся одновременно монотонными и линейными.
Задача 5.13. Доказать, что если f(X1, ..., Xn) - линейная функция, отличная от константы, то . Верно ли обратное?