- •1. Элементы теории множеств
- •1.1 Множества. Основные понятия
- •1.2. Способы задания множеств
- •1.3. Операции над множествами. Диаграммы Венна
- •1.4. Свойства операций над множествами
- •1.5. Прямое (декартово) произведение множеств
- •1.6 Разбиения и покрытия
- •1.7. Замечание о мощности некоторых множеств
- •1.8 Представление множеств в эвм
- •1.9. Отношения
- •1.9.1.Определения
- •1.9.2 Бинарные отношения
- •1.9.3. Способы задания бинарных отношений
- •1.9.4 Свойства бинарных отношений
- •1.9.5. Отношение эквивалентности
- •1.9.5. Отношение порядка
- •1.9.6.1. Минимальные и максимальные элементы множества
- •1.9.6.2. Диаграммы Хассе
- •1.9.6.3. Принцип двойственности
- •1.9.7. Представление отношений в эвм
- •1.10. Соответствия. Функции. Операции. Отображения
- •1.10.1. Соответствия и их свойства
- •1.10.2 Функции и отображения
- •1.10.3. Инъекция, сюръекция и биекция
- •1.10.4. Композиция и суперпозиция функций. Способы задания функций
- •1.10.5. Представление функций в эвм
- •1.10.6. Операции
- •1.10.6.1. Способы задания операций
- •1.11. Алгебраические структуры
- •1.11.2. Замыкание и подалгебры
- •1.11.3. Гомоморфизм и изоморфизм
- •1.11.4. Алгебры с одной бинарной операцией
- •1.11.5. Алгебры с двумя бинарными операциями
- •1.11.6.Решетки
- •1.11.7. Булевы алгебры
- •2. Элементы математической логики и булевы функции
- •2.1. Операции над высказываниями
- •2.2. Логические операции (логические связки)
- •2.3. Элементарные булевы функции
- •2.3.1. Функции алгебры логики
- •2.3.2. Равносильность функций. Существенные и несущественные переменные
- •2.3.3. Реализация функций формулами. Суперпозиция функций
- •2.3.4. Подстановки и замены
- •2.3.5. Принцип двойственности
- •2.3.6. Нормальные формы в логике высказываний
- •2.3.6.1. Разложение булевых функций по переменным. Дизъюнктивно-нормалльная форма (днф)
- •2.3.6.2. Совершенная дизъюнктивная нормальная форма
- •2.3.7. Арифметические операции в алгебре логики. Полиномы Жегалкина
- •2.3.8. Монотонные функции алгебры логики
- •2.3.9. Функционально замкнутые классы
- •2.4. Полнота системы булевых функций. Теорема
- •2.5. Элементы логике предикатов
- •2.5.1. Определение предиката
- •2.5.2. Кванторы. Формулы логики предикатов
- •2.5.3. Равносильность формул
- •2.5.4. Предикаты на конечных областях. Логика одноместных предикатов
- •2.6. Операции над предикатами и кванторами
- •2.7. Построение доказательств в логике предикатов
- •1.6.2. Разбор решений задач по логике предикатов
- •1. Элементы теории множеств 3
- •1.1 Множества. Основные понятия 3
- •2.6. Операции над предикатами и кванторами 137
- •394026 Воронеж, Московский просп., 14
2.4. Полнота системы булевых функций. Теорема
Поста.
Определение. Класс функций F называется полным, если его замыкание совпадает с Pn: [F] = Pn.
Другими словами, множество функций F = {f1, ..., fn} называется полной системой, если любая функция алгебры логики представима посредством суперпозиции функций из множества F.
Пример 1. Из представимости функций в виде СДНФ следует полнота системы функций {xy, xvy, }. Случай тождественного нуля не приводит к ограничениям, так как 0=x^
Пример 2. Представимость функций полиномами Жегалкина связана с полнотой системы функций
{xy, x + y, 0, 1}.
Пример 3. Так как , то система { , xvy} – полная.
Пример 4. Так как ,то система { , x^y} – полная.
Определение. Минимальная полная система функций (т.е. такая, полня система функций, удаление из которой любой функции делает систему неполной) называется базисом.
Проверим, что все рассмотренные в примерах полные системы являются базисами.
1. и xvy.
xvy – монотонная функция. - линейная и самодвойственная. Суперпозицией таких функций нельзя получить функции от большего числа переменных.
Примеры. (К доказательству теоремы Поста)
M. Доказать, что дополнение собственного функционально замкнутого класса (совокупность функций в него не входящих) не может быть функционально замкнутым классом.
Решение.
Каждая из функций Шеффера и является полной системой функций (см. 6.2.), так как через каждую из них выражаются все основные операции.
Поэтому, если функционально замкнутый класс содержит одну из функций Шеффера, то он совпадает с классом всех булевых функций.
Данный нам класс является собственным функционально замкнутым классом, поэтому он не может содержать функции Шеффера.
Тогда эти функции должны содержаться в дополнении к нему. Тогда это дополнение совпадало бы с множеством всех функций, являясь функционально замкнутым классом. При этом исходный класс был бы пустым, а значит несобственным.
Таким образом, дополнение не может быть функционально замкнутым классом.
N. Для полноты системы функций Ф необходимо и достаточно, чтобы для всякого функционально замкнутого класса, не совпадающего с множеством всех булевых функций, в Ф нашлась бы функция, не принадлежащая этому классу.
Решение.
1) Необходимость. Дано: Ф – полная система функций; F – функционально замкнутый класс, причем [F] Pn.
Доказать:: и .
От противного: .
Но тогда все функции Ф принадлежат F – функционально замкнутому классу и ему же принадлежали бы все их суперпозиции. Т.е., [F] = Pn.
2) Достаточность. Дано: - для всякого функционально замкнутого класса.
Доказать:: [Ф] = Pn
Совокупность функций, являющихся суперпозициями функций из Ф является, очевидно, функционально замкнутым классом. Причем это наименьший функционально замкнутый класс, содержащий Ф: .
Этот класс не может быть собственным, так как Ф не содержится ни в каком собственном классе. Поскольку он, кроме того, не пуст, то он содержит все функции алгебры логики [Ф] = Pn.
Трудно ожидать, что доказанное утверждение N можно использовать в качестве критерия полноты системы функций, так как для этого потребовалось бы перебрать все функционально замкнутые классы. Хотя для решения вопроса о полноте нет необходимости в переборе всех классов.
Оказывается, что можно ограничиться максимальными функционально замкнутыми классами.
Определение. Собственный функционально замкнутый класс называется предполным, если он не содержится ни в каком функционально замкнутом классе, отличном от самого себя и от класса всех булевых функций.
Пример P. Пусть известно, что всякий функционально замкнутый класс содержится в некотором предполном классе. Доказать, что для полноты системы функций Ф необходимо и достаточно, чтобы для всякого предполного класса в Ф нашлась бы функция, в него не входящая.
1. Необходимость. Необходимость следует из необходимости условия задачи N.
2. Достаточность. Функционально замкнутый класс, порожденный функциями из Ф, не может содержаться ни в одном предполном классе, так как ни в одном из них по условию не содержится система Ф.
Поскольку этот класс, кроме того, не пуст, то он совпадает с классом всех функций алгебры логики Pn.
Оказывается, что все предполные классы легко перечисляются. Ими являются Т0, Т1, Т*, , ТL.
Однако удобнее доказывать не предполноту этих классов, а непосредственно критерий полноты, который вытекает из этого факта и задачи P.
Напротив, исходя из критерия полноты, докажем предполноту классов Т0, Т1, Т*, , ТL и то, что всякий собственный функционально замкнутый класс содержится в одном из них.
Пример Q. Доказать, что отождествлением переменных из всякой функции, не сохраняющей ноль (единицу), можно получить функцию от одной переменной, обладающую этим же свойством, т.е. или 1 (соответственно или 0).
Пусть . Отождествим все переменные. Тогда, если φ(1,..., 1) = 1, то мы получим 1; если φ(1, …, 1) = 0, то получим 0.
Теорема (Пост). Для полноты системы функций необходимо и достаточно, чтобы для каждого из классов Т0, Т1, Т*, , ТL в Ф нашлась бы функция ему не принадлежащая.
Необходимость. Необходимость следует из необходимости условия задачи N (В противном случае все функции из Ф принадлежали бы, вместе с их суперпозициями, какому-либо собственному функционально замкнутому классу).
Достаточность. Дано: пусть , не входящие в Т0, Т1, Т*, , ТL.
Доказать: [Ф] = Pn.
Доказательство: возьмем из Ф функцию, не сохраняющую ноль, и функцию, не сохраняющую 1. Отождествим в них переменные. В силу задачи Q в первом случае мы получаем 1 или , во втором случае получаем 0 или .
В результате мы получаем обе константы или отрицание (быть может, и то и другое).
1. Пусть мы получили константы. Покажем, что тогда можно представить отрицание в виде суперпозиции.
Поскольку константы не принадлежат классам Т* и одному из классов Т0 или Т1, а - линейная функция, то для этой цели естественно воспользоваться немонотонной функцией из Ф. Действительно, в силу задачи K отрицание можно представить в виде суперпозиции произвольной немонотонной функции и констант.
Итак, в этом случае суперпозицией функций из Ф можно представить обе константы и отрицание.
Рассмотрим теперь другой случай, когда при отождествлении переменных как у функции, не принадлежащей Р0, так и у функции, не принадлежащей Р1, получается отрицание.
Покажем, что тогда можно получить константы. Для этого естественно воспользоваться несамодвойственной функцией, из которой, в силу задачи C можно получить константы.
Таким образом, в обоих случаях мы имеем функции 0, 1, . Мы еще не использовали нелинейной функции.
Применяя задачу F, мы получаем из нее и одной из констант какую-либо нелинейную функцию двух переменных. А затем, используя задачу, можно получить из этой функции и отрицания любую нелинейную функцию от двух переменных, например, ху (или xvy, или функцию Шеффера ).
φ |
Т0 |
Т1 |
Т* |
|
ТL |
φ1 |
|
|
|
|
|
φ2 |
|
|
|
|
|
... |
... |
... |
.,. |
... |
... |
φk |
|
|
|
|
|
При проверке, выполняются ли для некоторой системы функций условия теоремы Поста, составляются таблицы Поста.
В клетках таблицы ставится плюс или минус, в зависимости от того, входит ли функция в класс, стоящий в данном столбце, или не входит. Для полноты системы функций необходимо и достаточно, чтобы, в силу теоремы Поста, в каждом столбце стоял хотя бы один минус.
Пример 1. Доказать, что всякий собственный функционально замкнутый класс содержится в одном из классов
Т0, Т1, Т*, , ТL.
Решение. Если некоторый функционально замкнутый класс F не содержится ни в одном из нами указанных классов, то для каждого из них в F найдется функция, ему не принадлежащая. Но тогда по теореме Поста F содержит все булевы функции.
Примиер 2. Доказать, что функционально замкнутые классы Т0, Т1, Т*, , ТL являются предполными и других предполных классов нет.
Решение.
В силу задачи 1 другие классы не могут быть предполными. В силу задачи 2 каждый из пяти перечисленных классов является предполным.
Пример 3. Доказать, что ни один из классов
Т0, Т1, Т*, , ТL не содержится в другом.
Решение.
Если бы какой-либо класс содержался в другом, то в формулировке теоремы Поста его можно было бы отбросить.
Замечание. Ясно, что теорема Поста позволяет выяснить вопрос о том, является ли полная система базисом. Это удобно сделать с помощью таблиц Поста.