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