Этот закон не имеет отношения к закону "отрицания отрицания" в диалектике. В булевой алгебре он гласит, что если два раза подряд применить операцию отрицания, то получится исходная величина:
Формулы обратных операций позволяют убирать знак отрицания
в формулах вида
(Напоминание программистам: | - это штрих Шеффера, а не побитовое
"или")
Коммутативными называют операции, которые позволяют переставлять
местами свои операнды, не меняя операцию. По схеме:
Остальные операции также позволяют переставлять операнды, но с заменой на другую операцию:
Как видите, и в булевой алгебре операции сложения () и умножения (&) позволяют переставлять свои слагаемые.
Можно использовать простое мнемоническое правило: при перестановке операндов логической операции местами надо повернуть знак операции вокруг веритикальной оси. Если получится другой знак логической операции, взять его. Если получится тот же знак, взять его. Если получится несуществующий знак (для операции &), то оставить прежний знак.
Ассоциативными называют операции, которые можно выполнять в
произвольном порядке. По схеме:
Проверка показывает ассоциативность всего лишь для 4 операций "&", "", "", "" из 10 нетривиальных.
Из комутативности и ассоциативности этих четырех операций следует, что если мы имеем много переменных подряд, соединенных такой операцией, то переменные можно переставлять в любом порядке, а значит скобки для указания порядка не обязательны:
Дистрибутивной называют пару операций, для которых работает схема раскрытия скобок, характерная для сложения и умножения в арифметике:
где
Первую схему будем называть левой дистрибутивностью, вторую схему - правой дистрибутивностью, а если срабатывают обе схемы, то будем говорить о полной дистрибутивности или просто дистрибутивности.
Здесь приведена программа на языке C, позволяющая проверить дистрибутивность для всех возможных комбинаций бинарных логических операций путем перебора вариантов. Она автоматически пропускает тривиальные операции и составляет правила дистрибутивности.
Результаты программы выглядят так.
Из полученных правил наибольший практический интерес
представляют:
Как видите, дистрибутивность между логическим умножением и сложением в алгебре логики такая же как в обычной алгебре (где она называется "распределительным законом"). Обратите внимание, что и для операций "" и "&" можно раскрывать скобки таким же способом. Причем обе операции оказываются равноправны: можно раскрывать скобки когда в них стоит "&", а вне скобок - "", а можно и в обратной ситуации - когда внутри скобок стоит "".
Формула вида
То же самое рассуждение применимо и к формулам вида:
Как обычно, поручим нудную работу по перебору вариантов
компьютеру. Здесь приведена
программа на языке C, позволяющая получить список всех
правил поглощения сразу в виде web-странички.
Цветом выделены законы поглощения, используемые чаще всего.
Это - один из законов поглощения:
В булевой алгебре этот закон оспорить невозможно, так
как достаточно подставить значения
Я специально останавливаюсь на этом законе потому, что в
некоторых логических системах (интуиционистская логика,
конструктивная логика), которые построены на иных
принципах, чем булева алгебра, в этих системах закон
исключенного третьего не действует. Что
неудивительно, ведь в тех системах совсем другие границы применимости.
Эти равенства удобны для избавления от лишних скобок.
Закон исключенного третьего.
Законы Де Моргана.
Формулы для импликации.