Это в лекции 3. |
Полные системы функций и теорема Поста
Замкнутые классы функций
Пусть - это множество всех булевых функций. В предыдущем разделе мы установили, что любую функцию из можно задать формулой над системой (в качестве таких формул можно, например, взять соответствующие ДНФ и КНФ). Такие системы функций называются полными.
Определение 5.1. Система булевых функций F называется полной,если формулами над этой системой можно задать любую булеву функцию из .
Другим уже известным нам примером полной системы функций является система FJ={ 0, 1, *, +}, позволяющая задать произвольную булеву функцию с помощью многочлена Жегалкина. Разумеется, не всякая система является полной. Например, формулами над системой невозможно выразить функцию тождественно равную 0 (почему?).Наша цель в этом разделе - найти критерий, позволяющий по системе функций определять ее полноту.
Для исследования полноты полезно следующее понятие.
Определение 5.2. Замыкание [F] системы функций F - это множество всех функций, которые можно задать с помощью формул над F .
Тогда определение полной системы можно переформулировать так:
система F является полной тогда и только тогда, когда .
Замыкание обладает следующими основными свойствами.
Предложение 5.1.
Доказательство. Все эти утверждения достаточно просто следуют из определения замыкания. Например, справедливость пункта (2) следует из того, что всякая функция из [F] задается некоторой формулой над F, а тогда всякая функция из [[F]], которая задается суперпозицией функций из [F], задается также некоторой формулой над F. Пункт (3) очевиден, а пункт (4) следует из (2) и (3):
и так как , то и .
Утверждение (4) позволяет устанавливать полноту некоторой системы, выражая с ее помощью все функции другой системы, полнота которой уже установлена.
Например, законы де Моргана позволяют выразить через пару , и - через пару , . Поэтому каждая из систем и также является полной. Эквивалентности (7) и (8) позволяют выразить через пару , . Следовательно, полной будет и система .
Имеются ли полные системы из одной двуместной функции? Да. Рассмотрим систему, { | }, включающую лишь штрих Шеффера. Напомним, что . Тогда нетрудно проверить, что и . Следовательно, система { | } полная.
Определение 5.3. Система функций F называется замкнутой, если F = [F] .
Очевидно, что замкнутая система F, не содержащая всех функций из , не является полной.
Далее в этом разделе мы будем использовать верхний индекс в круглых скобках Для указания числа аргументов функции, т.е. f(n) означает, что .
Определим пять важных замкнутых систем.
Определение 5.4.
(1,2) Функция сохраняет 0 (сохраняет 1),если f(0,0,... ,0)=0 ( f(1,1,...,1) = 1 ). Класс всех функций, сохраняющих 0, обозначим через , а класс всех функций, сохраняющих 1, - через .
(3) Функция называется самодвойственной, если для любого набора аргументов имеет место равенство:
Таким образом, самодвойственные функции принимают на противоположных наборах противоположные значения. Класс всех самодвойственных функций обозначим через .
(4) Функция называется линейной, если она может быть задана линейным многочленом Жегалкина вида
где при i=0, 1, 2, ..., n.
Класс всех линейных функций обозначим через .
(5) Функция называется монотонной, если для любых двух наборов аргументов и таких, что для всех , имеет место неравенство
Класс всех монотонных функций обозначим через .
Пример 5. Рассмотрим для примера пять функций от 3-х переменных, которые представлены в следующей таблице.
X1 | X2 | X3 | f1 | f2 | f3 | f4 | f5 |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
1 | 1. | 1 | 0 | 1 | 1 | 1 | 1 |
Из определений непосредственно следует, что f3, f4 и f5 сохраняют 0, т.е. входят в , а функции f2, f3, f4 и f5 сохраняют 1, т.е. входят в . Функция f3 является самодвойственной, а f2 - нет, так как f2(0,0,0) = f2(1,1,1). Функция f2 является линейной - она задается многочленом X1 + X2 +1. Функция f5 является монотонной, а f3 - нет, так как f3(0,1,1)=0 < 1=f3(0,1,0).
Теорема 5.1. Классы и являются замкнутыми.
Доказательство. Замкнутость всех указанных классов устанавливается индукцией по построению формул. Пусть и задается некоторой формулой над F. Нужно показать, что тогда .
Базис индукции, когда эта формула есть переменная , очевиден.
Пусть f(X1, ..., Xk)= g(f1(X1, ..., Xk), ..., fn(X1, ..., Xk)), и функции входят в F. Требуется показать, что тогда и f входит в F.
Для это просто:
Аналогично проверяется случай .
Если и - произвольный набор аргументов, то
Следовательно, .
Пусть . Так как тогда g(n) и все линейны, то существуют коэффициенты и такие, что и .
Подставив эти выражения в формулу для , получим
где - значения сумм констант в соответствующих скобках.
Следовательно, .
Наконец рассмотрим класс монотонных функций. Если и все и и - два набора аргументов такие, что для всех , то
и поэтому
Таким образом, .