Выражаясь точнее, метод Джоунса и Матиясевича позволяет отождествить утверждение о том, что некоторая конкретная программа не остановится, с утверждением о том, что одно из уравнений из определённого класса диофантовых уравнений не имеет решений в целых числах. Как и в оригинальной версии проблемы остановки для компьютеров, здесь, если решение существует, это легко доказать: всё, что требуется, — это подставить правильные числа и проверить, равными ли получились левая и правая части уравнения. Доказать же несуществование решения (если оно действительно отсутствует) намного сложнее.
Класс уравнений строится исходя из базового уравнения, которое содержит конкретную переменную k, называемую параметром и принимающую значения 1, 2, 3 и т.д. (см. рисунок ниже). Таким образом, имеется бесконечно большой класс уравнений (по одному уравнению на каждое значение параметра k), которые можно получить из одного базового уравнения для каждой программы из «семейства» программ. Математическое утверждение о том, что диофантово уравнение с параметром k не имеет решения, равносильно утверждению, что k-я компьютерная программа никогда не остановится. С другой стороны, если k-я программа останавливается, то соответствующее уравнение имеет в точности одно решение. В некотором смысле истинность (или ложность) утверждений этого типа является математически неопределённой, поскольку она изменяется непредсказуемым образом, когда параметр k принимает различные значения.
«Класс» уравнений порождается путём придания параметру k базового уравнения различных целочисленных значений.
Мой подход к непредсказуемости в математике подобен этому, но он приводит к гораздо более высокой степени случайности. Вместо «арифметизации» компьютерных программ (которые могут или не могут останавливаться) как класса диофантовых уравнений, я применяю метод Джоунса и Матиясевича для арифметизации единственной программы вычисления k-го разряда Ωn.
Этот метод основан на любопытном свойстве чётности биномиальных коэффициентов, которое было замечено Э.Люка сто лет назад, но до сих пор оставалось неоценённым по достоинству. Биномиальные коэффициенты представляют собой множители при степенях xk в разложении выражений вида (x+1)n. Эти коэффициенты легко вычисляются с помощью так называемого треугольника Паскаля (см. рисунок ниже).
В теореме Люка утверждается, что коэффициент при xk в разложении (x+1)n нечётен только тогда, когда каждый разряд в двоичном представлении числа k меньше или равен соответствующему разряду в двоичном представлении числа n (сопоставление начинается с правых элементов). Это можно выразить проще, сказав, что коэффициент при xk в разложении (x+1)n нечётен, если для каждого разряда k, равного 1, соответствующий разряд n тоже равен 1; в противном случае коэффициент чётен. Например, коэффициент при x2 в разложении бинома (x+1)4 равен 6, т.е. чётный. Соответственно единица в двоичном представлении двойки (10) не стоит на том же месте, что и единица в двоичном представлении четвёрки (100).
Треугольник Паскаля (вверху) служит для вычисления коэффициентов разложения выражений вида (x+1)n. Начав с треугольника из единиц, вычисляют значения на каждом последовательном уровне путём сложения соседних чисел; последней ставят единицу. Таким образом можно определить, например, что
(x + 1)4 = 1x4 + 4x3 + 6x2 + 4x + 1x0.
Этот треугольник можно превратить в привлекательный фрактальный узор, если заменить нечётные коэффициенты единицами, а чётные — нулями (внизу). Узор демонстрирует свойство коэффициентов, применяемое при «арифметизации» компьютерных программ, которая преобразует их в алгебраические уравнения.
Хотя идея арифметизации проста и изящна, выполнение этого построения представляет собой громоздкую программистскую задачу. Тем не менее мне казалось, что это может быть интересным. Поэтому я разработал программу «компилятор» для получения уравнений из программ для «регистровой машины». Регистровая машина представляет собой компьютер, состоящий из небольшого множества регистров для хранения чисел произвольной величины. Разумеется, это абстракция, поскольку любой реальный компьютер имеет регистры ограниченного объёма.
Подав на вход реального компьютера, имеющего программу-компилятор, программу регистровой машины, которая выполняет инструкции на языке Лисп, получим через несколько минут на выходе уравнение длиной около 200 страниц, содержащее примерно 17000 неотрицательных целых переменных. Итак, я могу вывести диофантово уравнение с параметром k, кодирующее k-й разряд Ωn, путём простой подстановки программы на Лиспе (в двоичной форме), предназначенной для вычисления k-го разряда Ωn, в 200-страничное уравнение. Для любой заданной пары значений k и n диофантово уравнение имеет в точности одно решение, если k-й разряд Ωn равен 1, и не имеет решения, если k-й разряд Ωn равен 0.
Арифметизация Ω выполняется путём подстановки двоичного представления конкретной программы для вычисления k-го разряда Ωn (в двоичной форме) вместо переменной в уравнение, полученное из программы для универсального компьютера. Ωn является n-й аппроксимацией Ω — вероятности остановки компьютера при условии, что биты, составляющие его программу, определены случайным образом, например при помощи бросания монеты.
Поскольку это верно для любой пары значений k и n, можно, вообще говоря, зафиксировать k и систематически увеличивать значение n, вычисляя k-й разряд Ωn для каждого значения n. Для малых значений n k-й разряд Ωn будет беспорядочно флуктуировать между 0 и 1. В конце концов, однако, он станет равным 1 или 0, поскольку для очень больших значений n он должен быть равен k-му разряду Ω, который неизменен. Следовательно, диофантово уравнение в действительности имеет бесконечное число решений для конкретного значения своего параметра k, если k-й разряд Ω оказывается равным 1, и лишь конечное число решений, если k-й разряд Ω оказывается равным 0. Таким образом, вместо того чтобы выяснять, имеет ли диофантово уравнение решения для каждого значения своего параметра k, я узнаю, имеет ли оно бесконечно много решений.
На первый взгляд может показаться, что мы мало выигрываем, спрашивая «имеет ли уравнение бесконечно много решений», вместо «имеет ли оно вообще решения». Но на самом деле это очень важное различие: ответы на эти вопросы логически независимы. Два математических утверждения считаются логически независимыми, если одно нельзя вывести из другого, т.е. если ни одно из них не является логическим следствием другого. Это понятие независимости обычно отличают от понятия независимости, используемого в статистике. Последнее заключается в том, что два случайных события называются независимыми, если исход одного из них не оказывает влияния на исход другого. Например, результат бросания монеты никоим образом не влияет на результат следующего бросания: эти результаты статистически независимы.
Я использую оба понятия независимости. Ответ на мой вопрос для одного значения k логически независим от ответа на этот вопрос для другого значения k. Причина заключается в том, что конкретные разряды Ω, определяющие ответ, независимы статистически.
Легко доказать, что примерно для половины значений k число решений конечно, а для другой половины число решений бесконечно, однако не существует способа «сжать» эти ответы в формулу или набор правил: они как бы «подражают» результатам бросания монеты. Поскольку Ω алгоритмически случайна, то даже знание ответов для 1000 значений k не поможет найти правильный ответ для 1001-го значения k. Устанавливая, имеет ли конкретное уравнение конечное или бесконечное число решений, математик находится в положении игрока, бросающего монету. Какие бы аксиомы и доказательства мы ни применяли для диофантова уравнения с одним значением k, они будут неприменимы для того же самого уравнения при другом значении k.
Математическое рассуждение оказывается в этом случае в принципе бесполезным, поскольку нет логических взаимосвязей между полученными таким способом диофантовыми уравнениями. Будь ты хоть семи пядей во лбу, выведи длиннейшее доказательство, используй сложнейшие математические аксиомы, построенный бесконечный ряд предложений, устанавливающий, конечно или бесконечно число решений диофантова уравнения, окажется бесполезным, если k увеличить. Итак, даже в элементарных разделах теории чисел, связанных с диофантовыми уравнениями, возникают случайность, неопределённость и непредсказуемость.
Но каким же образом теорема Гёделя о неполноте, проблема остановки Тьюринга и моя работа влияют на математику? Большинство математиков не обращают внимания на эти результаты. Конечно, в принципе они согласны, что любая конечная система аксиом неполна, но на практике они игнорируют этот факт, как непосредственно не относящийся к их работе. Но иногда, к сожалению, его нельзя игнорировать. Хотя в исходном виде теорема Гёделя казалась применимой лишь к необычным математическим предложениям, не имеющим практического интереса, алгоритмическая теория информации показала, что неполнота и случайность являются естественными и распространёнными повсюду свойствами. Это подсказывает мне, что следует более серьёзно относиться к возможности поиска новых аксиом относительно целых чисел.