Изменения

Перейти к: навигация, поиск

Теорема о рекурсии

21 байт убрано, 04:35, 26 апреля 2019
м
Пример использования теоремы о рекурсии в доказательстве о неразрешимости языка
==Теорема о рекурсии==
 
Рассмотрим произвольную вычислимую функцию от двух аргументов — <tex>V(x, y)</tex>. Теорема о рекурсии утверждает, что всегда можно найти эквивалентную ей <tex>p(y) = V(p, y)</tex>, которая будет использовать саму себя для вычисления значения. Сформулируем теорему более формально.
{{Теорема
...
Тогда вызов <tex>\mathrm{p(x)}</tex> — вызов функции <tex>\ mathrm{main}</tex> от соответствующего аргумента.
Все входные данные далее можно интерпретировать как строки, поэтому все типы аргументов и возвращаемых значений будут иметь тип '''string'''. Пусть есть вычислимая <tex>V(x,y)</tex>. Будем поэтапно строить функцию <tex>p(y)</tex>. <br> Предположим, что у нас в распоряжении есть функция <tex>\mathrm{getSrc()}</tex>, которая вернет код <tex>p(y)</tex>. Тогда саму <tex>p(y)</tex> можно переписать так:
<nowiki>|</nowiki> return \```$src
<nowiki>|</nowiki> <nowiki>|</nowiki>string getOtherSrc():
<nowiki>|</nowiki> <nowiki>|</nowiki> return \$src\```
</code>
}}
<code>
<tex>p(x){:}</tex>
'''if''' <tex>r(\mathrm{getSrc()})</tex>
'''return''' 1
'''while''' ''true''
54
правки

Навигация