
Другими словами, вычислимость функции f на машине Тьюринга
при помощи программы P означает следующее. При данных n
1
, . . . , n
k
∈
N мы записываем на ленту слово 01
n
1
. . . 01
n
k
, устанавливаем головку на
первую позицию и запускаем машину работать по программе P из состо-
яния q
1
. Тогда если f(n
1
, . . . , n
k
) определено, то машина через некоторое
время остановится и число единиц на ленте будет равно f(n
1
, . . . , n
k
), а
если это значение не определено, то машина будет работать бесконечно.
Теорема 8 Каждая функция, вычислимая на машине Шенфилда, вы-
числима на машине Тьюринга.
Доказательство. Пусть f(x
1
, . . . , x
k
) — частичная k-местная функ-
ция, вычислимая на машине Шенфилда по программе P
46
и M — неко-
торое число, которое больше чем k и больше чем номер любого регистра,
упоминаемого в программе P .
Ниже нам предстоит написать программу для машины Тьюринга Q,
моделирующую работу машины Шенфилда по программе P . Программа
Q, согласно определению программы для машины Тьюринга, для любо-
го состояния q (из списка упомянутых в ней и отличных от q
0
состояний)
и любого символа a ∈ Σ ∪ {n, m} должна содержать команду qa → . . ..
Однако некоторые команды программы, которую мы напишем, никогда
не смогут исполниться, если машина начнет свою работу из состояния,
задаваемого конфигурацией hw(n
1
, . . . , n
k
), q
1
, 1i при произвольных нату-
ральных n
1
, . . . , n
k
(то есть в случае, когда мы используем эту программу
для вычисления k-местной функции). В связи с этим мы, чтобы не пи-
сать лишнего, примем следующее соглашение: если команда qa → . . .
отсутствует в приведенном ниже списке команд, то эта команда имеет
вид qa → qR.
Пусть программа P состоит из n строк. Программа Q будет содер-
жать команды qa → . . . для a ∈ Σ ∪ {n, m} и q ∈ {q
1
, . . . , q
M−k+1
} ∪
{q
0
1
, q
0
2
, q
0
3
, q
0
4
}∪
S
n
m=1
{q
m
1
, . . . , q
m
s(m)
}. Мы считаем, что все упомянутые здесь
состояния различны. Кроме того, примем следующее соглашение: для
m > n или m = 0 запись q
m
1
обозначает состояние q
0
1
.
Способ, которым программа Q моделирует работу машины Шенфил-
да по программе P , заключается в следующем. Предположим, что мы
используем программу P для вычисления f(n
1
, . . . , n
k
). В процессе вы-
числения машина Шенфилда, работая по шагам, последовательно меняет
46
P — программа для машины Шенфилда.
71