Разрешимые (рекурсивные) языки — различия между версиями
Vincent (обсуждение | вклад) |
|||
| Строка 1: | Строка 1: | ||
{{Определение | {{Определение | ||
| − | |definition=Язык <tex>L</tex> называется '''разрешимым''' ('''рекурсивным'''), если существует такая программа <tex> p </tex>, что <tex> \forall w \in L: p(w) = 1</tex>, а | + | |definition=Язык <tex>L</tex> называется '''разрешимым''' ('''рекурсивным'''), если существует такая программа <tex> p </tex>, что <tex> \forall w \in L: p(w) = 1</tex>, а <tex> \forall w \notin L: p(w) = 0</tex>. |
}} | }} | ||
| Строка 31: | Строка 31: | ||
Доказательство от противного. <br/> | Доказательство от противного. <br/> | ||
Пусть язык <tex> U </tex> разрешим. <br/> | Пусть язык <tex> U </tex> разрешим. <br/> | ||
| − | Тогда существует такая программа <tex> u </tex>, что <tex> \forall \langle p, x \rangle \in U: u(\langle p, x \rangle) = 1</tex>, а | + | Тогда существует такая программа <tex> u </tex>, что <tex> \forall \langle p, x \rangle \in U: u(\langle p, x \rangle) = 1</tex>, а <tex> \forall \langle p, x \rangle \notin U: u(\langle p, x \rangle) = 0</tex>. <br/> |
Составим следующую программу: | Составим следующую программу: | ||
Версия 08:33, 23 декабря 2011
| Определение: |
| Язык называется разрешимым (рекурсивным), если существует такая программа , что , а . |
Пример разрешимого множества
| Утверждение: |
Язык чётных чисел разрешим. |
|
Приведём программу, разрешающую язык чётных чисел: if return else returnЗаметим, что программа нигде не может зависнуть. |
Пример неразрешимого множества
| Определение: |
| Язык называется универсальным. |
| Утверждение: |
Универсальный язык неразрешим. |
|
Доказательство от противного. if while else return Теперь рассмотрим вызов .
|
Литература
Н. К. Верещагин, А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. -- М.: МЦНМО, 1999