Изменения

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

Разрешимые (рекурсивные) языки

32 байта добавлено, 19:23, 4 сентября 2022
м
rollbackEdits.php mass rollback
===Альтернативное доказательство с использованием теоремы о рекурсии===
По [[Теорема о рекурсии | теореме о рекурсии]], программа может знать свой исходный код. Значит, в неё можно написать функцию <tex> \mathrm{getSrc()} </tex>, которая вернёт строку {{---}} исходный код программы.
Допустим, что он язык разрешим. Тогда напишем такую программу:  <codetex> p(x){:}</tex> '''if''' <tex>u(\mathrm{getSrc()}, x)</tex>
'''while''' ''true''
'''else'''
'''return''' 1
</code>
 Если <tex> u(p, x) = 1 </tex>, тогда программа <tex> p </tex> на входе <tex> x </tex> должна вернуть <tex> 1 </tex>, но по условию <tex> \mathrm{if } </tex> она зависает, а следовательно, не принадлежит универсальному языку.
Если же <tex> u(p, x) \neq 1 </tex>, то мы пойдём во вторую ветку условного оператора и вернём <tex> 1 </tex>, значит, пара <tex>
1632
правки

Навигация