Разрешимые (рекурсивные) языки — различия между версиями
Vincent (обсуждение | вклад) (→Литература) |
Vincent (обсуждение | вклад) |
||
Строка 40: | Строка 40: | ||
'''return''' <tex> 1 </tex> | '''return''' <tex> 1 </tex> | ||
− | Теперь рассмотрим вызов <tex> r(r) </tex> | + | Теперь рассмотрим вызов <tex> r(r) </tex>: |
− | * | + | * если <tex> u(\langle r, r \rangle) = 1 </tex>, то условие '''if''' выполнится и программа зависнет. Но так как программа <tex> u </tex> разрешает универсальный язык, <tex> u(\langle r, r \rangle) = 1 \Rightarrow r(r) = 1</tex>; |
− | * | + | * если <tex> u(\langle r, r \rangle) = 0 </tex>, то условие '''if''' не выполнится и программа вернет <tex>1</tex>. Но так как программа <tex> u </tex> разрешает универсальный язык, <tex> u(\langle r, r \rangle) = 0 \Rightarrow r(r) \ne 1</tex>. |
Таким образом, из предположения о разрешимости универсального языка мы пришли к противоречию. | Таким образом, из предположения о разрешимости универсального языка мы пришли к противоречию. |
Версия 08:41, 23 декабря 2011
Определение: |
Язык | называется разрешимым (рекурсивным), если существует такая программа , что , а .
Пример разрешимого множества
Утверждение: |
Язык чётных чисел разрешим. |
Приведём программу, разрешающую язык чётных чисел: Заметим, что программа нигде не может зависнуть. if return else return |
Пример неразрешимого множества
Определение: |
Язык | называется универсальным.
Утверждение: |
Универсальный язык неразрешим. |
Доказательство от противного. if ( while else return Теперь рассмотрим вызов :
|
Литература
- Н. К. Верещагин, А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. — М.: МЦНМО, 1999. С. 134. ISBN 5-900916-36-7