
- •Лекция: Предварительные сведения
- •Множества
- •Операции над множествами
- •Как доказывать равенство множеств?
- •Отношения и функции. Мощность множества
- •2. Лекция: Индукция и комбинаторика Содержание
- •Метод математической индукции
- •Элементы комбинаторики
- •Размещения, перестановки, сочетания
- •Принцип включения и исключения
- •Лекция: Булевы функции и их представления Содержание
- •Булевы функции от n переменных
- •Геометрическое представление
- •Табличное представление
- •Булевы функции от 1-ой и 2-х переменных
- •Формулы
- •Булевы функции и логика высказываний
- •Эквивалентные преобразования формул Соглашения об упрощенной записи формул.
- •Дизъюнктивные и конъюнктивные нормальные формы Определение днф и кнф
- •Совершенные днф и кнф
- •Сокращенные днф
- •Многочлены Жегалкина
- •Лекция: Полные системы функций и теорема Поста Содержание
- •Замкнутые классы функций
- •Критерий полноты (теорема Поста)
- •6. Лекция: Хорновские формулы и задача получения продукции Содержание
- •Хорновские формулы
- •Задача получения продукции
- •Решение задачи о продукции
- •Алгоритм замыкание(X,f)
- •Алгоритм ПрямаяВолна(X,y,f)
- •Алгоритм БыстроеЗамыкание(X,f)
- •Лекция: Язык логики предикатов
- •Утверждения о свойствах объектов и отношениях между ними
- •Язык логики предикатов
- •Синтаксис: формулы логики предикатов
- •Семантика: системы и значения формул на их состояниях
- •Эквивалентные формулы и нормальные формы
Критерий полноты (теорема Поста)
Оказывается, что всякая система, не содержащаяся внутри одного из указанных пяти классов полна.
Теорема 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.
Таким образом, получили отрицание: g(X)
= ¬ X.
Так как
,
то для некоторого набора значений
аргументов (σ1,
… , σk)
имеет место равенство fs(σ1,
… , σk)
= fs(¬σ1,
… ,¬ σk)=
const
{0,
1}.
Положим тогда h(X)
= fs(Xσ1,
… , Xσk)
(такая подстановка переменной X1
и ее отрицания X0
возможна, так как мы уже получили
отрицание). Тогда h
- это константа const.
Действительно, h(1)
=fs(1σ1,
… , 1σk)=
fs(σ1,
… , σk)
= fs(¬σ1,
… ,¬σk)=
fs(0σ1,
… , 0σk)=h(0)=
const.
Другая константа тогда задается формулой
¬
h(X).
Случай 2. f0(1, … , 1)= 1. В этом случае формула f0(X,… , X) задает функцию g(X), тождественно равную 1, а формула f1(g(X), … , g(X)) задает функцию h(X), тождественно равную 0. Действительно, h(σ)=f1(g(σ), … , (σ))= f1(1, … , 1) = 0 для любого σ {0,1}.
Лемма 5.2. Формулами, построенными из констант 0 и 1 и немонотонной функции , можно задать отрицание ¬.
Доказательство.
Так как
немонотонна,
то имеются два разных набора аргументов
и
таких,
что для всех j
[1,r]
σj
ρj
и при этом fm(σ1,
σ2,
…, σn)
=0,
а fm(ρ1,
ρ2,
…, ρn)=1.
Пусть i1,
… , il
- это все индексы, для которых
Так
как
,
то l
1.
Определим последовательность из (l+1)-го
набора аргументов
следующим
образом:
,
а далее каждый набор
получется
из предыдущего
заменой
ij
-ой координаты с 0 на 1. Таким образом,
последний из этих наборов
совпадает
с
.
Рассмотрим значения функции fm
на этих наборах:
.
Так как первое из них
,
а последнее
,
то найдутся два соседних набора
и
таких,
что
,
а
.
Они отличаются только ij-ой
координатой. Пусть
,
a
Положим
тогда
.
Тогда
,
a
Следовательно,
g(X)
= ¬ X.
Лемма
5.3.
Формулами, построенными из констант 0
и 1, отрицания
и
нелинейной функции
,
можно задать дизъюнкцию
или
конъюнкцию
.
Доказательство.
Так как
то
в представляющий ее многочлен Жегалкина
обязательно входит слагаемое вида
Выберем
самое короткое из таких слагаемых и
рассмотрим функцию
,
где σj=1
при j
{i3,
…, ik}
и σj=0
в остальных случаях. При такой подстановке
констант многочлен Жегалкина для
g(X1,X2)
= g1(X1,X2)
имеет вид:
0
+
1
X1
+
2
X2
+ X1*X2,
где
0,
1,
2
{0,
1}.
Таким образом, всего возможно 8 вариантов.
Рассмотрим 4 из них в случае, когда
0=0.
Тогда
при 1=0 и 2=0 получаем, что g(X1, X2) X1 X2;
при 1=0 и 2=1 получаем, что g(¬ X1, X2) X2 + ¬ X1 * X2 (1 + ¬ X1)*X2 X1 X2;
при 1=1 и 2=0 получаем, что g( X1, ¬ X2) X1 + X1 * ¬ X2 X1 *(1 + ¬ X2) X1 X2;
при 1=1 и 2=1 имеем g(X1, X2) X1 + X2 + X1*X2 X1 X2.
Остальные 4 варианта в случае, когда 0=1, получаются как отрицания соответствующих вариантов для 0=0.
Из приведенных трех лемм, очевидно, следует достаточность условия теоремы Поста.
Пример 5.2. Рассмотрим набор функций f, g и h, представленный в следующей таблице:
Функции 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 получаем, что f(X,X,X) = ¬ X, функция g1(X)=g(X,X,X) 1, а функция g0(X) = ¬ g1(X) 0. Подставив X2=0 в g получим g3(X1,X3)= g(X1,0,X3)= 1 + X1 + X1 * X3. Тогда h(X1,X2) = ¬ g3(X1, ¬X2) = ¬ (1 + X1 + X1 * ¬ X2) ¬(1 + X1*(1+ ¬ X2)) X1*X2. Таким образом, мы с помощью 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)={0,
1, X
Y,
X+Y+Z}.
В этой системе,
.
Легко проверить, что при удалении любой
из функций система 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. Выразите функции {0, 1, , , ~} с помощью формул, построенных из функций полной системы { ¬, }.
Задача
5.7.
Определите количество функций из
принадлежащих
каждому из классов
и
.
Задача 5.8. Доказать, что для монотонных функций f(n) M справедливо представление f(X1,… , Xn)= (Xi f(X1,…, Xi-1, 1, Xi+1,… , Xn) ) f(X1,…, Xi-1, 0, Xi+1,… , Xn), (1 i n). Вывести отсюда (индукцией по n), что для всякой монотонной функции, отличной от константы, существует задающая ее ДНФ, не содержащая отрицаний переменных.
Задача
5.9.
Докажите, что число монотонных
функций
в
не
меньше
.
Задача 5.10. Найдите все базисы, которые можно получить, удаляя функции из системы {0, 1, , , }.
Задача 5.11. Найти число булевых функций от n переменных, являющихся одновременно самодвойственными и линейными.
Задача 5.12. Найти число булевых функций от n переменных, являющихся одновременно монотонными и линейными.
Задача
5.13.
Доказать, что если f(X1,
…, Xn)
- линейная
функция,
отличная от константы, то
.
Верно ли обратное?