Как Аристотель изобрёл компьютер
Философы, на которых он повлиял, заложили основу для технологической революции, преобразовавшей наш мир.
В журнале TheAtlantic вышла отличная статья Криса Диксона (Сhris Dixon) о зарождении и развитии математической логики, которая легла в основу компьютерной технологической революции. Спасибо Сергею Карелову за привлечение внимания к данной статье. Ниже можно ознакомиться с её переводом.
“История компьютеров часто рассказывается как история объектов, от абака (счёт) до механизма Бэббиджа, включая машины для взлома кода времён Второй мировой войны. На самом деле это лучше воспринимать, как историю идей, преимущественно, возникших из математической логики, неясной и догматической дисциплины, которая впервые была разработана в XIX веке. Математическая логика была впервые разработана философами-математиками, в первую очередь Джорджем Булем (George Boole) и Готлобом Фреге (Gottlob Frege), которые сами были вдохновлены мечтой Лейбница (Gottfried Wilhelm Leibniz) об универсальном «понятийном языке» и древней логической системой Аристотеля (Aristotle).
Математическая логика изначально считалась безнадежно абстрактным предметом, не подходящим для практического применения. Как заметил один компьютерный ученый: «Если в 1901 году талантливому и отзывчивому аутсайдеру было предложено изучить науки и назвать отрасль, которая была бы наименее плодотворной в предстоящем столетии, его выбор вполне мог бы опираться на математическую логику». И все же, это обеспечило основу для области, которая оказала большее влияние на современный мир, чем любая другая.
Эволюция информатики из математической логики достигла своей кульминации в 1930-х годах, с двумя важными статьями: «Символический анализ коммутационных и релейных схем» Клода Шеннона (Claude Shannon) и «О вычисляемых числах с применением к Проблеме разрешения (нем. Entscheidungsproblem)» Алана Тьюринга (Alan Turing). В истории компьютерных наук Шеннон и Тьюринг — две заметные фигуры, но важность философов и логиков, которые им предшествовали, часто упускается из виду.
Популярная история информатики описывает работу Шеннона, как «возможно, самую важную, а также самую известную, магистерскую диссертацию века». Шеннон написал её будучи студентом-электротехником в Массачусетском технологическом институте. Его советник Ванневар Буш (Vannevar Bush) построил прототип компьютера, известного как Дифференциальный анализатор, который мог быстро вычислять дифференциальные уравнения. Устройство было главным образом механическим, с подсистемами, управляемыми электрическими реле, которые были организованы импровизированным образом, поскольку систематическая теория, лежащая в основе схемы, еще не существовала. Тема диссертации Шеннона возникла после того, как Буш рекомендовал ему попытаться найти такую теорию.
«Математика может быть определена как предмет, в котором мы никогда не знаем, о чем мы говорим».
Работа Шеннона во многом является типичной электротехнической диссертацией, наполненной уравнениями и схемами электрических цепей. Что необычно, так это то, что диссертация в основном ссылалась на «Законы мысли» Джорджа Буля — произведение математической философии 90-летней давности.
Сегодня имя Буля хорошо известно компьютерным ученым (многие языки программирования имеют базовый тип данных, называемый булевым), но в 1938 году он редко читался за пределами факультетов философии. Сам Шеннон столкнулся с работой Буля в классе философии. «Просто случилось так, что никто больше не был знаком с двумя областями одновременно», — прокомментировал он позже.
Буля часто описывают как математика, но он считал себя философом, идущим по стопам Аристотеля. «Законы Мыслей» начинаются с описания его целей, изучения фундаментальных законов действия человеческого разума:
«Замысел нижеследующего трактата состоит в том, чтобы исследовать фундаментальные законы тех операций ума, посредством которых осуществляется рассуждение; Выражать их на символическом языке Исчисления и на этом основании устанавливать науку о Логике … и, наконец, собирать … некоторые вероятные намеки относительно природы и строения человеческого разума».
Затем он воздает должное Аристотелю, изобретателю логики, оказавшему первостепенное влияние на его собственную работу:
«В своей древней и схоластической форме предмет логики почти исключительно связан с великим именем Аристотеля. Поскольку она была представлена Древней Греции в частично технических, частично метафизических изысканиях [трактата] «Органон», такой, почти без существенных изменений, она осталась и по сей день».
Попытка улучшить логическую работу Аристотеля была интеллектуально смелым шагом. Логика Аристотеля, представленная в состоящем из шести частей «Органоне», занимала центральное место в академическом каноне уже более 2000 лет. Широко распространено мнение, что Аристотель написал почти все, что можно было сказать по этой теме. Великий философ Иммануил Кант (Immanuel Kant) прокомментировал, что, начиная с Аристотеля, логика была «неспособна сделать ни шага вперед, а потому кажется, что вся тематика завершена и раскрыта».
Основное наблюдение Аристотеля состояло в том, что истинность или ложность аргументов базировалась на их логической структуре, независимо от содержания входящих слов. Наиболее известная схема аргументов, которую он обсуждал, называется силлогизмом:
Все люди смертны.
Поэтому Сократ смертен.
Вы можете заменить «Сократа» любым другим объектом и «смертным» с любым другим предикатом, и аргумент остается в силе. Справедливость аргумента определяется исключительно логической структурой. Логические слова — «все», «является», «являются» и «поэтому» — выполняют всю работу.
Аристотель также определил ряд базовых аксиом, из которых он вывел остальную часть своей логической системы:
Объект есть то, что он есть (Закон Идентичности)
Никакое утверждение не может быть, как истинным, так и ложным (Закон непротиворечия)
Каждое утверждение либо истинно, либо ложно (Закон исключенного третьего)
Эти аксиомы не предназначались для описания того, как люди на самом деле думают (это было бы областью психологии), но как должен мыслить идеализированный, совершенно рациональный человек.
Аксиоматический метод Аристотеля повлиял на еще более известную книгу «Элементы» Евклида (Euclid’s Elements), которая, по оценкам, уступает только Библии по количеству печатных изданий.
Являясь книгой о геометрии, «Элементы» тем не менее, стали стандартным учебником для обучения строгим дедуктивным рассуждениям. Авраам Линкольн (Abraham Lincoln) однажды сказал, что он научился приводить убедительные доводы, изучая Евклида). В системе Евклида геометрические идеи были представлены как пространственные диаграммы. Геометрию продолжали практиковать таким образом до тех пор, пока Рене Декарт (René Descartes),в 1630-х годах не показал, что геометрию можно представить в виде формул. Его «Дискурс о методе» (Discourse on Method) был первым математическим текстом на Западе, популяризирующим то, что теперь является стандартной алгебраической нотацией — x, y, z для переменных, a, b, c для известных величин и т. д.
Алгебра Декарта позволила математикам выйти за пределы пространственной интуиции, манипулируя символами, используя строго определенные формальные правила. Это перевело доминирующий способ математики с диаграмм на формулы, что привело, среди прочего, к развитию исчисления, изобретенному примерно через 30 лет после Декарта, независимо от Исаака Ньютона (Isaac Newton) и Готфрида Лейбница.
Целью Буля было сделать для логики Аристотеля то, что Декарт сделал для евклидовой геометрии: освободить его от пределов человеческой интуиции, придав ему точную алгебраическую нотацию. Чтобы привести простой пример, когда Аристотель писал:
Все люди [есть] смертны. (All men are mortal)
Буль заменил слова «люди» и «смертны» на переменные, а логические слова «все» и «есть» на арифметические операторы:
Что можно было бы интерпретировать как «Все в множестве x также находится в множестве y».
«Законы Мышления» создали новую научную область — математическую логику, которая в последующие годы стала одной из самых активных областей исследований для математиков и философов. Бертран Рассел (Bertrand Russell) назвал «Законы Мышления» «работой, в которой была открыта чистая математика».
Понимание Шеннона заключалось в том, что система Буля может быть отображена непосредственно на электрические цепи. В то время в электрических схемах не было систематической теории, определяющей их конструкцию. Шеннон понял, что правильная теория будет «в точности аналогична исчислению высказываний, используемых в символическом изучении логики».
Он показал соответствие между электрическими цепями и булевыми операциями в простой схеме:
Схема Шеннона: от электрических цепей до символической логики (University of Virginia)
Эта аналогия позволила ученым-компьютерщикам импортировать десятилетия работы Буля по логике и математике и последующих логиков. Во второй половине своей работы Шеннон показал, как Булеву логику можно использовать при создании схемы для добавления двух цифр двоичного кода.
Объединив эти схемы суммирования, можно было бы построить произвольно сложные арифметические операции. Эти схемы станут основными строительными блоками того, что сейчас известно, как арифметические логические блоки, ключевой компонент современных компьютеров
Схема суммирования Шеннона (University of Virginia)
Другим способом охарактеризовать достижения Шеннона является то, что он первым выделил логический и физический уровни компьютеров. (Это различие стало настолько фундаментальным для компьютерной науки, что для современных читателей это может показаться удивительным, как это было в то время — напоминание о том, что «философия одного столетия — это здравый смысл следующего»).
Со времени работы Шеннона на физическом уровне компьютеров был достигнут значительный прогресс, включая изобретение транзистора в 1947 году Уильямом Шокли (William Shockley)
и его коллегами из Bell Labs. Транзисторы — это значительно улучшенные версии электрических реле Шеннона — наиболее известный способ физически кодировать логические операции. В течение следующих 70 лет полупроводниковая промышленность упаковывала все больше и больше транзисторов в меньшие пространства. В 2016 году iPhone имеет около 3,3 млрд. транзисторов, каждый из которых является «реле-переключателем», как показано на диаграммах Шеннона.
Пока Шеннон демонстрировал, как наносить логику на физический мир, Тьюринг показал, как проектировать компьютеры на языке математической логики. Когда Тьюринг написал свою статью в 1936 году, он пытался решить «проблему решения», впервые идентифицированную математиком Дэвидом Гильбертом (David Hilbert), который задался вопросом, существует ли алгоритм, который мог бы определить, является произвольное математическое выражение истинным или ложным. В отличие от работы Шеннона, статья Тьюринга очень технична. Его главное историческое значение заключается не в его ответе на решение проблемы, а в шаблоне для компьютерного дизайна, который он предоставлял на этом пути.
Тьюринг работал в традиции, уходящей к Готфриду Лейбницу, философскому гиганту, который развивал исчисление независимо от Ньютона. Среди многочисленных вкладов Лейбница в современную мысль, одной из самых интригующих была идея нового языка, которую он назвал «универсальной характеристикой» (universal characteristic), которая, как он предполагал, могла представлять все возможные математические и научные знания. Вдохновленный отчасти религиозным философом 13-го века Раймундом Луллием (Ramon Llull), Лейбниц предположил, что язык будет идеографическим, как египетские иероглифы, за исключением того, что символы будут соответствовать «атомным» понятиям математики и науки. Он утверждал, что этот язык дал бы человечеству «инструмент», который мог бы усилить человеческий разум «в гораздо большей степени, чем оптические инструменты», подобно микроскопу и телескопу.
Он также представлял себе машину, которая могла бы обрабатывать язык, который он назвал рационализатором исчисления.
Если возникнут разногласия, то между двумя философами необходимости в диспутах будет не больше, чем между двумя бухгалтерами. Ибо было бы достаточно взять их карандаши в свои руки и сказать друг другу: Calculemus — Давайте вычислим.
У Лейбница не было возможности развить свой универсальный язык или соответствующий ему аппарат (хотя он и изобрел относительно простую вычислительную машину, ступенчатый счетчик). Первая заслуживающая доверия попытка осуществить мечту Лейбница появилась в 1879 году, когда немецкий философ Готлоб Фреге опубликовал свой выдающийся логический трактат «Исчисление понятий» (Begriffsschrift). Воодушевленный попыткой Буля улучшить логику Аристотеля, Фреге разработал гораздо более продвинутую логическую систему. Логика, преподаваемая сегодня в классах философии и компьютерной науки — логика первого порядка или предикатов, — это лишь небольшая модификация системы Фреге.
Фреге обычно считают одним из самых важных философов XIX века. Среди прочего, ему приписывают активизацию того, что известный философ Ричард Рорти (Richard Rorty)
назвал «лингвистическим поворотом» в философии. Поскольку философия Просвещения была одержима вопросами знания, философия после Фреге стала одержима вопросами языка. Среди его учеников были два самых важных философа XX века — Бертран Рассел и Людвиг Витгенштейн (Ludwig Wittgenstein).
Важнейшим новшеством логики Фреге является то, что он намного точнее представляет логическую структуру обычного языка. Среди прочего, Фреге был первым, кто использовал квантификаторы («для каждого», «существует») и отделил объекты от предикатов. Он также первым разработал то, что сегодня является фундаментальными понятиями в компьютерной науке, такими как рекурсивные функции и переменные с областью действия и привязки.
Формальный язык Фреге — то, что он назвал своим «концепт-скриптом» — состоит из бессмысленных символов, которые управляются четко определенными правилами. Языку присваивается значение только посредством интерпретации, которая указана отдельно (это различие позже будет называться синтаксисом или семантикой). Это превратило логику в то, что выдающиеся компьютерные ученые Аллан Ньюэлл (Allan Newell) и Герберт Саймон (Herbert Simon) назвали «символьной игрой», «играли с бессмысленными жетонами в соответствии с определенными чисто синтаксическими правилами».
Все значения были очищены. У одного была механическая система, о которой можно было доказать различные вещи. Таким образом, прогресс был достигнут прежде всего путем ухода от всего, что, казалось, имело отношение к смыслу и человеческим символам.
Как Бертран Рассел заметил: «Математика может быть определена как предмет, в котором мы никогда не знаем о чём мы говорим, и является ли то, что мы говорим, верно».
Неожиданным следствием работы Фреге было обнаружение слабых сторон в основах математики. Например, «Элементы» Евклида, считавшиеся золотым стандартом логической строгости в течение тысяч лет, оказались полными логических ошибок. Поскольку Евклид использовал обычные слова типа «линия» и «точка», он — и читатели веками — обманывали себя, делая предположения о предложениях, содержащих эти слова. Приведём один относительно простой пример, слово «линия» подразумевает, что, если вам даны три различные точки на линии, одна точка должна находиться между двумя другими. Но когда вы определяете «линию» с использованием формальной логики, выясняется, что «между-объектами» также должно определяться — что Евклид упустил. Формальная логика делает такие пробелы легко различимыми.
Это осознание создало кризис в фундаменте математики. Если «Элементы» — библия математики — содержали логические ошибки, то же происходило и в других областях математики? А что можно было сказать о науках, подобных физике, построенных на основе математики?
Хорошей новостью является то, что те же логические методы, которые используются для выявления этих ошибок, также можно использовать для их исправления. Математики начали перестраивать основы математики снизу-вверх. В 1889 году Джузеппе Пеано (Giuseppe Peano)
разработал аксиомы для арифметики, и в 1899 году Дэвид Гилберт сделал то же самое для геометрии. Гилберт также изложил программу формализации остальной части математики с особыми требованиями, которым должен соответствовать любой пример, в том числе:
· Полнота: должно быть доказательство того, что все истинные математические утверждения могут быть доказаны в формальной системе.
· Разрешимость. Должен существовать алгоритм для определения истины или ложности любого математического выражения. (Это «проблема Entscheidungs» или «проблема решения», упомянутая в статье Тьюринга.)
Восстановление математики таким образом, чтобы удовлетворить эти требования, стало известно, как программа Гилберта. Вплоть до 1930-х годов она была в фокусе группы логиков, включая Гилберта, Рассела, Курта Гёделя (Kurt Gödel), Джона фон Неймана (John Von Neumann),
Алонзо Чёрча (Alonzo Church) и, конечно же, Алана Тьюринга.
«В науке новизна возникает с трудом».
Программа Гилберта развивалась, по крайней мере, в двух направлениях. В первом случае логики создали логические системы, которые пытались доказать, что требования Гилберта либо выполнимы, либо нет.
В втором случае математики использовали логические понятия для восстановления классической математики. Например, система Пеано для арифметики начинается с простой функции, называемой функцией-преемником, которая увеличивает любое число на единицу. Он использует функцию-преемник для рекурсивного определения сложения, использует дополнение для рекурсивного определения умножения и т. д., пока не будут определены все операции теории чисел. Затем он использует эти определения вместе с формальной логикой для доказательства теорем об арифметике.
Историк Томас Кун (Thomas Kuhn) однажды заметил, что «в науке новизна возникает с трудом». Логика в эпоху программы Гилберта была бурным процессом созидания и разрушения. Один логик должен был создать сложную систему, а другой — разрушить ее.
Благоприятным инструментом разрушения было построение самореферентных, парадоксальных заявлений, которые показывали, что аксиомы, из которых они были получены, являются противоречивыми. Простой формой этого парадокса лжеца является предложение:
Это предложение ложно.
Если это правда, тогда оно ложно, и если оно ложно, то оно истинно, приводя к бесконечной петле само противоречия.
Рассел впервые обратил внимание на парадокс лжеца в математической логике. Он показал, что система Фреге позволила вывести противоречивые множества:
Пусть R — множество всех множеств, которые не являются членами самих себя. Если R не является членом самого себя, то его определение диктует, что оно должно содержать себя, а если оно содержит себя, то оно противоречит своему определению как множество всех множеств, которые не являются членами самих себя.
Это стало известно, как парадокс Рассела и было расценено как серьезный недостаток в достижении Фреге. (Сам Фреге был шокирован этим открытием и ответил Расселу: «Ваше открытие противоречия вызвало у меня наибольшее удивление и, я бы сказал, ужас, поскольку оно поколебало основание, на котором я намеревался построить свою арифметику.»)
Рассел и его коллега Альфред Норт Уайтхед (Alfred North Whitehead) выдвинули самую амбициозную попытку завершить программу Гилберта с Principia Mathematica, опубликованную в трех томах между 1910 и 1913 годами. Метод Principia был настолько подробным, что потребовалось более 300 страниц, чтобы добраться до доказательства того, что 1 + 1 = 2.
Рассел и Уайтхед пытались разрешить парадокс Фреге, представив так называемую теорию типов. Идея состояла в том, чтобы разделить официальные языки на несколько уровней или типов. Каждый уровень мог ссылаться на уровни ниже, но не на свои или более высокие уровни. Это разрешило автореферентные парадоксы, по сути, запретив автореференцию. (Это решение не пользовалось популярностью у логиков, но оно влияло на компьютерную науку — большинство современных компьютерных языков имеют функции, основанные на теории типов.)
Автореферентные парадоксы в конечном итоге показали, что программа Гилберта никогда не сможет быть успешной. Первый удар произошел в 1931 году, когда Гёдель опубликовал свою знаменитую теорему о неполноте, которая доказала, что любая последовательная логическая система, достаточно мощная, чтобы охватить арифметику, должна также содержать утверждения, которые являются истинными, но не могут быть доказаны, что они истинны. (Теорема Гёделя о неполноте является одним из немногих логических результатов, которые широко популяризировались благодаря книгам, таким как Гёдель, Эшер (Escher), Бах (Bach) и Новый Разум Императора (The Emperor’s New Mind)).
Последний удар наступил, когда Тьюринг и Алонсо Черч независимо доказали, что не существует алгоритма, определяющего, было ли произвольное математическое утверждение истинным или ложным. (Церковь сделала это, изобретя совершенно другую систему, называемую лямбда-исчислением, которая позже вдохновит компьютерные языки, такие как Lisp). Ответ на проблему решения был отрицательным.
Ключевое понимание Тьюринга появилось в первом разделе его знаменитой статьи 1936 года «О вычислимых числах с приложением к задаче о проблемах энцелад». Чтобы строго сформулировать проблему решения («проблема энцеладности»), Тьюринг сначала создал математическую модель того, что это означает быть компьютером (сегодня машины, соответствующие этой модели, известны как «универсальные машины Тьюринга»). Логик Мартин Дэвис описывает это так:
Тьюринг знал, что алгоритм обычно определяется списком правил, которым человек может следовать в точном механическом порядке, как рецепту в кулинарной книге. Он смог показать, что такого человека можно ограничить несколькими чрезвычайно простыми базовыми действиями, не изменяя конечный результат вычисления.
Затем, доказав, что ни одна машина, выполняющая только эти основные действия, не может определить, следует ли данный предполагаемый вывод из данных приницпов с использованием правил Фреге, он смог сделать вывод о том, что алгоритма для проблемы Entscheidungs не существует.
В качестве побочного продукта он нашел математическую модель универсальной вычислительной машины.
Затем Тьюринг показал, как программа может быть сохранена внутри компьютера наряду с данными, на которых она работает. В сегодняшнем лексиконе мы бы сказали, что он изобрел архитектуру «хранимой программы», которая лежит в основе большинства современных компьютеров:
До Тьюринга общее предположение заключалось в том, что при взаимодействии с такими машинами три категории — машина, программа и данные — были совершенно отдельными объектами. Машина была физическим объектом; Сегодня мы бы назвали это аппаратным средствами (hardware). В программе был план выполнения вычислений, возможно, воплощенный в перфокартах или соединениях кабелей в коммутационной панели. Наконец, данные представляли собой числовые данные. Универсальная машина Тьюринга показала, что четкость этих трех категорий является иллюзией.
Это была первая строгая демонстрация того, что любая вычислительная логика, которая может быть закодирована на аппаратном уровне, также может быть закодирована в программном обеспечении. Описанная архитектура Тьюринга позже была названа «архитектурой фон Неймана», но современные историки в целом согласны, что это пришло от Тьюринга, как, по-видимому, и сам фон Нейман.
Хотя на техническом уровне программа Гильберта была неудачной, усилия на этом пути продемонстрировали, что большие области математики могут быть построены из логики. И после прочтения Шеннона и Тьюринга — показало связи между электроникой, логикой и вычислительной техникой — теперь стало возможным экспортировать этот новый концептуальный механизм в компьютерный дизайн.
Во время Второй мировой войны эта теоретическая работа была претворена в жизнь, когда в правительственных лабораториях был призван целый ряд элитных логиков. Фон Нейман присоединился к проекту атомной бомбы в Лос-Аламосе, где он работал над компьютерным дизайном для поддержки физических исследований. В 1945 году он написал спецификацию EDVAC — первого хранимого-программного логического компьютера, который обычно считается основным источником для современного компьютерного дизайна.
Тьюринг присоединился к секретному подразделению в Блетчли-парке, северо-западнее Лондона, где он помог создавать компьютеры, которые способствовали взлому немецких кодов. Его самым долговременным вкладом в практический компьютерный дизайн была его спецификация ACE, или Automatic Computing Engine.
Как первые компьютеры, основанные на логической логике и архитектуре с хранимой программой, ACE и EDVAC были во многом схожи. Но у них также были интересные различия, некоторые из которых предвещали современные дебаты в компьютерном дизайне. Поддерживаемые фон Нейманом проекты были похожи на современные CISC («сложные») процессоры, обладающие значительными функциональными возможностями в аппаратной части. Дизайн Тьюринга больше походил на современные RISC («уменьшенные») процессоры, сводя к минимуму аппаратную сложность и уделяя больше внимания работе с программным обеспечением.
Фон Нейман считал, что компьютерное программирование — утомительное занятие. Тьюринг, напротив, заметил, что компьютерное программирование «должно быть очень увлекательным. Нет никакой реальной опасности, что он когда-либо станет работягой, поскольку любые процессы, которые являются полностью механическими, могут быть переданы самой машине».
С 1940-х годов компьютерное программирование стало значительно более сложным. Одно условие не изменилась до сих пор — программисты, определяющие правила для компьютеров. С философской точки зрения, мы бы сказали, что компьютерное программирование следовало в традиции дедуктивной логики, ветви логики, рассмотренной выше, которая касается манипулирования символами в соответствии с формальными правилами.
В последнее десятилетие или около того, программирование начало меняться с ростом популярности машинного обучения, которое включает в себя создание структур для машин, способных обучаться посредством статистического вывода. Это приблизило программирование к другой основной ветви логики — индуктивной логике, которая имеет дело с выводом правил из конкретных экземпляров.
Сегодня в самых перспективных машинных технологиях обучения используются нейронные сети, которые были впервые изобретены в 1940-х годах Уорреном Маккаллохом (Warren McCulloch)
и Уолтером Питтсом (Walter Pitts). Их идея состояла в том, чтобы разработать исчисление для нейронов, которое могло бы, подобно булевой логике, использоваться для построения компьютерных схем. Нейронные сети были известны лишь немногим пока десятилетия спустя их не объединили со статистическими методами, что позволяло им улучшаться по мере накопления большего количества данных. В последнее время, когда компьютеры становятся все более приспособленными к обработке больших наборов данных, эти методы дают замечательные результаты. Программирование в будущем, скорее всего, означает развитие нейронных сетей по всему миру и предоставление им возможности учиться.
Это стало бы достойным вторым актом в истории компьютеров. Логика начиналась, как способ понять законы мысли. Затем она помогла создать машины, которые могли бы рассуждать в соответствии с правилами дедуктивной логики. Сегодня дедуктивная и индуктивная логика объединяются для создания машин, которые и рассуждают, и учатся. То, что началось, по словам Буля, с исследования «о природе и строении человеческого разума», может привести к созданию новых умов — искусственных умов — которые когда-нибудь могут совпасть или даже превысить наши собственные.”