Полнота, примеры полных систем
Двойственность. Класс самодвойственных функций.
Лекция 2
Пусть формула А содержит только операции конъюнкции, дизъюнкции и отрицания.
Будем называть операцию конъюнкции двойственной операции дизъюнкции, а операцию дизъюнкции
двойственной операции конъюнкции. Определение. Формулы А и А * называются двойственными, если формула А * получается из формулы А путем замены в ней каждой операции на двойственную.
Например, для формулы А º (х Úy)&z двойственной формулой будет формула А * º (х& у) Ú z .
Теорема. Если формулы А и В равносильны, то равносильны и им двойственные формулы, то есть
А* º В * .
Предварительно докажем лемму.
Лемма. Если для формулы A(x1 ,x2 ....xn) двойственной формулой является А*( x1 ,x2 ....xn), то справедлива равносильность А*(x1, ..., xn) =
(
1, ...,
n).
(Доказательство леммы разбирается студентом самостоятельно см. Лихтарников «МЛ» стр. 28-29)
Пример 1. Покажем с помощью таблицы истинности, что константа 0 двойственна к 1:
| x | f | f* |
Функции f(x) = x и g(x) =
двойственны сами себе:
| x | f | f* | g | g* |
так как f*(0)=
(1).
Определение 1. Если f*(x1, ..., xn) = f(x1, ..., xn), то f(x1, ..., xn) называется самодвойственной.
Множество всех самодвойственных функций обозначается через S.
Если f*– самодвойственна, то
(
1, ...,
n) = f(x1, ..., xn), т.е. на противоположных наборах функция принимает противоположные значения.
Пример 1. Покажем, что функция х1Úх2 двойственна к x1&x2, функция х1
х2 двойственна к функции x1|x2.
| x1 | x2 | f=х1Úх2 | f* | g=x1|x2 | g*=x1 x2
|
Пример 2. Построить формулу, реализующую f*, если f = ((x
y) Ú z) (y
(xÅyz)). Покажем, что она эквивалентна формуле N = z(xÅy).
Найдем (xÅy)* и (x
y)*.
| x | y | xÅy | (xÅy)* | x y
| (x y)*
|
Из таблиц видно, что
(x
y)* = x ~ y =
= x
y
1, x
y =
y
x
,
(x
y)* =
y x
y =
y.
По принципу двойственности:
f* =
yz
(
(x
(y
z)
1)) =
yz
z(x
(y
z)
1) = z(
yÚ(
xÅ
zÅ
)) = z(
yÚ
(xÅzÅ1)) = z(
yÚ
(xÅ
)) = z
yÚ(z
xÅz
) = z(
yÚx
) = z(xÅy).
Тогда f = (f*)* = [z(xÅy)]* = zÚ(x~y).
Обозначим множество всех функций двузначной алгебры логики Р2. Обозначим через Р2(n) число функций, зависящих от n переменных. Очевидно, Р2(n)=22 n.
Определение. Система функций {f1, f2, ..., fs, ...}ÌP2 называется полной в Р2, если любая функция f(x1, ..., xn) ÎP2 может быть записана в виде формулы через функции этой системы.
Примеры полных систем:
1. P2 – полная система.
2. Система M={x1&x2, x1Úx2,
} – полная система, т.к. любая функция алгебры логики может быть записана в виде формулы через эти функции.
Примерами неполных систем являются: {
}, {0,1}.
Лемма (достаточное условие полноты)
Пусть система
U = {f1, f2, ..., fs, ...} полна в Р2. Пусть B = {g1, g2, ..., gk, ...} – некоторая система из Р2, причем любая функция fi ÎU может быть выражена формулой над B, тогда система B полна в Р2.
Данная лемма может быть использована следующим образом:
1. Покажем, что система {x1Úx2,
} – полна в P2.
Возьмем в качестве полной в Р2 системы U={x1Úx2,
, x1&x2}, B={x1Úx2,
}. Надо показать, что x1&x2 представляется формулой над B. Действительно, по правилу Де Моргана получим: x1&x2=
.
2. Система {x1|x2} полна в Р2. Для доказательства возьмем в качестве полной в Р2 системы U = {x1&x2,
} и выразим х1&х2 и
через х1|x2 :
= x1 | x1, x1 & x2 =
= (x1|x2)|(x1|x2).
3. Система {x1
x2} полна в Р2. U = {x1Úx2,
},
= x1
x1, x1Úx2 =
= (x1
x2)
(x1
x2).
7. Система {x1&x2, x1Åx2, 0, 1}, U = {x1&x2,
},
= x1Å1.
Следствие. Полином Жегалкина.
f(x1, ..., xn) ÌP2, представим ее в виде формулы через конъюнкцию и сумму по модулю два, используя числа 0 и 1. Это можно сделать, так как {x1&x2, x1Åx2, 0, 1} полна в Р2. В силу свойства x & (yÚz) = xy Úxz можно раскрыть все скобки, привести подобные члены, и получится полином от n переменных, состоящий из членов вида х
х
...х
, соединенных знаком Å. Такой полином называется полиномом Жегалкина.
Общий вид полинома Жегалкина:
где
, s = 0, 1, ..., n, причем при s = 0 получаем свободный член а0.