— Отсюда, — продолжал Крейг, — а также из того факта, который ты обнаружил для своей первой машины и который справедлив и для нынешней, очевидно следует, что для любого заданного операционного числа М должно существовать некое число X, порождающее М(Х), — то есть в данном случае число X порождает результат применения операции М к числу X. При этом, зная число М, такое X можно легко найти с помощью простого и вполне общего правила.
20. Итак, Крейг открыл важное правило, которое мы в дальнейшем будем называть принципом Крейга, а именно: для любого операционного числа М всегда существует некоторое число X, такое, что оно порождает М(Х). Как же доказать принцип Крейга и как при заданном числе М найти число X? Например, какое число X порождает 543 (Х)? Или какое число X порождает повторение обращения ассоциата X? Или, наконец, какое X порождает ассоциат повторения обращения X — то есть какое X порождает 354 (Х)
— Я приготовил для тебя еще несколько задачек, — сказал Мак-Каллох, — однако сегодня уже поздно. Оставайся-ка ночевать у меня. А завтра мы с тобой поговорим подробнее.
У Крейга как раз было несколько свободных дней, и поэтому он с удовольствием принял приглашение Мак-Каллоха.
Наутро после плотного завтрака — а хозяин оказался человеком очень гостеприимным — Мак-Каллох предложил Крейгу следующие задачи.
21. Найти число X, которое порождает число 7Х7Х.
22. Найти число X, которое порождает обращение числа 9Х.
23. Найти число X, которое порождает ассоциат числа 89х.
— Очень мило! — воскликнул Крейг, после того как покончил с решением последней задачи. — Ни одну из их задач нельзя решить с помощью того принципа, о котором я тебе рассказывал вчера.
— Вот именно! — рассмеялся Мак-Каллох.
— И все-таки, — возразил Крейг, — решение всех грех задач подчиняется некой общей идее: во-первых, конкретные числа 7, 5 и 89 не играют никакой роли; для любого данного числа А существует определенное число X, которое порождает повторение числа АХ, еще какое-то X порождает обращение АХ; наконец, есть X, порождающее ассоциат числа АХ. Кроме того, существует также некое число X, которое порождает повторение обращения числа АХ или, например, обращение ассоциата АХ. Фактически это означает, что для любого операционного числа М и для любого заданного числа А должно существовать некоторое число X, которое порождает М(АХ), то есть число, полученное в результате применения операции М к числу АХ.
24. Крейг, разумеется, был прав: для любого операционного числа М и для любого заданного числа А должно найтись некоторое число X, которое порождает число М(АХ). Будем называть это правило вторым принципом Крейга. Как же доказать этот принцип? И как при заданном операционном числе М и заданном А найти в явном виде такое число X, которое порождает М(АХ)?
25. — Мне только что пришел в голову еще один вопрос, — сказал Мак-Каллох. — Пусть для любого числа X величина X обозначает обращение этого X. Можешь ли ты найти такое число X, которое порождает Х67? (Иначе, существует ли такое число X, которое порождает обращение числа X, за которым следует число 67?) В общем виде этот вопрос можно сформулировать так: действительно ли для любого числа А существует некоторое число X, которое порождает ХА?
26. — Мне в голову пришел еще один вопрос, — сказал Мак-Каллох. — Существует ли такое число X, которое порождает повторение числа Х67? Или, в более общем виде: действительно ли для любого числа А существует такое число X, которое порождает повторение числа ХА? Или, если задать вопрос в еще более общем виде: действительно ли для любого числа А и для любого операционного числа М должно существовать некоторое число X, которое порождает м(ХА)?
Принцип Крейга справедлив не только для второй машины Мак-Каллоха, но и для первой — а в сущности и для любой машины, в которую заложены правила 1 и 2. Это означает, что, как бы мы ни расширяли первую машину Мак-Каллоха, вводя в нее новые правила, работа результирующего устройства все равно будет подчиняться принципу Крейга (а фактически обоим его принципам).
Первый принцип Крейга связан с одним из знаменитых результатов теории вычислимых функций, известным под названием теоремы о рекурсии (или, как ее иногда называют, теоремы о неподвижной точке). С помощью правил 1 и 2, предложенных Мак-Каллохом, этот результат получается, пожалуй, наиболее простым способом. Кроме того, эти правила обладают еще одним занятным свойством (связанным уже с другим знаменитым результатом теории вычислимых функций, известным под названием теоремы о двойной рекурсии), о котором пойдет речь в следующей главе. Наконец, все эти сведения имеют отношение к теории самовоспроизводящихся машин и теории клонирования.
Решения
1. — С помощью твоей теперешней машины можно получить бесконечное множество чисел, которые порождают сами себя, — сказал Крейг.
— Это верно, — согласился Мак-Каллох. — Но как ты это докажешь?
— Начнем с того, — сказал Крейг, — что будем называть некое число SA числом, если оно обладает тем свойством, что для любых чисел X и У в случае, если X порождает V, число SX порождает ассоциат У. До того как ты ввел свое новое правило, единственным А-числом у нас было число 3. Однако для твоей нынешней машины существует бесконечное множество А-чисел, причем для любого А-числа S число S2S обязательно должно порождать само себя, поскольку число S2S порождает ассоциат числа S, который и есть S2S.
А как ты догадался, что существует бесконечное множество А-чисел? — спросил Мак-Каллох.
Ну, во-первых, — ответил Крейг, — надеюсь, ты не будешь возражать, что при любых числах X и У, если число X порождает У, то число 44Х будет также порождать У?
— Удачное наблюдение! — воскликнул Мак-Каллох. — Конечно, ты прав: ведь если X порождает У, то число 4Х порождает обращение числа У, а значит, число 44 X должно порождать обращение обращения У — то есть само это число У.
— Прекрасно, — продолжал Крейг. — Таким образом, если X порождает У, то число 44Х будет тоже порождать У, и поэтому число 344Х будет порождать ассоциат числа У. Значит, 344 тоже представляет собой А-число. А раз 344 — это А-число, то число 3442344 должно также порождать само себя!
— Замечательно, — сказал Мак-Каллох, — теперь у нас есть уже два числа — 323 и 3442344, которые порождают сами себя. Но разве это позволяет нам сделать вывод о бесконечном множестве таких чисел?
— Видишь ли, — сказал Крейг, — если число S является А-числом, то А-числом должно быть также и число S44, поскольку для любых чисел X и У, если X порождает У, то число 44Х тоже порождает У, а значит, число S44X порождает ассоциат У, поскольку S по условию есть А-число. Таким образом, А-числами являются такие числа, как 3, 344, 34444, и вообще А-числом является любое число, состоящее из тройки, за которой следует любое четное число четверок. Итак, число 323 порождает само себя; то же самое можно сказать о числах 3442344, 34444234444 и т. д. Следовательно, мы действительно имеем бесконечное множество решений.
— Но, между прочим, — добавил Крейг, — ведь существуют и другие решения. Например, числа 443 и 44443 тоже представляют собой А-числа. А-числом является также любое число, состоящее из четного числа четверок, тройки и опять четного числа четверок, как, например, число 4434444,— ведь для любого такого числа S число S2S порождает самое себя.
2. Одно из решений — это число 43243. В самом деле, поскольку число 243 порождает 43, то число 3243 порождает ассоциат числа 43. Значит, число 43243 должно порождать обращение ассоциата числа 43, другими словами, обращение числа 43243 (поскольку число 43243 — это ассоциат числа 43). Итак, число 43243 порождает обращение самого себя.