число У порождает число Z, то МУ порождает M(Z). Например если У порождает Z, то 3У порождает 3(Z), то есть ассоциат Z; 4 У порождает 4(Z); 5 У порождает 5(Z); 34 У порождает 34(Z) и т. д. Точно так же для любого операционного числа М, если У порождает Z, то МУ порождает М(Z). В частности, если такое У, порождающее Z, оказывается равным 2Z, тогда всегда справедливо утверждение, что M2Z порождает M(Z). Например, число 32Z порождает число 3(Z) — ассоциат Z; число 42Z порождает число 4(Z), то есть при любом операционном числе М число M2Z порождает число M(Z). Собственно говоря, мы даже могли бы определить M(Z) как число, порождаемое числом M2Z.
— Это все понятно, — сказал Мак-Каллох.
— Прекрасно, — сказал Крейг, — однако этот факт легко забывается, поэтому разреши мне повторить его еще раз, с тем чтобы он хорошенько отложился у тебя в голове. Итак, утверждение 1: для любого операционного числа М и для любых чисел У и Z, если число У порождает число Z, число МУ порождает число M(Z). В частности, число M2Z порождает число M(Z).
— Отсюда, — продолжал Крейг, — а также из того факта, который ты обнаружил для своей первой машины и который справедлив и для нынешней, очевидно следует, что для любого заданного операционного числа М должно существовать некое число 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Х будет тоже