- •Лекция 2 Двойственность. Класс самодвойственных функций.
- •Пример 1. Покажем, что функция х1х2 двойственна к x1&x2, функция х1 х2 двойственна к функции x1|x2.
- •Полнота, примеры полных систем
- •Представление функции в виде полинома Жегалкина
- •Теорема Жегалкина
- •Замыкание и замкнутые классы
- •Важнейшие замкнутые классы в р2
- •Теорема Поста о полноте
- •Примеры использования теоремы Поста.
- •3. Составим критериальную таблицу для другой полной системы функций из р2: из р2: {0, 1, x1x2, x1x2}.
- •Теорема о достаточности четырех функций.
- •Следствие. Базис в р2 может состоять максимум из четырех функций.
- •Некоторые приложения алгебры логики.
- •2. Схемы функциональных элементов.
- •Решение логических задач методами алгебры логики.
Лекция 2 Двойственность. Класс самодвойственных функций.
Пусть формула А содержит только операции конъюнкции, дизъюнкции и отрицания.
Будем называть операцию конъюнкции двойственной операции дизъюнкции, а операцию дизъюнкции
двойственной операции конъюнкции. Определение. Формулы А и А * называются двойственными, если формула А * получается из формулы А путем замены в ней каждой операции на двойственную.
Например, для формулы А (х y)&z двойственной формулой будет формула А * (х& у) z .
Теорема. Если формулы А и В равносильны, то равносильны и им двойственные формулы, то есть
А* В * .
Предварительно докажем лемму.
Лемма. Если для формулы A(x1 ,x2 ....xn) двойственной формулой является А*( x1 ,x2 ....xn), то справедлива равносильность А*(x1, ..., xn) = ( 1, ..., n).
(Доказательство леммы разбирается студентом самостоятельно см. Лихтарников «МЛ» стр. 28-29)
Пример 1. Покажем с помощью таблицы истинности, что константа 0 двойственна к 1:
x |
f |
f* |
0 |
0 |
1 |
1 |
0 |
1 |
Функции f(x) = x и g(x) = двойственны сами себе:
x |
f |
f* |
g |
g* |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
так как 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
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
Пример 2. Построить формулу, реализующую f*, если f = ((x y) z) (y (xyz)). Покажем, что она эквивалентна формуле N = z(xy).
Найдем (xy)* и (x y)*.
-
x
y
xy
(xy)*
x y
(x y)*
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
Из таблиц видно, что
(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 (xz1)) = z( y (x )) = z y(z xz ) = z( yx ) = z(xy).
Тогда f = (f*)* = [z(xy)]* = z(x~y).