Научная статья на тему 'Алгебра логики Дж. Буля'

Алгебра логики Дж. Буля Текст научной статьи по специальности «Математика»

CC BY
1653
160
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Алгебра логики Дж. Буля»

АЛГЕБРА ЛОГИКИ ДЖОРЖА БУЛЯ

Выдающийся английский логик и математик, создатель алгебры логики Джорж Буль (1815-1864) родился в бедной рабочей семье в небольшом городке в Восточной Англии и не получил систематического образования. Сначала он увлекался языками, самостоятельно изучив латинский язык, а позже также греческий, немецкий, французский и итальянский. А затем его захватила математика, которую он тоже изучал самостоятельно. Свои математические идеи он излагал в статьях, которые посылал в научные журналы. Постепенно он стал известен и был признан в кругу математиков, получив должность профессора математики в Королевском колледже в Ирландии. Умер Буль в возрасте 50 лет от болезни. Известность получила также младшая из его дочерей - Этель Лилиан Войнич - автор знаменитого романа «Овод».

Ниже существо алгебры логики Буля излагается в трех вариантах: в виде компендиума материалов, собранных нами в различных справочных пособиях; в виде фрагмента из математической монографии; и в виде отрывка из дидактического материала для школьников.

Идею математизации логики Буль представил в работах «Математический анализ логики» (The Mathematical Analysis of Logic), опубликованной в 1847 г., и «Исследование законов мышления» (An investigation of the laws of thought), опубликованной в 1854 г. В них он применил к формальной логике вычислительные средства алгебры своего времени. Во введении к первой из них он писал: «Те, кто знаком с настоящим состоянием символической алгебры, отдают себе отчет в том, что обоснованность процессов анализа зависит не от интерпретации используемых символов, а только от законов их комбинирования. Каждая интерпретация, сохраняющая предложенные отношения, равно допустима, и подобный процесс анализа может, таким образом, при одной интерпретации представлять решение вопроса, связанного со свойствами чисел, при другой - решение геометрической задачи и при третьей - решение проблемы динамики или оптики. Необходимо подчеркнуть фундаментальность этого принципа...»1

1 Boole G. The mathematical analysis of logic... - Cambridge, 1847. - P. 3.

309

Всякое вербальное логическое выражение, как показал Буль, можно заменить алгебраическими выражениями и операциями. Но это должна быть особая алгебра, не во всем совпадающая с алгеброй чисел. В ней устанавливаются лишь три операции: умножение, сложение и отрицание и лишь два «численных значения» - 0 и 1. И это происходит потому, что она представляет собой алгебру логики, а не обычных числовых величин. А логические выражения, по Булю, имеют свойство выражать выбор между истинным и ложным, поэтому и их алгебраические выражения должны принимать такую же форму. В алгебраическом исчислении Буля присутствует исходная логическая природа объектов, с которыми оно имеет дело и которые требуют от этого исчисления особых правил. Логической конъюнкции И «х и у» в нем сопоставлено умножение ху, а дизъюнкции ИЛИ -сложение «х + у». Отрицанию НЕ «не х» сопоставлена формула «7 - х», а утверждению «х есть х» - формула идемпотентности: «хх = х».

Применяя свое исчисление к логике классов, Буль заменяет формулы традиционной силлогистики на алгебраические уравнения: «все х есть у» на х = ху и «ни один х не есть у» на ху = 0, что позволяет ему представлять силлогизмы в форме систем уравнений. А в исчислении высказываний представлять включающую дизъюнкцию «х или у» в виде многочлена х + у - ху, а исключающую дизъюнкцию «или х или у» в виде многочлена х - 2ху + у. Буль выводит их чисто алгебраическими средствами. Включающая дизъюнкция «х или у», определяемая как «не (не х и не у)», выводится: 1 - (1 - х)(1 - у) = 1 - (1 - х - (у - ху)) = х + у - ху. А исключающая дизъюнкция, «или х или у», определяемая как «(х или у) и не (х и у)», выводится с учетом идемпотентности как (х + у - ху)(1 - ху) = х + у - ху - (ху + ху - ху) = х - 2ху + у.

Уравнения Буля позволяют также выражать истинность и ложность высказываний: «х есть истинное» через х=7, а «х есть ложное» через х=0. В данном случае он использует 0 и 1 как оценки истинности высказываний. Способ логического доказательства в нормальной форме он дополняет равноценным способом семантического доказательства с подстановкой истинностного значения в булеву функцию, которая каждому логическому терму приписывает значение истинности или ложности. Этот подход также соответствует доказательству с помощью построения таблиц истинности.

В. С. Авдонин

АЛГЕБРА ЛОГИКИ ДЖ. БУЛЯ1

В качестве исходных символов Буль принимает:

1) х, у, ъ - символы классов;

1 Математика XIX века / Под ред. А.Н. Колмогорова и А.П. Юшкевича. - М.: Наука, 1978. - С. 23-27.

310

2) +, -, х - символы операций, вместо знака х он часто использует точку • или просто опускает знак операции;

3) == - символ тождества.

Выражение ху употребляется Булем для обозначения класса всех тех и только тех элементов, которые являются элементами как класса х, так и класса у.

Если классы х и у не имеют общих элементов, то через х + у обозначается класс, состоящий из элементов класса х и элементов класса у. Если всякий элемент класса у является элементом класса х, то через х - у обозначается класс, состоящий из всех тех и только тех элементов х, которые не являются элементами у.

Итак, на множестве классов Буль вводит три операции: *, +, -; при этом две последние определены не на любых парах классов.

Указываются простейшие свойства введенных операций:

1) ху = ух;

2) х + у = у + х, причем здесь равенство понимается «в обе стороны» - если допустима запись х + у, то допустима и у + х, и обе выражают один и тот же класс;

3) хх = х;

4) более общо, если х - подкласс класса у, то ху = х; это условие является и достаточным для того, чтобы х был подклассом класса у;

5) z (x + у) = zx + zy; здесь равенство следует понимать «в одну сторону», именно: если допустима запись z (х + у), т.е. классы х и у не пересекаются, то допустима и запись zх + zy, представляющая тот же самый класс, но не наоборот; из того, что zx не пересекается с zy, вообще говоря, не следует, что х не пересекается с у, хотя Буль и не оговаривает этого, однако он всегда использует, так сказать, дистрибутивные классы;

6) z (x - у) = zx - zy; относительно этого равенства также нужно сделать только что приведенное замечание.

Буль замечает, что условие «О* у = 0 для любого класса у» будет заведомо выполнено, если символ О обозначает «Nothing», пустой класс, а условие «1*у = у для любого класса у» выполнено, если через 1 обозначить такой класс, что любой класс является его подклассом. Таким классом является универсальный класс (универсум), обозначаемый через 1.

Если в системе классов есть универсум 1, то имеет место закон противоречия: для любого класса х

х (1 - х) = 0. (1)

В самом деле, х = хх, следовательно, х - хх = 0, х - подкласс класса 1, значит, есть класс x (1 - х), но по свойству 5) x (1 - х) = х - хх = 0.

Введенные Булем операции + и - определены, вообще говоря, не для любых пар классов; доопределение их на любые пары до общепринятых теперь теоретико-множественных операций в силу специфики определения Буля возможно двумя путями: а) либо под х + у понимать объединение классов х и у независимо от того, пересекаются они или нет;

311

б) либо под х + у понимать симметрическую разность классов х и у, тогда х - у также должно означать симметрическую разность, ибо последняя обратна самой себе.

Если учитывать наличие универсума 1 в системе, первый путь ведет, по существу, к построению булевой алгебры, а второй - булева кольца. Представление в форме булева кольца дано И.И. Жегалкиным.

Отметим, что хотя операции, введенные Булем, определены не всюду, они представляют так называемую полную систему связок, т.е. все теоретико-множественные операции в них выразимы; пересечение х и у выражается через ху, дополнение х - через 1 - х, объединение х и у - через ху + х (1 - у) + у (1 - х).

Буль дает это выражение объединения классов через введенное им сложение.

Термины «логическое уравнение», «логическая функция» Буль употребляет для обозначения какого-либо уравнения или функции, содержащих символы классов х, у, ... Примеры функций:

f (х) = х, f (х) = (1 + х) / (1 - х), f (х, у) = (х + у) / (х - 2 у).

Если равенство х (1 - х) - 0 рассматривать как алгебраическое уравнение, т.е. считать х принимающим числовые значения, то это уравнение имеет корни 0 и 1. «Это наводит на мысль,- пишет Буль,- вместо определения меры согласованности символов логики с числовыми символами непосредственно сопоставлять логическим символам количественные символы, принимающие лишь значения 0 и 1»1.

Исходя из этого замечания, Буль принимает следующий общий способ обращения с логическими функциями и логическими уравнениями: «Поскольку процессы формального рассуждения зависят от законов, которым подчинены символы, а не от природы их интерпретации, мы позволим себе трактовать символы х, у,... так, как если бы они были количественными символами вышеописанного рода. Мы можем в действительности пренебречь логической интерпретацией символов данного уравнения, считать их количественными символами, принимающими лишь значения 0 и 1, выполнить над ними как таковыми все обычные приемы решения, а в конце возвратить им их логическую интерпретацию»1.

В соответствии с этим соглашением вместо символов х, у, ъ, ... в «логические функции» можно подставлять значения 0 и 1: если / (х) = (а + х) / (а - 2 х), то / (0) = а / а, / (1) = (а + 1) / (а - 2). При этом Буль многократно подчеркивает, что промежуточные результаты вовсе не обязательно будут иметь логическую интерпретацию.

Всякую функцию / (х) можно представить в виде / (х) = ах + Ь (1 - х).

Действительно, полагая в этом равенстве х = 1, мы получим / (1) = а, при х = 0 будем иметь / (0) = Ь, т.е. f (х) = f (1) х + f (0) (1 - х).

1 [Яоо1е, ТЪе таШета11са1 апа1у818 1<^с, б/д.]

312

Аналогично

/(х, у) = f (1, у) х + /(0, у)(1 - х), но так как

/ (1, у) = / (1, 1) у + / (1, 0)(1 - у), / (0, у) = / (0, 1) у + / (0, 0) (1 - у), то

/(х, у) =/(1, 1) ху +/(1, 0) х (1 - у) +/(0, 1)(1 - х) у +/(0, 0)(1 - х)(1 - у).

Множители х и (1 - х) в разложении функции / (х) и множители ху, х (1 - у), (1 - х)у, (1 - х)(1 - у) в разложении/(х, у) Буль называет консти-туентами и формулирует общее правило разложения функций по конс-титуентам:

1) составить полный набор конституент искомого разложения;

2) найти коэффициенты разложения;

3) умножить каждую конституенту на соответствующий коэффициент и результаты сложить.

Для получения конституент нескольких переменных, например х, у, х, предлагается следующий прием: в качестве первой конституенты взять произведение данных символов хух; заменить в этом произведении один из сомножителей, скажем х, на (1 - х), получим новую конституенту ху (1 - х); в полученных таким образом двух конституентах заменить какой-нибудь из исходных символов, например у, на (1 - у); заменив в четырех консти-туентах оставшийся исходный символ х на (1 - х), будем иметь полный набор конституент для х, у, х:

хух, ху (1 - х), х (1 - у)х, х (1 - у)(1 - х), (1 - х)ух,

(1 - х)у (1 - х), (1 - х)(1 - у)х, (1 - х)(1 - у)(1 - х).

Аналогично составляются наборы конституент для любого конечного списка исходных символов.

Для определения коэффициента некоторой конституенты в разложении данной функции нужно заменить на 1 те символы в выражении этой функции, которые входят сомножителями в эту конституенту, и заменить на 0 те символы, дополнения которых входят в данную конституенту. Так, для функции (х, у) = (х + у) / (х - 2у) конституента (1 - х) у будет иметь коэффициент / (0, 1) = -1/2, а конституента х (1 - у) - коэффициент (1,0)=1.

Сумма всех конституент для любого разложения равна единице. Произведение любых двух конституент равно нулю.

Таким образом, конституенты разложения логической функции могут быть истолкованы как все возможные разбиения универсума на попарно не пересекающиеся классы. Так, класс х разбивает универсум на х и 1 - х; два класса х и у образуют ху, х (1 - у), (1 - х) у, (1 - х)(1 - у) и т.д.

Буль вводит операции над классами, чтобы применять их для решения логических уравнений.

Пусть дано уравнение w = V, где w - символ некоторого класса, V -логическая функция. Решить это уравнение относительно любого класса, входящего в V, значит выразить этот класс через остальные. Для этого Буль рекомендует формально выразить этот класс, пользуясь алгебраическими преобразованиями. Если при этом результат не истолковывается логически, например имеет вид дроби, то нужно разложить полученное

313

выражение по конституентам всех содержащихся в нем символов, а затем проинтерпретировать в соответствии с правилами:

1) все конституенты с коэффициентом 1 входят в заключительное выражение;

2) все конституенты с коэффициентами 0 отбрасываются;

3) коэффициент 0/0 заменяется символом неопределенного класса у;

4) все конституенты, коэффициенты которых имеют вид, отличный от указанных в пунктах 1-3, приравниваются нулю.

Пусть требуется решить уравнение 0 = ах + Ь (1 - х) (2)

(где а и Ь не содержат х) относительно х, т.е. получить выражение х через а и Ь. Запишем (2) в виде (а - Ь) х + Ь = 0, откуда х = Ь / (Ь - а). Дроби неинтерпретируемы, поэтому правую часть разлагаем по конституентам: х = (1 - а)Ь + у (1 - а)(1 - Ь), аЬ = 0.

Выражение аЬ = 0 Буль называет необходимым и достаточным условием возможности соотношения (2), когда оно выполнено, х выражается через а и Ь соотношением х = (1 - а) Ь + у (1 - а)(1 - Ь).

В работах последующих логиков система Буля совершенствовалась в направлении упрощения операций, истолкования неинтерпретируемых выражений, уточнения понятия «решить логическое уравнение».

«Водопроводная» модель операций булевой алгебры1

Булева алгебра (названа в честь английского математика XIX в. Джорджа Буля) рассматривает величины, принимающие только два значения - 0 или 1. Значение булевой величины можно представлять как ложность или истинность какого-либо утверждения (0 - ложь, 1 - истина). Поэтому с такими величинами можно производить различные операции - так же, как мы оперируем утверждениями при рассуждениях. Основные операции - это И, ИЛИ, НЕ. Например: «я возьму зонт», если «пойдет дождь» И «за мной НЕ заедет друг на машине». Если обозначить через С утверждение «я возьму зонт», А - «пойдет дождь» и В - «за мной заедет друг», то С = А И (НЕ В). Выполнением подобных операций и занимается процессор компьютера.

Выполнение логических операций можно проиллюстрировать напри-мере наглядной физической модели «водопровода». Представим утверждения, над которыми производятся операции, в виде вентилей на трубах (открытый вентиль - утверждение истинно, закрытый - ложно). Результат операции представим в виде крана, из которого вода может либо течь (истина), либо не течь (ложь). На рис. 1 изображены системы труб, реали-

1 «Водопроводная модель» эксперимент булевой алгебры. - Mode of access: http:// elementy.ru/lib/164570/164572 (Дата посещения: 21.06.2015.)

314

зующие основные логические операции. Например, рассмотрим операцию И: С = А И В (рис. 1 а).

Вентили А и В установлены на трубе последовательно, поэтому вода из крана С течет, только если они оба открыты. Если же установить вентили на две параллельные трубы, соединяющиеся в одну, то такая система будет выполнять операцию ИЛИ: если хотя бы один из вентилей А или В открыт, вода из крана С потечет, т.е. С = А ИЛИ В (рис. 1 б). На рис. 1 в представлена система, выполняющая операцию НЕ: если вентиль А закрыт, то вода протекает в кран В, если же он открыт, то вся вода стекает в «запасную» трубу, и через кран В не течет, т.е. В = НЕ А.

Рис. 1.

«Водопроводная» модель

315

Можно ли перенести те же системы из области гидродинамики в область электроники, т.е. создать электронные логические схемы? Ясно, что для этого понадобятся устройства, подобные вентилям на трубах, которые в зависимости от установленного положения либо пропускают воду по трубе, либо нет. «Электронные вентили» должны обладать подобными свойствами, т.е. регулируемой проводимостью электрического тока. Оказывается, именно триод и транзистор могут выполнять функции вентиля в электрической схеме. Чтобы понять, как это возможно, надо разобраться в физических принципах работы триода и транзистора.

Список литературы

Boole G. The mathematical analysis of logic... - Cambridge, 1847. - 82 p.

Boole G. The mathematical analysis of logic = (Математический анализ логики). - New York: Philosophical Library, 1948 [1847]. - 82 p.

Boole G. An investigation of the laws of thought = (Исследование законов мышления) - New York: Dover Publications, 1951 [1854]. - 424 p.

Математика XIX века. Математическая логика. Алгебра. Теория чисел. Теория вероятностей / Под ред. Колмогоров А.Н., Юшкевич А.П. - М.: Наука. - Т. 1. - 1978.

ВладимировД.А. Булевы алгебры. - М.: Наука, 1969. - 320 с.

Гуров С.И. Булевы алгебры, упорядоченные множества, решетки: Определения, свойства, примеры. - М.: Либроком, 2013. - 352 с.

«Водопроводная модель» операций булевой алгебры. - Mode of access: http://elementy.ru/lib/164570/164572 (Дата посещения 24.06.2015.)

Сост. В. С. Авдонин

316

i Надоели баннеры? Вы всегда можете отключить рекламу.