Перечислимые языки
Версия от 10:02, 19 декабря 2011; Vincent (обсуждение | вклад)
| Определение: |
| Полуразрешимый язык — язык, для которого существует программа такая, что . |
| Определение: |
| Перечислимый язык — язык, для которого существует программа такая, что . |
| Определение: |
| Пусть имеется некоторая программа , которая может либо завершиться за конечное время и что-то вернуть, либо зависнуть. Тогда запуск программы с тайм-лимитом будем обозначать как и иметь в виду следующее: если за операций программа корректно завершилась и что-то вернула, то вернет то же самое; если же за операций программа не успела завершиться, то вернет (символ зависания). |
| Теорема: |
— перечислимый — полуразрешимый. |
| Доказательство: |
|
Пусть — перечислимый язык. Докажем, что он полуразрешим, приведя соответствующую программу. for if return Пусть — полуразрешимый язык. Докажем, что он перечислим, приведя соответствующую программу. for for if ++ if return for if ++ if return На каждой итерации цикла программы в множестве хранятся все выведенные на данный момент слова языка . Приведённые программы доказывают эквивалентность определений. |
| Теорема: |
Любой разрешимый язык является перечислимым. |
| Доказательство: |
| Любой разрешимый язык является полуразрешимым. Так как любой полуразрешимый язык является перечислимым, то разрешимый язык является перечислимым. |
Литература
- Н. К. Верещагин, А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. -- М.: МЦНМО, 1999