Открытая Булевой алгеброй область математической логики сегодня известна нам как исчисление высказываний. Она восходит к V в. до н. э., когда Евклид Мегарский (не путайте с геометром Евклидом Александрийским) основал то, что позже стало стоической школой логики. Ключевой особенностью стоической логики является использование условных рассуждений вида «если A, то B». Диофант и Филон из Мегары разошлись во мнениях по фундаментальному вопросу, который до сих пор продолжает смущать студентов-математиков. А именно: при заданных истинности или ложности A и B когда утверждение «если A, то B» истинно? Обратите внимание: речь идет не об истинности A или B самих по себе, но об истинности
Сегодняшние специалисты по математической логике согласны с Филоном. Контринтуитивный случай, конечно, возникает, когда A ложно. Если B тоже ложно, то представляется разумным считать, что утверждение «если A, то B» верно. В частности, «если A, то A» кажется разумным утверждением, каким бы ни было значение истинности A. Если B истинно или его текущий статус неизвестен, может показаться неразумным его следование из ложного утверждения. К примеру, утверждение
Если 2 + 2 = 5, то Великая теорема Ферма верна
считается
Если 1 = –1, то 2 = 0
[добавляем по единице с каждой стороны].
Если 1 = –1, то 1 = 1
[возводим обе стороны квадрат].
Оба высказывания логически оправданы рассуждениями, приведенными в скобках. Первое из них принимает вид
Если (ложное утверждение), то (ложное утверждение),
а второе принимает вид:
Если (ложное утверждение), то (истинное утверждение).
Таким образом, верные рассуждения, начатые с ложной посылки, могут привести как к ложному, так и к истинному утверждению.
Другой подход, позволяющий получить тот же результат, состоит в том, чтобы задать вопрос: что нужно, чтобы
Если бы у свиней были крылья, они бы летали,
мы должны продемонстрировать крылатую нелетающую свинью. Так что «если A, то B» ложно, если A истинно, а B ложно, а во всех остальных случаях оно истинно, поскольку мы не можем доказать обратного.
Это рассуждение – не доказательство. Это объяснение договоренности, которая используется в логике предикатов. В модальной логике с условными высказываниями обращаются иначе. К примеру, утверждение о крылатых свиньях считалось бы верным при условии, что крылья пригодны для полета. А вот аналогичное высказывание
Если бы у свиней были крылья, они бы играли в покер
считалось бы ложным, поскольку – даже гипотетически – обладание крыльями никак не способствует игре в покер. Напротив, последнее высказывание в логике предикатов рассматривается как истинное, поскольку крыльев у свиней нет. Покер тут вообще ни при чем. Этот пример иллюстрирует некоторые трудности, с которыми столкнулись Буль и другие первые логики, и предупреждает: не стоит считать, что сегодняшние договоренности – обязательно последнее слово науки.
Использование Булевой алгебры, или исчисления высказываний, в расчетах объясняется представлением числовых и других данных в двоичной системе, то есть с использованием только двух цифр: 0 и 1. В простейших случаях это соответствует состояниям «нет электрического напряжения» и «есть электрическое напряжение» (на заданном уровне, скажем, 5 В). В сегодняшних компьютерах все данные, включая программы, кодируются в двоичной системе. Эти данные обрабатываются электронными схемами, которые, помимо прочего, производят операции исчисления высказываний – по существу, Булевой алгебры. Каждая такая операция соответствует своеобразному «вентилю», и когда электрический сигнал или сигналы проходят через этот вентиль, то выходной сигнал, определяемый входным или входными сигналами, зависит от «зашитой» в этом вентиле логической операции.