Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В теории вычислимости на S m
n
 
теорема
(также называется перевод лемма , параметром теоремы , и теорема параметризации ) является основным результатом о языках программирования (и, в более общем плане , Гедель нумерации этих вычислимых функций ) (Соара 1987, Rogers 1967). Впервые это доказал Стивен Коул Клини (1943). Имя S m
n
 
происходит от появления S с нижним индексом n и верхним индексом m в исходной формулировке теоремы (см. ниже).

На практике теорема гласит, что для данного языка программирования и положительных целых чисел m и n существует особый алгоритм, который принимает в качестве входных данных исходный код программы с m  +  n свободными переменными вместе с m значениями. Этот алгоритм генерирует исходный код, который эффективно заменяет значения первых m свободных переменных, оставляя остальные переменные свободными.

Подробности [ править ]

Основная форма теоремы применяется к функциям двух аргументов (Nies 2009, p. 6). При заданной гёделевской нумерации рекурсивных функций существует примитивная рекурсивная функция s двух аргументов со следующим свойством: для каждого гёделевского числа p частично вычислимой функции f с двумя аргументами выражения и определены для тех же комбинаций натуральных чисел x и y , и их значения равны для любой такой комбинации. Другими словами, для любого x выполняется следующее экстенсиональное равенство функций :

В более общем смысле, для любого mn  > 0 существует примитивная рекурсивная функция с m  + 1 аргументом, которая ведет себя следующим образом: для каждого гёделевского числа p частично вычислимой функции с m  +  n аргументами и всех значений x 1 , …, X м :

Описанную выше функцию s можно принять за .

Официальное заявление [ править ]

Для заданных арностей и для каждой машины Тьюринга арности и для всех возможных значений входных данных существует машина Тьюринга арности , такая, что

Кроме того, существует машина Тьюринга, которая позволяет вычислять по и ; это обозначено .

Неформально находит машину Тьюринга, которая является результатом жесткого кодирования значений в . Результат обобщается на любую модель вычислений, полную по Тьюрингу .

Пример [ править ]

Следующий код на Лиспе реализует s 11 для Лиспа.

 ( defun  s11  ( f  x )  ( let  (( y  ( gensym )))  ( list  'лямбда  ( список  y )  ( список  f  x  y ))))

Например, оценивается в .(s11 '(lambda (x y) (+ x y)) 3)(lambda (g42) ((lambda (x y) (+ x y)) 3 g42))

См. Также [ править ]

Ссылки [ править ]

Внешние ссылки [ править ]

  • Вайсштейн, Эрик В. «Теорема Клини о с - м - п » . MathWorld .