Разрешимые (рекурсивные) языки — различия между версиями
Строка 3: | Строка 3: | ||
}} | }} | ||
− | |||
==Пример разрешимого множества== | ==Пример разрешимого множества== | ||
{{Утверждение | {{Утверждение | ||
Строка 12: | Строка 11: | ||
Приведём программу, разрешающую язык чётных чисел: | Приведём программу, разрешающую язык чётных чисел: | ||
<tex>p(i)</tex> | <tex>p(i)</tex> | ||
− | '''if''' | + | '''if''' <tex> i \equiv 0 \ (mod \ 2) </tex> |
− | '''return''' 1 | + | '''return''' <tex> 1 </tex> |
'''else''' | '''else''' | ||
− | '''return''' 0 | + | '''return''' <tex> 0 </tex> |
Заметим, что программа нигде не может зависнуть. | Заметим, что программа нигде не может зависнуть. | ||
}} | }} | ||
Строка 36: | Строка 35: | ||
<tex>r(x)</tex> | <tex>r(x)</tex> | ||
− | '''if''' u( | + | '''if''' <tex> u(\langle x, x \rangle) = 1 </tex> |
− | '''while''' true | + | '''while''' <tex> true </tex> |
'''else''' | '''else''' | ||
− | '''return''' 1 | + | '''return''' <tex> 1 </tex> |
Теперь рассмотрим вызов <tex> r(r) </tex>. | Теперь рассмотрим вызов <tex> r(r) </tex>. | ||
− | * Если <tex> u(\langle r, r \rangle) = 1 </tex>, то условие '''if''' выполнится и | + | * Если <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> 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>. |
Таким образом, из предположения о разрешимости универсального языка мы пришли к противоречию. | Таким образом, из предположения о разрешимости универсального языка мы пришли к противоречию. | ||
}} | }} | ||
+ | == Литература == | ||
+ | Н. К. Верещагин, А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. -- М.: МЦНМО, 1999 |
Версия 02:55, 16 декабря 2011
Определение: |
Язык | называется разрешимым (рекурсивным), если существует такая программа , что , а для .
Пример разрешимого множества
Утверждение: |
Язык чётных чисел разрешим. |
Приведём программу, разрешающую язык чётных чисел: Заметим, что программа нигде не может зависнуть. if return else return |
Пример неразрешимого множества
Определение: |
Язык | называется универсальным.
Утверждение: |
Универсальный язык неразрешим. |
Доказательство от противного. if while else return Теперь рассмотрим вызов .
|
Литература
Н. К. Верещагин, А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. -- М.: МЦНМО, 1999