![](/user_photo/2706_HbeT2.jpg)
- •2. Функции алгебры логики
- •2.1. Элементарные функции алгебры логики
- •Теорема о замене подформул на эквивалентные
- •Некоторые свойства элементарных функций
- •2.3 Принцип двойственности
- •Пример 1. Покажем с помощью таблицы истинности, что константа 0 двойственна к 1:
- •Пример 3. Покажем, что функция х1х2 двойственна к x1&x2, функция х1х2 двойственна к функции x1|x2.
- •Лемма о несамодвойственной функции
- •Теорема о разложении функции по переменным
- •2.5. Полнота, примеры полных систем
- •Полные системы
- •Представление функции в виде полинома Жегалкина
- •Теорема Жегалкина
- •2.6. Замыкание и замкнутые классы
- •Важнейшие замкнутые классы в р2
- •Теорема Поста о полноте
- •Теорема о достаточности четырех функций.
- •2.7. Функции k - значной логики
- •Теорема о полной в Рk системе функций
- •4. Логика высказываний
- •4.1. Введение в логику высказываний
Пример 3. Покажем, что функция х1х2 двойственна к x1&x2, функция х1х2 двойственна к функции x1|x2.
x1 x2 |
f=х1х2 |
f* |
g=x1|x2 |
g*=x1 |
0 0 0 1 1 0 1 1 |
0 1 1 1 |
0 0 0 1 |
1 1 1 0 |
1 0 0 0 |
Теорема о двойственных функциях
Если f* двойственна к f, то f двойственна к f*.
Доказательство.
f*(x1,
..., xn)
=
(
1,
...,
n).
Найдем двойственную функцию к f*,
т.е. (f*(
x1,
..., xn))*
= (
(
1,
...,
n))*
=
(
1,
...,
n)
= f(x1,
.., xn).
Предположим, что функция задана формулой. Можно ли найти по этой формуле двойственную функцию? Ответ на этот вопрос дает следующая теорема.
Принцип двойственности
Теорема: Пусть функция h(x1, ..., xn) реализована формулой h(x1, ..., xn) = =g(G1, ..., Gm) = g(f1(x1, ..., xn), ..., fm(x1, ..., xn)), где какие-то переменные могут быть фиктивными. Тогда h*( x1, ..., xn) = g*(f1*( x1, ..., xn), ..., fm*(x1, …, xn)), это означает, что если функция задана некоторой формулой, то чтобы получить двойственную функцию, надо в этой формуле все знаки функций заменить на двойственные, 0 на 1, 1 на 0.
Доказательство.
h*(x1,
..., xn)
=
(
1,
...,
n)
=
(f1(
1,
...,
n),
..., fm(
1,
...,
n))
=
..
n
.
.
n
g
..
g*(f1*(
x1,
..., xn),
..., fm*(
x1,
..., xn)),
что и требовалось доказать.
Если функция h(x1, ..., xn) реализуется формулой N[f1, ..., fn], то формулу, полученную из N заменой fi, входящих в нее, на fi* и реализующую функцию h*(x1, ..., xn), будем называть двойственной и обозначать N*(x1, ..., xn).
Пример
4.
Построить формулу, реализующую f*,
если f
= ((xy)
z)
(y
(xyz)).
Покажем, что она эквивалентна формуле
N
= z(xy).
Найдем
(xy)*
и (xy)*.
x y |
xy |
(xy)* |
x
|
(x |
0 0 0 1 1 0 1 1 |
0 1 1 0 |
1 0 0 1 |
1 1 0 1 |
0 1 0 0 |
Из таблиц видно, что
(xy)*
= x
~ y
=
=
x
y
1,
x
y
=
y
x
,
(xy)*
=
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).
Пример
5.
Найти формулу для f* и показать, что она
эквивалентна формуле N
= (x(zt)),
если f
= (xyz~(tx
))
t.
f*
= ((xyz)t(y))(
t)
= (
t(
y)(xyz)
)(
t)
=
=
(t(xyz)(
x
))(
t)
=
t(xyz)(
x
tx
)
=
=
t(xyz)(
x
)
=
(
x
t
zxxz)
=
(
tx
zxz)
=
(x(zt)).
Лемма о несамодвойственной функции
Подстановкой
функций
и
в несамодвойственную функцию можно
получить одну из констант.
Доказательство.
Пусть
– несамодвойственная функция. Тогда
существует набор
,
для которого
.
Построим функцию
,
заменив единицы в
на
,
а нули – на
.
Так как
,
то
.
Заметим, что
.
Тогда
,
т.е.
.
Следовательно, функция
есть одна из констант.
Теорема о разложении функции по переменным
Пусть f(x1, ..., xn) P2. Тогда для любого m: 1 ≤ m ≤ n допустимо представление:
f(x1,
..., xm,
xm+1,
..., xn)
=
,
где дизъюнкция берется по всем наборам из 0 и 1, которое называется разложением функции f по переменным x1, ..., xn.
Прежде чем доказать утверждение, рассмотрим примеры.
Пример 1. m = 1, запишем разложение по переменным х:
f(x1,
..., xn)
=
=
f(0,
x2
, …,xn)x1f(1,
x2,
..., xn).
(1)
Пример
2.
m=2,
запишем разложение по переменным х
и
:
f(x1,x2,…xn)
=
=
.
Если
f(x,
x)
= xx,
то последняя формула дает xx=
xx
.
Доказательство.
Для доказательства возьмем произвольный
набор ,,n)
и покажем, что левая и правая части
формулы (1) принимают на этом наборе
одинаковые значения. Слева имеем f
.n.
Cправа :
.
Дизъюнкция
берется по всевозможным наборам (,
..., m).
Если в этих наборах хотя бы одно i
i
(1≤i≤m),
то
=
0 и
,
следовательно, ненулевой член будет
только на наборе (,
..., m)
= (,
..., m),
тогда
f
.n.
Следствие
1.
Любую
функцию f(x1,
..., xn)
не равную тождественно нулю можно
представить в виде:
,
причём единственным образом. Этот вид
называется совершенной
дизъюнктивной нормальной формой
функции f(x1,
..., xn)
и записывается СДНФ.
Доказательство.
Существование
СДНФ для функции не равной тождественно
нулю вытекает из предыдущей теоремы.
Покажем, что эта СДНФ единственная. В
самом деле, имеется
n-местных
функций, не равных нулю тождественно.
Подсчитаем число различных СДНФ от n
переменных. Путь
означает число сочетаний из n
элементов по k.
Тогда число одночленных СДНФ
равно
.
Число k-членных
СДНФ равно
.
Число n-членных
СДНФ равно
.
Число всех различных СДНФ
Итак,
функций реализуются посредством
СДНФ, т.е. каждой функции соответствует
единственная СДНФ.
Замечание.
–
элементарная конъюнкция ранга n по числу
входящих переменных, предполагается,
что при i
j
, хi
хj.
СДНФ для f(x1,
..., xn)
–дизъюнкция
элементарных конъюнкций ранга n.
Если функция представлена в виде
дизъюнкций элементарных конъюнкций,
где ранг хотя бы одной элементарной
конъюнкции меньше n,
то такая форма называется дизъюнктивной
нормальной формой
(ДНФ).
Cледствие 2. Любая функция алгебры логики может быть представлена в виде формулы через отрицание, & и .
а)
Если f
≡
0, то f(x1,
..., xn)
=
&
.
б)
Если f(x1,
..., xn)
0 тождественно, тогда ее можно представить
в виде СДНФ, где используются только
связки
,
&, .
СДНФ дает алгоритм представления функции
в виде формулы через &, ,
.
Следствие
3. Мы
умеем представлять функцию в виде
.
Нельзя
ли представить ее в виде
.
Пусть функция f(x1,
..., xn)
1
тождественно. Тогда функция f*
0
тождественно, и ее можно представить в
виде СДНФ:
.
По принципу двойственности заменим & на и наоборот, получим
(2)
называется
элементарной дизъюнкцией ранга n.
Представление функции в виде (2) называется
совершенной
конъюнктивной нормальной формой или
в краткой записи – СКНФ.
СКНФ для f(x1,
..., xn)
– конъюнкция элементарных дизъюнкций
ранга n.
КНФ для f(x1,
..., xn)
– конъюнкция элементарных дизъюнкций,
где ранг хотя бы одной элементарной
дизъюнкции меньше n.
Пример
4. Пусть
f(x1,
x2,
x3)
= x1
(x2
(x3
~ x1)).
Представим ее в виде СКНФ, для этого
получим таблицу истинности.
x1 |
x2 |
x3 |
x3~x1 |
x2 |
f |
0 0 0 0 1 1 1 1 |
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
1 0 1 0 0 1 0 1 |
1 1 1 0 1 1 0 1 |
1 1 1 1 1 1 0 1 |
Функция равна нулю только на наборе (1, 1, 0), поэтому
f(x1
x2
x3)=x1x2
x3
=x10x20x31=
x3.