- •2. Элементы математической логики.
- •2.1. Высказывания и действия над ними.
- •2.2. Кванторы.
- •2.3. Предикаты.
- •2.4. Функции алгебры логики
- •2.4.1. Элементарные функции алгебры логики
- •2.4.2. Формульное задание функций алгебры логики
- •Некоторые свойства элементарных функций
- •Следствия из свойств элементарных функций
- •Упрощение записи формул:
- •Теорема о замене подформул на эквивалентные
- •2.4.3 Принцип двойственности
- •Принцип двойственности
- •Лемма о несамодвойственной функции
- •2.4.4 Разложение булевой функции по переменным
- •2.4.5. Полнота, примеры полных систем
- •Полные системы
- •Теорема Жегалкина
- •2.4.6. Замыкание и замкнутые классы
- •Важнейшие замкнутые классы в р2
- •Теорема Поста о полноте
- •Примеры использования теоремы Поста.
- •Теорема о достаточности четырех функций.
- •2.5. Математические теоремы, их виды и логическая структура.
- •2.5.1. Теоремы прямая, обратная, противоположная.
- •2.5.2. Достаточность и необходимость; существование и единственность.
- •2.5.3. Доказательство от противного; метод математической индукции.
- •2.6. Формальная аксиоматическая теория.
- •2.6.1. Основные определения.
- •2.6.2. Определение и разновидности дедуктивных теорий.
- •2.6.3. Исчисление высказываний
- •2.6.4. Теорема дедукции
- •2.6.5. Принцип резолюций.
- •2.6.6. Теорема о полноте исчисления высказываний.
- •2.6.7. Исчисление предикатов.
- •2.6.8. Теоремы Гёделя о неполноте.
Важнейшие замкнутые классы в р2
1) Т0 - класс функций, сохраняющих константу 0.
Т0 = { f(x1, ..., xn)
f(0, ..., 0) = 0, n = 1, 2, ...}. Покажем, что
Т0 является собственным
подмножеством Р2, т.е. Т0
и Т0
Р (не
совпадает с Р2). Для этого
достаточно привести примеры функций,
входящих в Т0, и примеры функций
из Р2, не входящих в Т0:
x1&x2, x1x2,
xТ0 и
x1|x2, x1
x2,
Т0.
Покажем далее, что [Т0] = Т0.
Вложение Т0 [
Т0] очевидно, так как по определению
формулы любая функция из Т0
является формулой над Т0 и,
следовательно, принадлежит [Т0].
Покажем, что [Т0]
Т0. Для этого надо показать, что
Ф = f(f1, ..., fm)
[ Т0],
если все функции f, f1, f2,
f3, ..., fm
Т0.
Надо заметить, что в формуле в качестве
функции f1 могут быть взяты
переменные, которые мы договорились
считать тождественными функциями.
Тождественная функция принадлежит
классу Т0, поэтому достаточно
показать, что Ф = f (f 1,
..., fm)
Т0. Для этого рассмотрим следующую
функцию: Ф(0, ..., 0) = f (f 1(0,
..., 0), f 2(0, ..., 0), ...) = f(0, ..., 0)
= 0.
Число функций,
зависящих от n переменных и
принадлежащих Т0, будет равно
2) T1 – класс функций, сохраняющих константу 1.
T1
= {f(x1,
...) f(1,
1, ...) = 1}; x1&x2, x1x2,
xT1,
х1х2,
x1
x2T1,
следовательно Т1 – собственное
подмножество Р2.
Покажем, что [T1] T1, обратное включение следует из определения формулы и замыкания. Так как тождественная функция входит в Т1, можно рассмотреть Ф = f(f1, ..., fn) [T1], где f, f1, ..., fn T1. Найдем Ф(1, ..., 1) = f(f1(1, ..., 1), ..., fn(1, ..., 1)) = f(1, ..., 1) = 1, следовательно, Ф = f(f1, ..., fn) T1, отсюда следует [T1] = T1.
3) S – класс самодвойственных функций.
S
= {f(x1,
...)f*
= f };
x,
,
x1x2x3S,
x1&x2,
x1x2,
x1x2S,
следовательно, S –
собственное подмножество Р2.
|S(n)|
=
.
Покажем, что [S]S.
Ф = f(f1,
..., fn) [S],
если f, f1,
..., fn
S,
а также, что Ф
S.
По принципу двойственности, Ф*
= f*(f1*,
..., fn*) = f(f1,
..., fn) = Ф,
отсюда S – замкнутый
класс.
4) L – класс линейных функций.
L = {f(x1, ...) f = c0c1x1...cnxn}; очевидно, L , с другой стороны
L P2, так как x1&x2 L. Заметим, что тождественная функция принадлежит L и |L(n)| = 2n+1. Покажем, что [L] L. Рассмотрим Ф = f(f1, ..., fm), где f, f1, ..., fn L. Тогда Ф = а0 а1(с10 с11х1 ... c1nxn1) a2(c20 c21x1 c22x2...c2nxn2)...an(cm0 cm1x1 ... cmnxnm) = в0 в1х1 ... вnхn ФL.
5) М – класс монотонных функций.
Определение.
Набор '=
(1,
..., n)
предшествует набору '=
(1,
..., n)
и это обозначается 'Ð',
если для 1in
ii,
например: '=
(0010), '=
(0110), тогда 'Ð'.
Не любые два набора находятся в отношении
предшествования, например, наборы (0110)
и (1010) в таком отношении не находятся.
Отношение предшествования (
)
является отношением порядка на множестве
наборов длины n,
множество таких наборов будет частично
упорядоченным множеством по отношению
к операции.
Определение. Функция f(x1, ..., xn) называется монотонной, если для двух наборов 'и ', таких что 'Ð', выполняется f(') f('). Функции 0, 1, x, x1&x2, x1x2 M, x1x2, x1x2, x1~x2 M.
Для числа монотонных функций, зависящих от n переменных, существуют оценки сверху и снизу, но точное число сосчитать не удается. Покажем, что М замкнутый класс. Рассмотрим функцию Ф[M], Ф = f(f1, ..., fm), где f, f1, ..., fmM, причем можем считать, что все они зависят от n переменных. Пусть набор '= 1, ..., n), '= (1, ..., n). Рассмотрим Ф1, ..., n) = f(f11, ..., n), …, fm1, ..., n)) и Ф(1, ..., n) = f(f1(1, ..., n), ..., fm(1, ..., n)). Здесь f1()Ð f1(), ..., fm()Ð fm(), тогда набор (f1(), ..., fm())Ð (f1(), ..., fm()), но тогда Ф(')Ð Ф('), так как fM, отсюда Ф = f(f1, ..., ) – монотонная функция.
Определение. Функция f есть суперпозиция над M, если f реализуется некоторой формулой над M.
Лемма о немонотонной функции. Отрицание можно получить суперпозицией констант 0 и 1, тождественной функции и немонотонной функции.
Доказательство.
Пусть f(x1, ..., xn)
– немонотонная функция. Тогда существуют
наборы
и
,
для которых
но
Пусть i1, …, ik
есть все те номера аргументов, для
которых
,
p=1, …, k.
На всех остальных аргументных местах
j имеем j
= j.
В выражении
заменим нули на местах i1,
…, ik
на x. В результате
получим функцию g(x),
для которой g(0) = f(
)
= 1 и g(1) = f(
)
= 0. Функция g(x)
является отрицанием.
Классы T0, T1, L, S, M пересекаются, но не совпадают, что видно из следующей таблицы, где «+» означает, что функция принадлежит данному классу и «-» – не принадлежит.
|
T0 |
T1 |
L |
S |
M |
x |
+ |
+ |
+ |
+ |
+ |
|
- |
- |
+ |
+ |
- |
0 |
+ |
- |
+ |
- |
+ |
1 |
- |
+ |
+ |
- |
+ |
x1x2 |
+ |
+ |
- |
- |
+ |
A={x, , 0, 1, x1x2) не является полной системой функций так как всегда есть функции Р2 не входящие в эти классы.
Задачи
1. Доказать, что пересечение любых двух замкнутых классов замкнуто.
2. Доказать, что объединение двух замкнутых классов не всегда замкнуто.
