Разрешимые (рекурсивные) языки — различия между версиями
| Строка 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
