42. Булева алгебра. Функции алгебры логики

advertisement
Е.В.Просолупов
42. Булева алгебра. Функции алгебры
логики
1
Булевы функции
Будем рассматривать булевы функции — функции, аргументы и значения
которых принимают значения истина и ложь. Истину и ложь будем
обозначать соответственно 1 и 0. Таким образом функция n аргументов
f есть
f : {0, 1} × {0, 1} × ... × {0, 1} → {0, 1}.
|
{z
}
n
Аргументы этих функций будем называть логическими переменными и
обозначать буквами x, y и z, возможно с индексами. Множество всех
булевых функций (функций алгебры логики) будем обозначать P2 .
Пример 1.1 . Табличное задание функции f :
23

























x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
f (x, y, z)
1
0
1
0
0
1
0
1
Всего существует 23 различных наборов значений трех переменных.
Если их нумеровать от 0 до 23 − 1, то набор с номером i оказывается
представлением числа i в двоичной системе счисления. Всего различных
3
функций от 3-х аргументов — 22
1
В общем случае число строк в таблице для функции от n аргументов
n
равно 2n . Число различных булевых функций от n аргуменов — 22 .
Определение 1.1 . Будем говорить, что функция f (x1 , x2 , ..., xn )
не зависит существенно от xn (xn — несущественная переменная
функции f (x1 , x2 , ..., xn )), если на любых значений α1 , α2 , ..., αn−1 ∈ {0, 1}
выполняется равенство f (α1 , α2 , ..., αn−1 , 0) = f (α1 , α2 , ..., αn−1 , 1).
Переменные функции f , которые не являются несущественными,
называют существенными переменными и говорят, что функция f
существенно от них зависит.
Пример 1.2 . Функция f из примера 1.1 не зависит существенно от
переменной y.
Определение 1.2 . Будем говорить, что две функции f (x1 , x2 , ..., xk )
и g(x1 , x2 , ..., xl ) равны, если после удаления всех несущественных
переменных получаются функции с одинаковыми таблицами. В таком
случае будем писать f = g.
2
Формулы
Выберем некоторую сисстему функций из P2 : P = {f1 , f2 , ..., fk } ⊆ P2 ,
k ≥ 1. Назавем функции из системы P элементарными функциями.
Тогда формула над {f1 , f2 , ..., fk } определяется рекурсивно:
Определение 2.1 . 1. Если f (x1 , ..., xn ) ∈ P, то f (x1 , ..., xn ) —
формула.
2. Если f (x1 , ..., xn ) ∈ P и U1 , U2 , ..., Un — формулы или логические
пременные, то f (U1 , ..., Un ) — формула.
Замечание 2.1 . Мы определили формулу над P. Формула всегда
мыслится в связи с каким-то указанным множеством элементарных
функций.
Каждой функции можно однозначно сопоставить функцию:
1. Если U = f (x1 , ..., xn ) ∈ P, то формуле U сопоставляется функция
fU = f (x1 , ..., xn ).
2
2. Пусть U = f (U1 , ..., Un ), где f (x1 , ..., xn ) ∈ P и U1 , U2 , ..., Un — формулы
или логические пременные. Тогда fU = f (fU1 , ..., fUn ), где fUi — функция,
сопоставленная формуле Ui , если Ui — формула, и fUi = xi , если Ui = xi
— логическая переменная.
Определение 2.2 .
Будем говорить, что формулы U и B
эквивалентны и писать U = B, если fU = fB с точностью до
несущественных переменных.
Рассмотрим основные функции,
используемые в качестве
элементарных функций в алгебре логики.
Всего существует четыре различные функции от одной переменной:
тождественный ноль — f (x) = 0; тождественная единица — f (x) = 1;
тождественная функция или тождественный x — f (x) = x; отрицание x
или "не x" — f (x) = ¬x, так же обозначается x.
x 0 1 x ¬x
0 0 1 0 1
1 0 1 1 0
Из них тождественный ноль и тождественная единица не зависят
существенно от x. То есть фактически это две функции без аргументов
— константы: f = 0 и f = 1.
Рассмотрим основные булевы функции от двух переменных.
x y x ∨ y x ∧ y x ⊕ y x ⊃ y x ≡ y x|y x ↓ y
0 0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0 1
1 0
1
0
1
0
0
1
0
1 1
1
1
0
1
1
0
0
f (x, y) = x ∨ y — дизъюнкция, логическое "или".
f (x, y) = x ∧ y — конъюнкция, логическое "и", логическое умножение.
Также можно использовать обозначения x&y или xy.
f (x, y) = x ⊕ y — сложение по модулю два, логическое исключающее
"или". Также можно использовать обозначение x + y.
f (x, y) = x ⊃ y — импликация, "если, то". Также можно использовать
обозначение x → y.
3
f (x, y) = x ≡ y — эквивалентность.
Также можно использовать
обозначение x ∼ y.
f (x, y) = x | y — штрих Шеффера.
f (x, y) = x ↓ y — стрелка Пирса.
Всего, как мы помним, существует 16 различных функций от
двух переменных. Мы выбрали 7, существенно зависящих от обоих
переменных и имеющих наибольшее значение. Добавив к ним функции
от одной переменной и константы (функции от 0 переменных) получим
систему элементарных функций
P = {0, 1, x, x, x ∨ y, xy, x ⊕ y, x ⊃ y, x ≡ y, x|y, x ↓ y}.
Указанные функции будем теперь также называть операциями.
Пример 2.1 . Рассмотрим пример формулы над P :
U = (((xy) ∨ (xz)) ∨ (xz)).
В этой записи слишком много скобок.
Чтобы облегчить чтение и запись формул можно установить
приоритеты выполнения операций. Будем считать, что наивысший
приоритет имеют функции от одной переменной. Из функций от двух
переменных наивысший приоритет будет иметь коньюнкция — ∧. Все
остальные операции имеют одинаковый приоритет.
Кроме того можно убедиться, что операции ∧, ∨, ⊕, ≡ являются
ассоциативными. Таким образом, вместо x ◦ (y ◦ z) или (x ◦ y) ◦ z можно
писать x ◦ y ◦ z, если ◦ ∈ {∧, ∨, ⊕, ≡}. Операции ⊃, |, ↓ не являются
ассоциативными.
Пример 2.2 . С учетом указанных договоренностей, формула из
примера 2.1 примет вид:
U = xy ∨ xz ∨ xz.
3
Основные тождества
1. Коммутативность: x ◦ y = y ◦ x, если ◦ ∈ {∧, ∨, ⊕, ≡, |, ↓}.
4
2. Ассоциативность: x ◦ (y ◦ z) = (x ◦ y) ◦ z, если ◦ ∈ {∧, ∨, ⊕, ≡}. Мы
уже указывали на это свойство раньше.
3. Правила де Моргана: x ∨ y = x ∨ y, x ∨ y = x ∧ y.
4. Правила поглощения: x ∨ xy = x, x(x ∨ y) = x.
5. Дистрибутивность:
x(y ∨ z) = xy ∨ xz — дистрибутивность ∧ относительно ∨,
x ∨ yz = (x ∨ y)(x ∨ z) — дистрибутивность ∨ относительно ∧,
x(y ⊕ z) = xy ⊕ xz — дистрибутивность ∧ относительно ⊕.
6. Формулы расщепления:
x = xy ∧ xy,
x = (x ∧ y)(x ∧ y).
7. 0 = xx = x ∧ 0 = x ⊕ x,
1 = x ∨ x = x ∨ 1 = x ≡ x,
x = ¬¬x = x ∨ x = xx = x ∧ 1 = x ∨ 0.
8. x = x ⊕ 1,
x ≡ y = (x ⊕ y) ⊕ 1,
x ⊃ y = x ∨ y = xy ⊕ x ⊕ 1,
x ↓ y = x ∧ y.
Используя эти тождества можно выполнять преобразования формул,
получая им эквивалентные.
Пример 3.1 . Рассмотрим формулу U = (y ⊃ x)∨(x⊕1)∨y. Проведем
преобразования, используя известные тождества.
(y ⊃ x) ∨ (x ⊕ 1) ∨ y = (y ∨ x) ∨ (x) ∨ y = y ∨ x ∨ x ∨ y = 1 ∨ 1 = 1.
Таким образом, формула U задает тождественно истинную функцию.
Очевидно, что формула B = U = (y ⊃ x) ∨ (x ⊕ 1) ∨ y = 1 = 0, то
есть B задает тождественно ложную функцию.
Определение 3.1 . Формула, задающая тождественно истинную
функцию, называется тавталогией.
Определение 3.2 .
Формула, задающая тождественно ложную
функцию, называется противоречием.
5
Определение 3.3 . Формула называется выполнимой, если для нее
существует набор аргументов, на котором она принимает значение 1.
4
Дизъюнктивная нормальная форма
Определение 4.1 . Введем следующее обозначение:
x, σ = 1,
xσ =
x, σ = 0.
Также будем говорить x в степени σ, имея в виду запись xσ
определенную выше.
Утверждение 4.1 . Пусть f (x1 , ..., xn ) ∈ P2 и f 6= 0. Тогда
_
f (x1 , ..., xn ) =
xσ1 1 · · · xσnn .
(1)
(σ1 ,...,σn )
f (σ1 ,...,σn )=1
Замечание 4.1 . Здесь и далее запись "f 6= 0" понимается в смысле
эквивалентности формул. То есть запись "f 6= 0" читается "f не
является тождественно ложной функцией", а запись "f 6= 1" — "f не
является тождественно истинной функцией".
σ
σ
σi
Определение 4.2 . Формула вида xi1i1 xi2i2 · · · xik k , где xij — логическая
переменная, σij — логическая константа, i1 < i2 < ... < ik , называется
конъюнктом.
Определение 4.3 . Если f (x1 , ..., xn ) представлена в виде
f (x1 , ..., xn ) = K1 ∨ K2 ∨ ... ∨ Ks
где K1 , K2 ,..., Ks — различные конъюнкты, то говорят, что f
представлена в дизъюнктивной нормальной форме (ДНФ).
Если в каждый Ki входят все переменные x1 , ..., xn , то говорят,
что f представлена в совершенной дизъюнктивной нормальной форме
(СДНФ).
6
Утверждение 4.2 . Пусть f (x1 , ..., xn ) ∈ P2 . Если f 6= 0, то
она представима в виде СДНФ, причем единственным образом (с
точностью до перестановки конъюнктов).
Замечание 4.2 . Из утверждения 4.1 мы получили формулу (1),
которую удобно использовать для построения СДНФ для функции
f 6= 0.
Теперь для построения СДНФ согласно формуле (1) необходимо
выбрать каждый набор (σ1 , ..., σn ), для которого f (σ1 , ..., σn ) = 1,
и сопоставить ему коньюнкт xσ1 1 · · · xσnn совершенной дизъюнктивной
нормальной формы.
Пример 4.1 . Рассмотрим функцию f (x, y, z), заданную таблицей:
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
f
1
1
0
0
0
1
1
0
Тогда, согласно формуле (1) СДНФ будет выглядеть следующим
образом:
f (x, y, z) = x0 y 0 z 0 ∨ x0 y 0 z 1 ∨ x1 y 0 z 1 ∨ x1 y 1 z 0 =
= x y z ∨ x y z ∨ x y z ∨ x y z.
5
Полином Жегалкина
Рассмотрим еще одно представление функции в виде формулы заданного
вида.
7
Определение 5.1 . Формула вида
α0 ⊕ α1 x1 ⊕ α2 x2 ⊕ ... ⊕ αn xn ⊕ α12 x1 x2 ⊕ ... ⊕ α12...n x1 x2 ...xn ,
(2)
где x1 , ..., xn — логические переменные, а α1 , ..., αn — логические
константы, называется полиномом Жегалкина.
Пример 5.1 .
1 ⊕ x1 ⊕ x2 x3 — полином Жегалкина.
Здесь n = 3, α0 = α1 = α23 = 1, а α2 = α3 = α12 = α13 = α123 = 0.
Утверждение 5.1 . Пусть f (x1 , ..., xn ) ∈ P2 . Тогда фукнция f может
быть представлена полиномом Жегалкина, причем единственным
образом.
Замечание 5.1 .
Для построения полинома Жегалкина удобно
использовать метод неопределенных коэффициентов. Предположим,
что функция f (x1 , ..., xn ) задана таблицей значений для всех наборов
аргументов. Нам известен общий вид полинома Жегалкина для f
M
^
α(I) xi
i∈I
I⊆{1,...,n}
и требуется только вычислить коэффициенты α(I).
Проходя по всей таблице значений для f будем приравнивать общий
вид полинома и известное значение функции на данном наборе, тем
самым последовательно
вычисляя
L
V коэффициенты α.
f (0, ..., 0) =
I⊆{1,...,n} α(I) i∈I 0 = α(∅). Отсюда имеем первый
коэффициент:
α(∅) = f (0, ..., 0).
f (0, .., 0, 1) = α(∅) ⊕ α({n}) ∧ 1. Таким образом,
α({n}) = f (0, ..., 0, 1) ⊕ α(∅) =
= f (0, ..., 0, 1) ⊕ f (0, ..., 0, 0).
Продолжая этот процесс мы сможем вычислить все коэффициенты
и тем самым получим полином Жегалкина для функции f .
8
Пример 5.2 . Пусть f (x, y, z) = (x ⊕ y) ⊃ z. Пусть f (x, y, z) = xy ∨
xz ∨ yz.
f (0, 0, 0) = 0 = α0
f (0, 0, 1) = 0 = α0 ⊕ α3
f (0, 1, 0) = 0 = α0 ⊕ α2
f (0, 1, 1) = 1 = α0 ⊕ α2 ⊕ α3 ⊕ α2,3
f (1, 0, 0) = 0 = α0 ⊕ α1
f (1, 0, 1) = 1 = α0 ⊕ α1 ⊕ α3 ⊕ α1,3
f (1, 1, 0) = 1 = α0 ⊕ α1 ⊕ α2 ⊕ α1,2
f (1, 1, 1) = 1 = α0 ⊕ α1 ⊕ α2 ⊕ α3 ⊕ α1,2 ⊕
⊕α1,3 ⊕ α2,3 ⊕ α1,2,3
⇒
⇒
⇒
⇒
⇒
⇒
⇒
α0 = 0,
α3 = 0,
α2 = 0,
α2,3 = 1,
α1 = 0,
α1,3 = 1,
α1,2 = 1,
⇒ α1,2,3 = 0.
Следовательно, полином Жегалкина для функции f будет иметь вид
f (x, y, z) = xy ⊕ xz ⊕ yz.
6
Полнота системы функций
Определение 6.1 . Система функций P ⊆ P2 называется полной, если
любую функцию из P2 можно представить в виде формулы над P.
Приведем несколько примеров полных систем функций.
Утверждение 6.1 . {¬, ∨, ∧} — полная система функций.
Следствие 6.2 . {¬, ∧} и {¬, ∨} — полные системы функций.
Утверждение 6.3 . 1) Системы функций {|} и {↓} — полные системы
функций.
2) Других полных систем, состоящих из одной функции от двух
переменных нет.
Утверждение 6.4 . {1, ⊕, ∧} — полная система функций.
Определение 6.2 . Пусть
K0 = {f1 (x1 , ..., xk1 ), f2 (x1 , ..., xk2 ), ..., fm (x1 , ..., xkm )}.
9
f — суперпозиция ранга 1 (элементарная суперпозиция) функций f1 , ...,
fm , если f получена одним из способов:
a) переименованием некоторой переменной xj функции fi , i = 1, m,
j = 1, ki :
fi (x1 , ..., xj−1 , y, xj+1 , ..., xki ),
где y может совпасть с любой переменной;
b) подстановкой некоторой функции fl вместо переменной xj
функции fi , l = 1, m, i = 1, m, j = 1, ki :
fi (x1 , ..., xj−1 , fl (x1 , ..., xkl ), xj+1 , ..., xki ).
Множество суперпозиций ранга 1 функций из K0 обозначим
K1 . Также, множество суперпозиций ранга 1 функций из Ki−1
обозначим Ki , i = 1, ∞. Функции из множества Ki будем называть
суперпозициями ранга i функций из K0 .
Определение 6.3 . Суперпозицией функций из K0 будем называть
суперпозицию любого ранга.
Определение 6.4 .
множество
Пусть M ⊆ P2 .
Замыканием M называется
[M] = {f | f — суперпозиция функций из M}.
Определение 6.5 . Пусть M ⊆ P2 . M — замкнутое множество
функций, если M = [M].
Пример 6.1 .
1) M = {x, x}. Тогда [M ] = {x, x} = M и M — замкнуто.
2) M = {x}. Тогда [M ] = {x, x} 6= M . Множество M — не
замкнуто.
Несложно проверить нижеследующие свойства операции замыкания.
Замечание 6.1 . Заметим,что для доказательства замкнутости
некоторого класса функций M достаточно показать, что любая
суперпозиция ранга 1 функций из M лежит в M.
Следствие 6.5 . Система функций P ⊆ P2 — полная, если [P] = P2 .
10
7
Классы, сохраняющие константы
Определение 7.1 . Пусть f (x1 , ..., xn ) ∈ P2 . f называют функцией,
сохраняющей ноль, если f (0, ..., 0) = 0.
Множество всех функций сохраняющих 0 назовем T0 :
T0 = {f (x1 , ..., xn ) | f ∈ P2 , f (0, ..., 0) = 0}.
Утверждение 7.1 . Класс функций T0 замкнут.
Определение 7.2 . Пусть f (x1 , ..., xn ) ∈ P2 . f называют функцией,
сохраняющей единицу, если f (1, ..., 1) = 1.
Множество всех функций сохраняющих 1 назовем T1 :
T1 = {f (x1 , ..., xn ) | f ∈ P2 , f (1, ..., 1) = 1}.
Утверждение 7.2 . Класс функций T1 замкнут.
8
Двойственность
Определение 8.1 . Пусть f (x1 , ..., xn ) ∈ P2 . Двойственной функцией
к функции f называется f ∗ (x1 , ..., xn ) = f (x1 , ..., xn ).
Пример 8.1 . Пусть f (x, y, z) = xy ∨ z. Тогда f ∗ (x, y, z) = x · y ∨ z =
x · y ∨ z.
Определение 8.2 . Функция f (x1 , ..., xn ) ∈ P2 — самодвойственная,
если f ∗ (x1 , ..., xn ) = f (x1 , ..., xn ).
Обозначим за S множество всех самодвойственных функций:
S = {f | f (x1 , ..., xn ) ∈ P2 , f ∗ (x1 , ..., xn ) = f (x1 , ..., xn )}.
Пример 8.2 . Пусть f = x ∨ y, f ∗ = x ∨ y = xy.
следовательно, f ∗ не является самодвойственной.
Пример 8.3 . Пусть f — функция голосования:
f (x, y, z) = xy ∨ xz ∨ yz.
11
f 6= f ∗ и,
f ∗ (x, y, z) = x · y ∨ x · z ∨ y · z = x · y · x · z · y · z =
= (x ∨ y)(x ∨ z)(y ∨ z) = (x ∨ xz ∨ xy ∨ yz)(y ∨ z) =
xy ∨ xz ∨ xyz ∨ xz ∨ xy ∨ xyz ∨ yz ∨ yz = xy ∨ xz ∨ yz ∨ xyz =
= xy ∨ xz ∨ yz = f (x, y, z).
Функция голосования — самодвойственная.
Утверждение 8.1 (Принцип двойственности).
Пусть U = f (U1 , ..., Un ) — формула задающая фукнцию F (x1 , ..., xn ),
где Ui — формулы, задающие fi (xj1 , ..., xjki ), i = 1, n. Тогда, если Ui∗ —
формулы, задающие fi∗ , i = 1, n, то формула задающая F ∗ — U ∗ может
иметь вид U ∗ = f ∗ (U1∗ , ..., Un∗ ).
Следствие 8.2 .
Пусть f (x1 , ..., xn ) задана формулой U над
множеством фукнций {0, 1, ¬, ∨, ∧}.
Тогда f ∗ (x1 , ..., xn ) задается
формулой, полученной из U заменой: нулей на единицы, единиц на нули,
конъюнкций на дизъюнкции, дизъюнкций на конъюнкции.
Пример 8.4 . Пусть f (x, y, z) = (0 ∨ x)(y ∨ xz). Тогда
f ∗ (x, y, z) = 1 · x ∨ y(x ∨ z).
Утверждение 8.3 . Класс функций S замкнут.
Лемма 8.4 (О несамодвойственной функции).
Пусть
f (x1 , ..., xn ) ∈
/ S. Тогда, подставляя в f вместо аргументов x или x
можно получить константу.
Доказательство. Пусть (α1 , ..., αn ), αi ∈ {0, 1}, такой набор, что
f (α1 , ..., αn ) = f (α1 , ..., αn ). Такой набор обязан существовать в силу
несамодвойственности функции f .
Рассмотрим функцию ϕ(x) = f (xα1 , ..., xαn ). Тогда
ϕ(0) = f (0α1 , ..., 0αn ) = f (α1 0 , ..., αn 0 ) = f (α1 , ..., αn ) =
= f (α1 , ..., αn ) = f (1α1 , ..., 1αn ) = ϕ(1).
Следовательно ϕ(x) — константа.
12
9
Монотонность
Определение 9.1 .
Пусть α
en = (α1 , ..., αn ), βen = (β1 , ..., βn ),
αi , βi ∈ {0, 1}.
Говорят, что набор α
en предшествует набору βen (набор βen следует
после набора α
en ) и пишут α
en βen , если
α1 ≤ β1 ,
α2 ≤ β2 ,
...,
αn ≤ βn .
Будем говорить, что α
en строго предшествует βen и обозначать
α
en ≺ βen , если α
en βen и α
en 6= βen .
Будем говорить, что α
en непосредственно предшествует βen и
en ≺ βen и не существует набора γ
en
обозначать α
en ≺0 βen , если если α
такого, что α
en ≺ γ
en ≺ βen .
Замечание 9.1 . , ≺ — отношения частичного порядка.
Определение 9.2 . Пусть f (x1 , ..., xn ) ∈ P2 . Функция f называется
монотонной, если
α
en βen
f (e
αn ) ≤ f (βen ).
=⇒
Класс всех монотонных функций будем обозначать M .
Пример 9.1 .
монотонна.
Функция x является монотонной. Функция x — не
Утверждение 9.1 . Класс функций M замкнут.
Лемма 9.2 (О немонотонной функции). Пусть f (x1 , ..., xn ) ∈
/ M.
Тогда, подставляя в f вместо аргументов 0, 1, x можно получить x.
Доказательство. Так как f ∈
/ M , существуют два набора α
en и βen , такие
что α
en βen и f (e
αn ) > f (βen ). Очевидно, что f (e
αn ) = 1 и f (βen ) = 0.
Пусть α
en отличен от βen в t позициях.
a) Пусть t = 1. Тогда для некоторого i верно, что
α
en = (α1 , ..., αi−1 , 0, αi+1 , ..., αn )
13
и
βen = (α1 , ..., αi−1 , 1, αi+1 , ..., αn ).
Определим функцию ϕ(x) следующим образом:
ϕ(x) = f (α1 , ..., αi−1 , x, αi+1 , ..., αn ).
Тогда,
ϕ(0) = f (α1 , ..., αi−1 , 0, αi+1 , ..., αn ) = 1
ϕ(1) = f (α1 , ..., αi−1 , 1, αi+1 , ..., αn ) = 0.
То есть ϕ(x) = x, что и требовалось доказать.
b) Пусть теперь t > 1. В этом случае построим последовательность
наборов
α
en = γ
en (0) ≺ γ
en (1) ≺ ... ≺ γ
en (t − 1) ≺ γ
en (t) = βen ,
где каждая пара наборов γ
en (i − 1) и γ
en (i) отличаются только в одной
позиции, i = 1, t. Это не трудно сделать, последовательно заменяя
каждую позицию, в которой наборы α
en и βen разтличаются с нуля на
единицу. Поскольку f (e
αn ) = 1 и f (βen ) = 0, найдется такое k, что
γ
en (k − 1) = 1 и γ
en (i) = 0. Такая ситуация возвращает нас к пункту
a) доказательства.
10
Линейность
Определение 10.1 . Пусть f (x1 , ..., xn ) ∈ P2 . Функция f — линейная,
если ее полином Жегалкина имеет вид
f (x1 , ..., xn ) = α0 ⊕ α1 x1 ⊕ α2 x2 ⊕ ... ⊕ αn xn .
Обозначим L — класс всех линейных функций.
Пример 10.1 . x — линейная функция. Функция x ∨ y не является
линейной.
Утверждение 10.1 . Класс функций L замкнут.
14
Лемма 10.2 (О нелинейной функции).
Пусть f (x1 , ..., xn ) ∈
/ L.
Тогда, подставляя в f вместо аргументов x, y, x, y и, возможно,
навешивая отрицание над f можно получить x ∧ y.
L
V
Доказательство. Пусть f (x1 , ..., xn ) = I⊆{1,...,n} α(I) i∈I xi и f ∈
/ L.
∗
∗
∗
Тогда существует I ⊆ {1, ..., n}: |I | ≥ 2, α(I ) 6= 0. Не умаляя
общности, положим {1, 2} ⊆ I ∗ .
f (x1 , ..., xn ) =
= x1 x2 f1,2 (x3 , ..., xn ) ⊕ x1 f1 (x3 , ..., xn ) ⊕ x2 f2 (x3 , ..., xn ) ⊕ f0 (x3 , ..., xn ),
причем ∃α3 , ..., αn : f1,2 (α3 , ..., αn ) = 1. Действительно, такие α3 , ..., αn
существуют, поскольку, если бы f1,2 (σ3 , ..., σn ) = 0, ∀σ3 , ..., σn ∈ {0, 1}, то
функция f приняла бы вид
f (x1 , ..., xn ) = x1 f1 (x3 , ..., xn ) ⊕ x2 f2 (x3 , ..., xn ) ⊕ f0 (x3 , ..., xn ),
что противоречит нашему предположению, что {1, 2} ⊆ I ∗ и α(I ∗ ) = 1.
Рассмотрим
ψ(x, y) = f (x, y, α3 , ..., αn ) = xy ⊕ xf1 (α3 , ..., αn )⊕
⊕ yf2 (α3 , ..., αn ) ⊕ f0 (α3 , ..., αn ) = xy ⊕ xβ ⊕ yγ ⊕ δ.
Теперь определим ϕ(x, y), как ϕ(x, y) = ψ(x ⊕ γ, y ⊕ β) ⊕ γβ ⊕ δ. Тогда
ϕ(x, y) = ((x ⊕ γ)(y ⊕ β) ⊕ (x ⊕ γ)β ⊕ (y ⊕ β)γ ⊕ δ) ⊕ γβ ⊕ δ =
= xy ⊕ xβ ⊕ yγ ⊕ γβ ⊕ xβ ⊕ γβ ⊕ yγ ⊕ γβ ⊕ δ ⊕ γβ ⊕ δ = xy.
Таким образом, мы получили фукнцию ϕ(x, y) = x ∧ y, причем
ϕ(x, y) = f (x ⊕ f2 (α3 , ..., αn ), y ⊕ f1 (α3 , ..., αn ), α3 , ..., αn )⊕
⊕ f1 (α3 , ..., αn )f2 (α3 , ..., αn ) ⊕ f0 (α3 , ..., αn ),
где добавление к x и y констант f2 (α3 , ..., αn ) и f1 (α3 , ..., αn ) равносильно
навешиванию отрицания над переменной, если соответствующая
константа равна 1, а добавление константы f1 (α3 , ..., αn )f2 (α3 , ..., αn ) ⊕
f0 (α3 , ..., αn ) к f означает возможное навешивание отрицания над этой
функцией.
15
11
Критерий полноты системы функций
Итак, мы рассмотрели пять классов функций T0 , T1 , S, M , L.
T0
¬x −
0 +
1 −
xy +
T1
−
−
+
+
S
+
−
−
−
M
−
+
+
+
L
+
+
+
−
Каждый из этих классов функций замкнут и, как можно видеть из
таблицы, ни один не совпадает с P2 .
Теорема 11.1 . Для полноты системы функций P ⊆ P2 необходимо и
достаточно, чтобы P не лежал полностью ни в одном из классов T0 ,
T1 , S, M , L:
P 6⊆ T0 ,
P 6⊆ T1 ,
P 6⊆ S,
P 6⊆ M,
P 6⊆ L.
Доказательство. Пусть f0 , f1 , fS , fM , fL ∈ P такие функции, что
f0 ∈
/ T0 ,
f1 ∈
/ T1 ,
fS ∈
/ S,
fM ∈
/ M,
fL ∈
/ L (некоторые из
функций могут совпадать). Проведем доказательство в несколько этапов,
последовательно доказав, что с помощью суперпозиций функций из P
можно выразить систему {¬, ∧}, чем и докажем полноту P.
1) Покажем, что с помощью f0 , f1 , fS можно получить 0 и 1.
a) Пусть f0 (1, ..., 1) = 1.
Пусть ϕ(x) = f0 (x, ..., x).
Тогда
ϕ(0) = ϕ(1) = 1. Значит ϕ(x) = 1 и, имея единицу, можно получить
вторую константу 0 = f1 (1, ..., 1).
b) Пусть теперь f0 (1, ..., 1) = 0.
Тогда ϕ(x) = f0 (x, ..., x) = x.
Подставляя в fS x и x по лемме о несамодвойственной функции получаем
константу 0 или 1 и с помощью x получаем вторую константу.
2) По лемме о немонотонной функции, подставляя константы в fM
можно получить ¬x.
3) Используя fL , константы и ¬x, по лемме о нелинейной функции
можно получить x ∧ y.
Так как {¬, ∧} — полная системя функций, то и система P — полная.
16
Пример 11.1 . Требуется проверить на полноту систему функций
P = {0, 1, xy, x ⊕ y ⊕ z}. Рассмотрим принадлежность функций P
классам T0 , T1 , S, M , L и заполним таблицу.
T0
0
+
1
−
xy
+
x⊕y⊕z +
T1
−
+
+
+
S
−
−
−
+
M
+
+
+
−
L
+
+
−
+
Рассмотрим, например, проверку функции x ⊕ y ⊕ z:
a) 0 ⊕ 0 ⊕ 0 = 0 ⇒ x ⊕ y ⊕ z ∈ T0 ;
b) 1 ⊕ 1 ⊕ 1 = 1 ⇒ x ⊕ y ⊕ z ∈ T1 ;
c) x ⊕ y ⊕ z = 1⊕(1⊕x)⊕(1⊕y)⊕(1⊕z) = x⊕y⊕z ⇒ x⊕y⊕z ∈ S;
d) (1, 0, 0) ≺ (1, 1, 0), но 1 = 1⊕0⊕0 > 1⊕1⊕0 = 0 ⇒ x⊕y⊕z ∈
/ M;
e) Очевидно, функция является линейной: x ⊕ y ⊕ z ∈ L.
Теперь, заполнив и проанализировав таблицу, можно убедиться, что
система функций P является полной, так как в каждом столбце,
соответствующем одному из классов присутствует хотябы один
минус. В то же время ни одно подмножество P полной системой не
является, поскольку, если вычеркнуть в таблице хотябы одну строку,
появится столбец не имеющий минуса.
17
Download