Булевы функции от одного и двух аргументов
Булевы функции получили свое название по имени замечательного английского математика Джорджа Буля (1815—1864), который первым начал применять математические методы в логике.
Происхождение булевых функций
В конце первой лекции отмечалось, что каждое из определений операций над высказываниями: отрицания, конъюнкции, дизъюнкции, импликации, эквивалентности, — можно рассматривать как определение некоторого действия над символами 0 и 1, т. е. как определение некоторой функции, заданной на двухэлементном множестве и принимающей значения в том же множестве. Символом 0 обозначалось любое ложное высказывание, а символом 1 — любое истинное. Например, отрицание представляет собой в этом смысле функцию одного аргумента
, которая принимает следующие значения:
; конъюнкция представляет собой функцию двух аргументов
, принимающую следующие значения:
Во второй лекции эта мысль была развита дальше: отмечено, что каждая формула алгебры высказываний от
пропозициональных переменных
определяет по существу некоторую функцию от
аргументов, сопоставляющую любому набору длины
, составленному из элементов двухэлементного множества
, единственный элемент того же множества. Этот элемент является логическим значением того составного высказывания, в которое превращается данная формула, если вместо всех ее пропозициональных переменных подставить конкретные высказывания, имеющие соответствующие значения истинности. Легко понять, что высказывания (точнее, их содержание) здесь ни при чем. Функция, о которой идет речь, определяется структурой формулы
и определениями отрицания, конъюнкции, дизъюнкции, импликации и эквивалентности, которые понимаются как определения действий над символами 0, 1 — элементами двухэлементного множества
.
В связи с этим естественно рассмотреть функции, заданные на двухэлементном множестве и принимающие значения в нем же безотносительно к формулам алгебры высказываний, т.е. сами по себе. Тогда функции, определяемые таблицами в определениях отрицания, конъюнкции, дизъюнкции, импликации и эквивалентности, а также функции, определяемые формулами алгебры высказываний, будут служить примерами таких функций. Такие функции, заданные и принимающие значения в двухэлементном множестве, появляющиеся в алгебре высказываний, носят название функций алгебры логики или булевых функций.
Введя понятие булевой функции, мы окончательно отрываемся от того содержательного смысла, который имели в виду в алгебре высказываний: пропозициональные переменные служили там обозначениями для высказываний языка. Теперь же остались только два символа 0 и 1 и понятие булевой функции. Чтобы еще более оттенить это обстоятельство, обозначим переменные, пробегающие множество , малыми буквами латинского алфавита
и будем называть их булевыми.
В этой лекции изучим некоторые свойства булевых функций и посмотрим, как эти функции могут применяться в алгебре высказываний и в теории релейно-контактных схем.
Булевы функции от одного аргумента
Определение 9.1. Булевой функцией от одного аргумента называется функция , заданная на множестве из двух элементов и принимающая значения в том же двухэлементном множестве.
Элементы двухэлементного множества будем обозначать 0 и 1. Таким образом, . Нетрудно перечислить все булевы функции от одного аргумента:
Составленная таблица означает, что, например, булева функция на аргументах 0 и 1 действует следующим образом:
и
. Всего имеется четыре различных булевых функций от одного аргумента:
Булевы функции от двух аргументов
Определение 9.2. Булевой функцией от двух аргументов называется функция , заданная на множестве
и принимающая значения в двухэлементном множестве
. Другими словами, булева функция от двух аргументов сопоставляет любой упорядоченной паре, составленной из элементов 0 и 1 (а таких упорядоченных пар будет четыре), либо 0, либо 1.
Перечислим все возможные булевы функции от двух аргументов в форме следующей таблицы:
Заметим: функции пронумерованы так, что номер функции, записанный в двоичной системе счисления, дает последовательность значений соответствующей функции. Например, двоичная запись числа 13 имеет вид: 1101. Соответствующая функция принимает следующие значения:
Многие из перечисленных функций имеют названия и специальные обозначения. Приведем их, сгруппировав функции в пары по тому принципу, что каждая функция из пары является отрицанием другой функции этой пары.
Первые две функции, которые рассматриваются, и
— тождественный ноль и тождественная единица.
Далее, функция называется конъюнкцией и обозначается
(или
). Таким образом,
. Конъюнкция принимает значение 1 в том и только в том случае, когда оба ее аргумента принимают значение 1. Отрицание конъюнкции, функция
, называется штрихом Шеффера и обозначается
. Таким образом,
. Эта функция принимает значение 0 в том и только в том случае, когда функция
принимает значение 1, т.е. в случае, когда оба ее аргумента принимают значение 1.
Функция называется дизъюнкцией и обозначается
. Таким образом,
. Функция
, являющаяся отрицанием функции
, носит название стрелка Пирса (или функция Вебба) и обозначается
. Итак,
.
Функция называется импликацией и обозначается
, т.е
. Аргумент
в этой функции называется посылкой импликации, а аргумент
— ее следствием. Отрицанием импликации является функция
. Специального названия она не имеет.
Функция называется антиимпликацией или обратной импликацией, потому что представляет собой импликацию с посылкой
и следствием
. Таким образом,
. Ее отрицанием является функция
, не имеющая названия.
Функция называется эквивалентностью и обозначается
, так что
. Она принимает значение 1 тогда и только тогда, когда оба ее аргумента принимают одинаковые значения. Функция
, являющаяся отрицанием функции
, называется сложением по модулю два, или суммой Жегалкина, и обозначается
.
Наконец остаются еще две пары функций. В первую пару входят функции и
. Первая из них принимает всегда те же самые значения, что и ее первый аргумент, т.е.
, а вторая функция является отрицанием первой:
. Во вторую пару входят функции
и
. Первая из них принимает всегда те же самые значения, что и ее второй аргумент, т.е.
, а вторая функция является отрицанием первой:
.
Теперь установим некоторые важнейшие свойства введенных функций. Две булевы функции и
называются равными, если каждому набору значений аргументов
обе функции сопоставляют один и тот же элемент из множества
, т.е.
для любых
. Например,
.
Из введенных простейших булевых функций можно строить с помощью суперпозиций более сложные булевы функции. Например, если в функцию вставить вместо аргумента
функцию
, то получим следующую сложную функцию:
. Если в нее в свою очередь вставить вместо аргумента
функцию
, то получим сложную функцию
. И так далее. В результате получаются булевы функции от трех, четырех и большего числа аргументов.