Полные системы булевых функций
Напомним, что понятие суперпозиции булевых функций обсуждалось в предыдущей лекции (определение 10.2).
Определение 11.1. Система булевых функций называется полной, если всякая булева функция является суперпозицией функций из этой системы.
Теорема 11.2. Следующие системы булевых функций являются полными:
Доказательство. Полнота первой системы доказана в теореме 10.5. Это можно использовать для доказательства полноты остальных систем, приведенных в теореме.
В силу полноты системы каждая булева функция является суперпозицией дизъюнкции, конъюнкции и отрицания. Если мы сможем выразить дизъюнкцию через функции
и
, то тем самым докажем, что всякую функцию можно выразить через эти функции, т.е. докажем полноту системы функций
. Это можно сделать так:
. Предлагается самостоятельно проверить справедливость приведенного тождества.
Аналогично, для проверки полноты системы нужно выразить конъюнкцию через дизъюнкцию и отрицание. Соответствующее тождество известно (см. теорему 9.5, пункт а).
Полнота системы вытекает из полноты системы
и тождества теоремы 9.5, пункт б, выражающего дизъюнкцию через конъюнкцию и отрицание, а полнота системы
— из полноты системы
и тождества теоремы 9.5, пункт в, выражающего дизъюнкцию через импликацию.
Наконец система полна, потому что каждая функция есть суперпозиция функций
и
, а обе эти функции могут быть выражены через функцию штрих Шеффера (см. теорему 9.5, пункты ж, и). Аналогично, система
полна, так как полна система
и справедливы тождества теоремы 9.5, пункты к, м, выражающие функции
и
через стрелку Пирса
.
Итак, теорема доказана.
Теперь от разрозненных и случайных примеров полных систем булевых функций перейдем к их исчерпывающему описанию. Прежде чем получить такое описание, в следующем пункте рассмотрим необходимые предварительные понятия.
Специальные классы булевых функций
Говорят, что булева функция сохраняет 0, если
. Обозначим
— класс всех булевых функций, сохраняющих 0.
Говорят, что булева функция сохраняет 1, если
. Обозначим
— класс всех булевых функций, сохраняющих 1.
Булева функция называется двойственной функцией для булевой функции
, если
для любых
. Булева функция
называется самодвойственной, если
. Класс всех самодвойственных булевых функций обозначим
.
Введем на множестве отношение порядка, полагая, что
. Булева функция
называется монотонной, если для любых
немедленно следует, что . Класс всех монотонных функций обозначим
.
Наконец, булева функция называется линейной, если ее можно представить в виде следующего выражения (называемого полиномом Жегалкина степени не выше первой):
где — постоянные, равные либо 0, либо 1. Символом
обозначим класс всех линейных булевых функций.
Введенные классы булевых функций играют главную роль при описании полных систем булевых функций. В следующей теореме устанавливаются два важных свойства этих классов и одновременно рассматриваются примеры функций, принадлежащих и не принадлежащих каждому из них.
Класс булевых функций называется собственным, если он не пуст и не совпадает с классом всех булевых функций. Класс булевых функций называется замкнутым или классом Поста, если он вместе со всякими своими функциями содержит любую их суперпозицию.
Теорема 11.3. Классы являются собственными замкнутыми классами булевых функций.
Доказательство. Проверим сначала, что все эти классы являются собственными. Укажем функции, которые принадлежат и не принадлежат каждому из рассматриваемых классов, предоставляя читателю проверить самостоятельно данные утверждения. Как классу , так и классу
принадлежит, например, конъюнкция и не принадлежит отрицание. Далее, конъюнкция не является самодвойственной функцией, а отрицание есть функция самодвойственная. (Проверим последнее утверждение. Пусть
. Тогда
а значит, — самодвойственная функция.) Наконец, к классу монотонных функций принадлежит конъюнкция и не принадлежит импликация, а к классу
линейных функций принадлежит сложение по модулю два (сумма Жегалкина) и не принадлежит конъюнкция.
Покажем теперь замкнутость этих классов. Пусть , то есть
Тогда , то есть
.
Аналогично проверяется замкнутость класса .
Пусть теперь , то есть
Тогда
то есть , и значит
.
Пусть далее и
и
. Тогда
Следовательно, .
Наконец, пусть , то есть, например,
Тогда
то есть .Теорема доказана.
Заметим, что, например, функция принадлежит каждому из пяти классов
.