- •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.13. Специальные классы булевских функций определение
Множество функций B называется замкнутым классом, если [B] = B.
Например, множество {x, } является замкнутым классом. Рассмотрим пять специальных классов булевских функций, свойства которых будут использованы при нахождении простых необходимых и достаточных условий полноты произвольных систем функций в P2.
4.13.1. Функции, сохраняющие ноль
Обозначим как Т0 множество всех таких булевских функций, которые на нулевом наборе значений переменных принимают значение 0.
О таких функциях говорят, что они сохраняют 0, т.е. множество б.ф., сохраняющих ноль, это:
Т0 = {f(x1,...,x n) f(0,...,0) = 0}.
Сформулируем простейшие свойства класса T0.
1. Класс T0 является замкнутым классом функций.
Для проверки справедливости последнего утверждения достаточно проверить, что всякая формула U(f1, . . . , fp), составленная с помощью функций f1, . . . , fp, сохраняющих ноль, представляет функцию fU, которая также сохраняет ноль.
Проведем обоснование этого свойства в соответствии с определением понятия формулы над классом функций.
Если U = f(x1,. . . , xn), где f(x1, . . . , xn)T0, то f (0, . . . , 0) = 0 и fU = f.
Если U = f (U1,..., Un), где f (x1, . . . , x n) T0, а U1, . . . , Un это или символы переменных или подформулы формулы U, составленные с помощью функций из T0 и символов переменных. Заметим, что поскольку обозначение переменной представляет тождественную функцию I(x) = x, то U1, . . . , Un можно рассматривать как подформулы, представляющие некоторые функции из класса T0. Тогда функция f( ) также принадлежит классу T0.
Действительно, f(g1(0,. . . , 0), . . . , gn (0, . . . ,0))= f(0, . . . ,0)=0.
2. Определим число различных функций переменных x1, . . . , xn, которые содержатся в T0.
Поскольку функции из T0 на всех наборах значений переменных, отличных от нулевого набора, принимают произвольные значения, и таких ненулевых наборов 2n1, то в T0 содержится ровно различных булевских функций n переменных.
4.13.2. Функции, сохраняющие единицу
Обозначим как T1 множество всех булевских функций, которые на единичном наборе значений переменных принимают значение 1. О таких булевских функциях говорят, что они сохраняют единицу, т.е. Т1 = {f(x1, . . . , xn) f(1, . . . , 1) = 1}.
Класс T1 является замкнутым и содержит различных функций n переменных. Последние свойства могут быть обоснованы аналогично тому, как это делалось для класса T1.
4.13.3. Самодвойственные функции
Двоичные наборы и называются противоположными наборами.
Противоположные наборы значений переменных в табличном задании булевых функций соответствуют строкам, расположенным симметрично относительно середины таблицы.
Докажем это утверждение. Заметим, что середина таблицы располагается между последним набором верхней половины таблицы (0, 1, . . . , 1) и первым набором значений переменных в нижней половине таблицы (1, 0,. . . , 0).
Тогда, пусть и произвольные противоположные наборы. Для определенности будем считать, что 1 =0.
1. Для набора , расположенного в верхней половине таблице, определим расстояние до нижнего набора верхней половины таблицы, т.е. количество наборов до набора (0, 1, . . . , 1). Нетрудно видеть, что искомое расстояние представляется числом, имеющим двоичное представление в виде набора .
2. Определим двоичный набор, находящийся на таком же расстоянии от набора (1,0, . . . , 0), являющегося первым набором нижней половины таблицы
Нетрудно проверить, что 10. . . 0 + = .
Следовательно, набор, отстоящий от (1, 0, . . . , 0) на расстоянии , это набор, который является противоположным . Поэтому расстояния от противоположных наборов и до середины таблицы равны.