Ранее нами рассматривались два способа задания логических функций – табличный и с помощью формул. Таблица задаёт функцию непосредственно как соответствие между двоичными наборами и значениями функции на этих наборах. Этот способ универсален, то есть, пригоден для любых функций, однако слишком громоздок. Формула – гораздо более компактный способ задания функции, но она задаёт функцию через другие функции. Поэтому для любой системы функций возникает естественный вопрос: всякая ли логическая функция представима формулой в этой системе. В позапрошлой лекции был получен положительный ответ для системы (теорема 8.2). В данной лекции будет показано, как решать этот вопрос для произвольной системы .
Функционально полные системы.
Определение. Система функций называется функционально полной системой, если любая логическая функция может быть представлена формулой над системой (является суперпозицией функций этой системы).
Из теоремы 8.2 следует, что система является функционально полной. Равным образом, функционально полна любая система , через функции которой можно выразить конъюнкцию, дизъюнкцию и отрицание. Действительно, для любой логической функции из такой системы следует составить булеву формулу (а она обязательно существует согласно теореме 8.2) и потом выразить в ней конъюнкцию, дизъюнкцию и отрицание через функции системы . Аналогично обосновывается более общее утверждение.
Теорема 11.1. Если все функции функционально полной системы представимы формулами над системой , то система также функционально полна.
а) Системы и функционально полны. Действительно, с помощью законов Де Моргана и двойного отрицания можно выразить в каждой из этих систем функцию, недостающую до через остальные две:
.
С точки зрения функциональной полноты систему следует считать избыточной: она сохраняет свойство полноты и при удалении из неё конъюнкции или дизъюнкции. Однако легко видеть из приведённого примера, что, хотя системы и не являются избыточными, зато формулы в них получаются гораздо длиннее: замена одной операции на другую вносит в формулу сразу три лишних отрицания.
б) Системы (штрих Шеффера) и (стрелка Пирса) являются функционально полными.
.
Таким образом, система сводится к системе , а система - к системе .
в) Система (умножение по модулю 2, сложение по модулю 2 – см. пункт 1 лекции № 8)) является функционально полной. Поскольку , данная система сводится к .
На свойствах этой системы остановимся подробнее.
Алгебра Жегалкина и линейные функции.
Определение. Алгебра над множеством логических функций с двумя бинарными операциями называется алгеброй Жегалкина.
Замечание. Операция вполне аналогична операции конъюнкции (логического умножения). Однако операция имеет совершенно другой математический смысл, чем дизъюнкция (соответствующая функция ранее была названа неравнозначностью). Поэтому никак нельзя считать алгебру Жегалкина иной формой записи булевой алгебры.
В алгебре Жегалкина выполняются следующие соотношения (знак умножения опущен):
2.1. ,
2.2. ,
2.3 ,
2.4 .
Кроме того, выполняются соотношения, ранее сформулированные булевой алгебры, относящиеся к конъюнкции и константам. Отрицание и дизъюнкция выражаются так:
2.5 ,
2.6 .
Если в произвольной формуле алгебры Жегалкина раскрыть скобки и произвести все упрощения по вышеуказанным соотношениям, то получится формула, имеющая вид Суммы произведений, то есть полином (многочлен) по модулю 2. Такая формула называется полиномом Жегалкина для данной функции.
От булевой формулы всегда можно перейти к формуле алгебры Жегалкина, используя равенства 2.5 и 2.6, а также прямое следствие из равенства 2.6: если , то . Оно, в частности, позволяет заменять знак дизъюнкции знаком в случаях, когда исходная формула представляет собой СДНФ.
Пример 2. Составить полиномы Жегалкина для данных функций:
а) ,
б) .
Заметим, что если в полученных полиномах Жегалкина произвести обратную замену функций, то получим упрощённые формулы булевой алгебры.
Теорема 11.2. Для всякой логической функции существует полином Жегалкина и притом единственный.
Существование такого полинома, по сути, уже доказано, а для доказательства его единственности достаточно показать существование взаимно однозначного соответствия между множеством всех функций переменных и множеством всех полиномов Жегалкина.
Определение. Функция, у которой полином Жегалкина имеет вид , где параметры равны нулю или единице, называется линейной.
Все функции от одной переменной линейны. Также линейными являются функции эквивалентность и сумма по модулю 2.
Замкнутые классы. Монотонные функции.
Определение. Множество логических функций называется замкнутым классом, если любая суперпозиция функций из множества снова принадлежит .
Всякая система логических функций порождает некоторый замкнутый класс, а именно класс всех функций, которые можно получить суперпозициями функций . Такой класс называется замыканием и обозначается . Если множество - функционально полная система, то .