См м п теорема - Smn theorem
В теории вычислимости на 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 выполняется следующее экстенсиональное равенство функций :
В более общем смысле, для любого m , n > 0 существует примитивная рекурсивная функция с m + 1 аргументом, которая ведет себя следующим образом: для каждого гёделевского числа p частично вычислимой функции с m + n аргументами и всех значений x 1 , …, X м :
Описанную выше функцию s можно принять за .
Официальное заявление
Для заданных арностей и для каждой машины Тьюринга арности и для всех возможных значений входных данных существует машина Тьюринга арности , такая что
Кроме того, существует машина Тьюринга, которая позволяет вычислять по и ; это обозначено .
Неформально находит машину Тьюринга, которая является результатом жесткого кодирования значений в . Результат обобщается на любую модель вычислений, полную по Тьюрингу .
Пример
Следующий код Lisp реализует s 11 для Lisp.
(defun s11 (f x)
(let ((y (gensym)))
(list 'lambda (list y) (list f x y))))
Например, оценивается в .
(s11 '(lambda (x y) (+ x y)) 3)
(lambda (g42) ((lambda (x y) (+ x y)) 3 g42))
Смотрите также
Рекомендации
- Клини, SC (1936). «Общерекурсивные функции натуральных чисел» . Mathematische Annalen . 112 (1): 727–742. DOI : 10.1007 / BF01565439 .
- Клини, SC (1938). «Об обозначениях порядковых чисел» (PDF) . Журнал символической логики . 3 : 150–155. (Это ссылка на теорему в издании 1989 г. «Классической теории рекурсии» Одифредди на стр. 131. )
- Нис, А. (2009). Вычислимость и случайность . Oxford Logic Guides. 51 . Оксфорд: Издательство Оксфордского университета. ISBN 978-0-19-923076-1 . Zbl 1169.03034 .
- Одифредди, П. (1999). Классическая теория рекурсии . Северная Голландия. ISBN 0-444-87295-7 .
- Роджерс, Х. (1987) [1967]. Теория рекурсивных функций и эффективной вычислимости . Первое издание MIT в мягкой обложке. ISBN 0-262-68052-1 .
- Соаре, Р. (1987). Рекурсивно перечислимые множества и степени . Перспективы математической логики. Springer-Verlag. ISBN 3-540-15299-7 .