
6. m
0
+ N + 8k + n + 4 < s 6 m + N + 8k + n + 4. Пусть t = s −
m
0
−N −8k −n −4. Действуем почти так же, как в первом случае.
Если C
t
— это либо команда вида INC i, либо команда DEC i, l
для l 6 m
0
, либо макрокоманда, то полагаем F
s
= C
t
. В противном
случае C
t
— это команда DEC i, l для l > m
0
. Полагаем F
s
равным
DEC i, l + N + 8k + n + 4.
Описание программы Q
0
закончено. Из этого описания видно, что
программа Q
0
содержит на одну макрокоманду меньше, чем программа
Q. Действительно, команда с номером m
0
заменена списком стандарт-
ных команд с номерами m
0
, . . . , m
0
+ N + 8k + n + 4. В приведенном
выше описании в пунктах 1 и 6 описана модификация команд програм-
мы Q с номерами, не равными m
0
. Те команды, номера которых больше
m
0
, из-за вставки меняют свои номера и поэтому в некоторых командах
DEC i, n требуется изменить n на новый номер. Команды, которые встав-
ляются в программу вместо команды с номером m
0
, описаны в пунктах
2 – 5 и располагаются следующим образом. Сначала идут команды, опи-
санные в пункте 2, которые обнуляют регистры с M-го по M + N-ый.
Затем идут команды, описанные в пункте 3, которые присвают реги-
страм M + 1, . . . , M + k значения, содержащиеся в регистрах i
1
, . . . , i
k
.
Группа из восьми команд, приведенная в пункте 3, присваивает регистру
с номером M + t + 1 значение регистра i
t+1
, не меняя значения других
регистров. При этом используется тот факт, что перед выполнением этих
восьми команд в регистрах с номерами M и M + t + 1 содержатся нули.
Команды, описанные в пункте 4 — это команды программы P со сдви-
нутыми номерами регистров и переходов. Исполнив эти команды, маши-
на вычислит значение функции f
k
P
от чисел, содержащихся в регистрах
M +1, . . . , M +k и поместит результат в регистр M. Наконец, 4 команды,
описанные в пункте 5, помещают в регистр Rj число, содержащееся в ре-
гистре c номером M. Собирая все вместе, видим, что команды, которые
мы вставили в программу Q вместо команды с номером m
0
, выполняют
в совокупности те же действия, что и макрокоманда P (i
1
, . . . , i
k
) → j
45
и, следовательно, программа Q
0
эквивалентна Q. ¤
Скажем, что k-местная частичная функция f( x
1
, . . . , x
k
) вычислима
на машине Шенфилда, если f = f
k
P
для некоторой программы P.
45
Конечно, эти команды, в отличие от макрокоманды с номером m
0
, меняют зна-
чения некоторых регистров с номерами > M, однако эти регистры не упоминаются в
программе Q и не оказывают никакого влияния на работу машины по этой программе.
68