Редактирование: Неразрешимость универсального языка
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
+ | {{Утверждение | ||
+ | |id=proposalU. | ||
+ | |statement=[[Разрешимые (рекурсивные) языки#Пример неразрешимого множества | Универсальный язык]] неразрешим | ||
+ | |proof= | ||
+ | Допустим, что он разрешим. Тогда напишем такую программу: | ||
+ | <code> | ||
+ | p(x): | ||
+ | '''if''' u(getSrc(), x) | ||
+ | '''while''' ''true'' | ||
+ | '''else''' | ||
+ | '''return''' 1 | ||
+ | </code> | ||
+ | Если <tex> u(p, x) = 1 </tex>, тогда программа <tex> p </tex> на входе <tex> x </tex> должна вернуть <tex> 1 </tex>, но по условию <tex> if </tex> она зависает, а следовательно, не принадлежит универсальному языку. | ||
+ | |||
+ | Если же <tex> u(p, x) \neq 1 </tex>, то мы пойдём во вторую ветку условного оператора и вернём <tex> 1 </tex>, значит, пара <tex> | ||
+ | \langle p, x \rangle </tex> принадлежит универсальному языку, но <tex> u(p, x) \neq 1 </tex>, значит, пара не принадлежит. Опять получили противоречие. | ||
+ | }} |