Теорема о рекурсии
Версия от 08:00, 8 декабря 2010; Arina.Afanasyeva (обсуждение | вклад)
Эта статья находится в разработке!
Теорема о рекурсии
Говоря неформально, теорема о рекурсии позволяет утверждать, что любая программа может использовать внутри себя свой исходный код (номер), который ей передали в качестве параметра.
| Теорема (О рекурсии): | 
Для  вычислимой функции от двух аргументов   вычислимая функция   | 
| Доказательство: | 
| 
 Пусть - любая вычислимая функция. Напишем программу для r(y). 
 01: r(y){ 
02:     V(x,y);
03:
04:     main() {
05:         return V(getSrc(), y)
06:     }
07: 
08:     string getSrc() {
09:         string tmp = getOtherSrc();
10:         return (tmp + "string getOtherSrc() {" + "\n" + "return" + tmp + "\n" + "}";
11:     }
12: 
13:     string getOtherSrc() {
14:         return /* весь код до функции getOtherSrc() */
15:     } 
16: }
  | 
Замечание: программа r(y) печатает свой текст. Она написана в соответствии со следующей неформальной инструкцией:
Напечатать два раза, второй раз в кавычках, такой текст: "Напечатать два раза, второй раз в кавычках, такой текст:"
Источники
Н. К. Верещагин, А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. -- М.: МЦНМО, 1999