Системы булевых функций
В теореме 10.5 доказано, что всякая булева функция может быть представлена в виде суперпозиции трех булевых функций: дизъюнкции, конъюнкции и отрицания. В настоящем параграфе тема представления булевых функций в виде суперпозиций функций из некоторой системы развивается и доводится до определенного конца: приводятся необходимые и достаточные условия (теорема 11.4 Поста), которым должна удовлетворять система булевых функций для того, чтобы всякая булева функция могла быть представлена в виде суперпозиции функций из этой системы.
Полные системы булевых функций
Напомним, что понятие суперпозиции булевых функций обсуждалось в предыдущей лекции (определение 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. Классы являются собственными замкнутыми классами булевых функций.
Доказательство. Проверим сначала, что все эти классы являются собственными. Укажем функции, которые принадлежат и не принадлежат каждому из рассматриваемых классов, предоставляя читателю проверить самостоятельно данные утверждения. Как классу , так и классу принадлежит, например, конъюнкция и не принадлежит отрицание. Далее, конъюнкция не является самодвойственной функцией, а отрицание есть функция самодвойственная. (Проверим последнее утверждение. Пусть . Тогда
 , то есть  ,
а значит, — самодвойственная функция.) Наконец, к классу монотонных функций принадлежит конъюнкция и не принадлежит импликация, а к классу линейных функций принадлежит сложение по модулю два (сумма Жегалкина) и не принадлежит конъюнкция.
Покажем теперь замкнутость этих классов. Пусть , то есть
 и  .
Тогда , то есть .
Аналогично проверяется замкнутость класса .
Пусть теперь , то есть Тогда
то есть , и значит .
Пусть далее и и . Тогда
Следовательно, .
Наконец, пусть , то есть, например, Тогда
то есть .Теорема доказана.
Заметим, что, например, функция принадлежит каждому из пяти классов .
Теорема Поста о полноте системы булевых функций
Эта теорема доказана американским математиком Э. Постом в 1921 г.
Теорема 11.4 (о полноте системы булевых функций). Система булевых функций является полной тогда и только тогда, когда в этой системе имеется функция, не принадлежащая классу , имеется функция, не принадлежащая классу , имеется функция, не принадлежащая классу , имеется функция, не принадлежащая классу , имеется функция, не принадлежащая классу .
Доказательство. Необходимость. Пусть система булевых функций полна. Допустим, что все функции этой системы входят в класс . Поскольку на основании предыдущей теоремы класс замкнут, то всякая суперпозиция любых функций из данной системы есть функция из класса . Но также по предыдущей теореме класс не исчерпывает всех булевых функций. Поэтому найдется булева функция (не принадлежащая классу ), которая не является суперпозицией функций из системы , что противоречит полноте этой системы. Следовательно, в системе имеется функция, не принадлежащая классу .
Совершенно аналогично доказываются утверждения о наличии в системе функций, не принадлежащих классам .
Достаточность. Предположим, что среди функций системы имеются такие функции , что
Покажем, что из этих пяти функций с помощью суперпозиций можно сконструировать такие функции, которые заведомо образуют полную систему.
Начнем с , для которой . Введем функцию . Для нее имеем: или 1. Следовательно, или .
Аналогично, из , для которой , строим функцию . Для нее имеем: или 0. Следовательно, или .
Таким образом, получаем одну из следующих четырех пар функций: и (1); и 0 (2); и 1 (3); 0 и 1 (4).
В каждом из случаев (2) и (3) имеем тогда по три функции (например, если есть функции и , то константа получается как ).
Рассмотрим случай (1). Покажем, что и здесь можно получить обе константы 0 и 1. Для этого привлечем несамодвойственную функцию (то есть ). Для нее , то есть
для некоторого набора из нулей и единиц. Следовательно, для этого набора
Построим теперь функцию по следующему правилу: , где
 для  . Для функции имеем:
 (1)
Следовательно, — константа. Поскольку в нашем распоряжении имеется отрицание , то из этой константы (0 или 1) можно получить и другую константу (1 или О соответственно). Итак, в случае (1) имеем функции .
Рассмотрим случай (4). Здесь к константам 0 и 1 необходимо получить функцию . Для этого привлечем немонотонную функцию (то есть ). Ее немонотонность означает: найдутся такие наборы из нулей и единиц и , что
 , но  .
Построим функцию по следующему правилу:
Тогда ясно, что . Следовательно, должно быть . Значит, .
Итак, из данной системы функций с помощью суперпозиций нами сконструированы функции .
Рассмотрим теперь еще не использованную нами нелинейную функцию (то есть ). Предположим, что — тот ее аргумент, который в разложение в полином Жегалкина функции входит нелинейно. Это означает, что может быть представлена в виде
где (в противном случае функция имела бы два различных представления полиномами Жегалкина, что невозможно). Поэтому, если , то найдется такой набор , что . Построим функцию по следующему правилу:
 , где 
 для  .
Заметим, что мы можем подставлять 0 вместо , так как функция 0 нами уже получена. Тогда ясно, что
Следовательно, или . Заметим, что . Значит, можно представить в виде , где или 1. Кроме того, ясно, что функцию одного аргумента можно представить в виде линейного полинома Жегалкина: . Таким образом, имеет вид:
Рассмотрим всевозможные случаи для коэффициентов .
Если , то .
Если , то рассмотрим функцию
(Заметим, что мы можем подставлять вместо , так как функция "отрицание" нами уже получена.)
Если , то .
Если , то рассмотрим функцию
Если в ней , то .
Если же , то (штрих Шеффера).
Итак, из функций , имеющихся в данной системе функций, мы получаем с помощью суперпозиций функции и или же функцию . Поскольку на основании теоремы 11.2 каждая из систем булевых функций и полна, то и данная система булевых функций полна.
Теорема полностью доказана.
Если заметили ошибку, опечатку или есть предложения, напишите в комментариях.
|