Перечислимые языки — различия между версиями
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