Перечислимые языки — различия между версиями
Vincent (обсуждение | вклад) |
Vincent (обсуждение | вклад) |
||
Строка 11: | Строка 11: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | Пусть имеется некоторая программа <tex>p</tex>, которая может либо завершиться за конечное время и что-то вернуть, либо зависнуть. '''Запуск программы <tex>p</tex> с тайм-лимитом <tex>TL</tex>''' будем обозначать как <tex>p|_{TL}</tex> и иметь в виду следующее: если за <tex>TL</tex> операций программа <tex>p</tex> корректно завершилась и что-то вернула, то <tex>p|_{TL}</tex> | + | Пусть имеется некоторая программа <tex>p</tex>, которая может либо завершиться за конечное время и что-то вернуть, либо зависнуть. '''Запуск программы <tex>p</tex> с тайм-лимитом <tex>TL</tex>''' будем обозначать как <tex>p|_{TL}</tex> и иметь в виду следующее: если за <tex>TL</tex> операций программа <tex>p</tex> корректно завершилась и что-то вернула, то <tex>p|_{TL}</tex> вернёт то же самое; если же за <tex>TL</tex> операций программа <tex>p</tex> не успела завершиться, то <tex>p|_{TL}</tex> вернёт <tex>\bot</tex> (символ зависания). |
}} | }} | ||
Версия 10:43, 25 декабря 2011
Определение: |
Полуразрешимый язык — язык, для которого существует программа | такая, что .
Определение: |
Перечислимый язык — язык, для которого существует программа | такая, что .
Определение: |
Пусть имеется некоторая программа | , которая может либо завершиться за конечное время и что-то вернуть, либо зависнуть. Запуск программы с тайм-лимитом будем обозначать как и иметь в виду следующее: если за операций программа корректно завершилась и что-то вернула, то вернёт то же самое; если же за операций программа не успела завершиться, то вернёт (символ зависания).
Теорема: |
— перечислимый — полуразрешимый. |
Доказательство: |
Пусть — перечислимый язык. Докажем, что он полуразрешим, приведя соответствующую программу.for if return Пусть — полуразрешимый язык. Докажем, что он перечислим, приведя соответствующую программу.for for if ++ if return for if ++ if return На каждой итерации цикла программы Приведённые программы доказывают эквивалентность определений. в множестве хранятся все выведенные на данный момент слова языка . |
Теорема: |
Любой разрешимый язык является перечислимым. |
Доказательство: |
Любой разрешимый язык | является полуразрешимым. Так как любой полуразрешимый язык является перечислимым, то является перечислимым.
Литература
- Н. К. Верещагин, А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. — М.: МЦНМО, 1999. С. 134. ISBN 5-900916-36-7