если только дискриминант не равен нулю; в этом случае мы получаем одну и ту же кривую дважды. При этом квадратичная форма представляет собой квадрат (px + qy)2 некоторой линейной формы. Изменение координат – это геометрическое искажение, преобразующее первоначальные кривые в соответствующие кривые для новых переменных. Если две кривые совпадали для первоначальных переменных, они совпадут и для новых. Так что дискриминанты должны быть связаны таким образом, что, если один из них обращается в нуль, то же самое делает и второй. Инвариантность – формальное название для такого соотношения.
Наблюдение Буля, связанное с дискриминантом, казалось всего лишь забавным фактом, до тех пор пока несколько математиков, самыми известными среди которых были Артур Кэли и Джеймс Джозеф Силвестр, не обобщили его для форм более высокого порядка с двумя или большим числом переменных. Эти выражения тоже имеют инварианты, влияющие также на значимые геометрические свойства связанной с ними гиперповерхности, определяемой приравниванием этой формы нулю. Из этого выросла целая отрасль, где математики зарабатывают себе рыцарские шпоры, вычисляя инварианты все более сложных выражений. Позже Гильберт (глава 19) доказал две фундаментальные теоремы, которые закрыли эту тему практически целиком, до тех пор пока она не ожила в более общей форме. Она и сегодня представляет интерес и имеет важные применения в физике, а новую жизнь ей придало развитие компьютерной алгебры.
Исследование, которое сделало Буля широко известным среди математиков и специалистов по информатике – и вообще в любом доме, где пользуются Гуглом, поскольку это вариант Булева поиска, – все больше занимало его мысли. Буль всегда видел в математических понятиях внутреннюю простоту. Ему нравилось формулировать общие принципы, выражать их в символьной форме – и дальше за него думали символы. В «Законах мышления» эта программа была реализована для правил формальной логики. Главной идеей произведения была интерпретация этих правил как алгебраических операций с символами, представляющими некие утверждения. Поскольку логика – не арифметика, некоторые из обычных алгебраических правил в ней могут оказаться неприменимы; с другой стороны, в ней могут возникнуть новые законы, не применимые к арифметике. Результат, известный как Булева алгебра, позволяет доказывать логические утверждения посредством алгебраических вычислений.
Книга начинается с предисловия, которое выдержано в уважительном тоне и обозначает место предлагаемой дискуссии в контексте существующей философии. Затем Буль переходит к существу дела – к математике – и для начала предлагает обсудить использование символов. Он поясняет, что речь идет о символах (он называет их «знаками»), представляющих логические утверждения, и особенно сосредоточивается на общих законах, которым они подчиняются. Он говорит, что будет обозначать класс, или набор, объектов, к которым применимо определенное общее имя, одной буквой, к примеру x. Если общее имя – «овца», то x – это класс всех овец. Класс может описываться прилагательным, к примеру «белый»; в этом случае мы получаем класс y всех белых объектов. Тогда произведение xy обозначает класс всех объектов, обладающих обоими свойствами, то есть класс всех белых овец. Поскольку этот класс не зависит от порядка, в котором называются определяющие его качества, то xy = yx. Аналогично если z– некоторый третий класс (в примере Буля x = реки, y = устья, z = судоходные), то (xy) z = x (yz). Это коммутативный (переместительный) и ассоциативный (сочетательный) законы стандартной алгебры в интерпретации, приспособленной к новому контексту.
Он отмечает один закон, который принципиально важен для всего этого дела, но не выполняется в обычной алгебре. Класс xx есть класс всех объектов, обладающих свойством, определяющим x, и свойством, определяющим x, так что он должен совпадать с x. Следовательно, xx = x. Так, класс объектов, которые суть овцы и еще раз суть овцы, – это просто класс всех овец. Этот закон можно записать также как x2 = x, и он представляет собой первый пункт, в котором законы Булевой алгебры отличаются от законов мышления обычной алгебры.
Далее Буль переходит к знакам, «посредством которых мы собираем части в единое целое или делим целое на части». Положим, к примеру, что x есть класс всех мужчин, а y – класс всех женщин. Тогда класс всех взрослых людей – мужчин и женщин – обозначается x + y. Здесь опять же действует коммутативный закон, который Буль формулирует явно, и ассоциативный закон, подпадающий под обобщающее заявление о том, что «законы идентичны» с законами алгебры. Поскольку, к примеру, класс европейских мужчин или женщин – это то же самое, что класс европейских мужчин или европейских женщин, дистрибутивный закон z (x + y) = zx + zy тоже выполняется, если z – класс всех европейцев.
Вычитание может быть использовано для исключения части объектов из класса. Если x представляет мужчин, а y – азиатов, то x – y представляет всех мужчин, которые не являются азиатами, и z (x – y) = zx – zy.
Возможно, самой поразительной особенностью этих формулировок является то, что речь идет вроде бы вовсе не о логике. Речь идет о теории множеств. Вместо того чтобы манипулировать логическими утверждениями, Буль работает с соответствующими им классами, охватывающими те объекты, для которых эти утверждения верны. Математики давно распознали двойственность этих концепций: каждый класс соответствует утверждению «принадлежит к классу»; каждое утверждение соответствует «классу объектов, для которых это утверждение верно». Это соответствие переводит свойства классов в свойства связанных с ними утверждений и наоборот.
Буль вводит эту идею посредством третьего класса символов, «при помощи которых выражаются отношения и при помощи которых мы формируем высказывания». К примеру, представим звезды как x, солнца[22] как y и планеты как z. Тогда утверждение «звезды – это солнца и планеты» можно будет записать как x = y + z. Так что высказывания – это равенства между выражениями с участием классов. Несложно сделать вывод, что «звезды, которые не планеты, являются солнцами»; то есть x – z = y. «Это, – говорит нам Буль, – соответствует алгебраическому правилу транспозиции» (переноса). Аль-Хорезми узнал бы в этом правиле аль-мукабалу (см. главу 3).
Вывод из всего этого состоит в том, что алгебра классов подчиняется тем же законам, что и обычная алгебра чисел, и еще странному новому закону x2 = x. В этот момент Буля осеняет очень умная мысль. Единственными числами, подчиняющимися этому закону, являются 0 = 02 и 1 = 12. Он пишет:
Тогда давайте представим себе алгебру, в которой символы x, y, z и т. п. принимают безразлично значения 0 и 1, и только их. Законы, аксиомы и процессы такой алгебры будут идентичны во всем своем объеме с законами, аксиомами и процессами алгебры логики. Одна только разница в интерпретации будет разделять их.
Это загадочное заявление можно интерпретировать как относящееся к функциям f(z, y, z, …), определенным на некотором списке символов, принимающих только значения 0 (ложь) и 1 (истина). Мы сегодня называем их Булевыми функциями. Упоминания заслуживает одна связанная с ними приятная теорема. Если f(x) – функция одного логического аргумента, то Буль доказывает, что
f(x) = f(1) x + f(0) (1 – x).
Более общее уравнение того же типа верно для любого числа аргументов, что приводит к систематическим методам обращения с логическими высказываниями.
Вооружившись этим принципом и другими общими результатами, Буль прорабатывает многочисленные примеры и показывает, как его рассуждения применимы к темам, которые заинтересовали бы читателей того времени. Среди этих тем и «Проявление бытия Бога и его атрибутов» (Demonstration of the being and attributes of God) Сэмюела Кларка – книга, состоящая из серии теорем, доказанных с использованием наблюдаемых фактов и различных «гипотетических принципов, значимость и универсальность которых полагается принимать a priori», и «Этика» Бенедикта Спинозы. При этом целью Буля было показать в точности, какие допущения использованы в выводах, сделанных этими авторами. В этом, возможно, проявились и квазиунитарианские воззрения самого Буля.
Прежде всякий анализ логики должен был быть словесным, с небольшим количеством символьных обозначений, просто для памяти. Аристотель разбирал силлогизмы – рассуждения примерно следующего содержания:
Все люди смертны.
Сократ – человек.
Следовательно, Сократ смертен –
с вариантами использования слов «все» и «некоторые». Средневековые ученые подразделяли силлогизмы на 24 типа; каждый из этих типов имел мнемоническое название. К примеру, Bocardo относится к силлогизмам вида:
Некоторые свиньи имеют закрученные хвостики.
Все свиньи – млекопитающие.
Следовательно, некоторые млекопитающие имеют закрученные хвостики.
Здесь на формат силлогизма «bOcArdO» указывают гласные; O = «некоторые», A = «все». По такому же принципу названы и другие типы силлогизмов. Но никакой системы записи нотации для логики до Буля никто не предлагал. Обратите внимание: если заменить «некоторые» на «все», получив при этом:
Все свиньи имеют закрученные хвостики.
Некоторые свиньи – млекопитающие.
Следовательно, все млекопитающие имеют закрученные хвостики –