Перечислимые языки — различия между версиями
Spolan (обсуждение | вклад) м |
|||
Строка 1: | Строка 1: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | + | '''Полуразрешимый язык''' <tex>-</tex> язык, для которого существует программа <tex>p</tex> такая, что <tex>\forall x \in L \Leftrightarrow p(x)=1</tex>. | |
}} | }} | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | + | '''Перечислимый язык''' <tex>-</tex> язык, для которого существует программа <tex>g</tex> такая, что <tex>g(i) = x_i, L = \{x_1, x_2, .., x_n, ..\}</tex>. | |
}} | }} | ||
{{Определение | {{Определение | ||
|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>TL</tex> операций программа <tex>p</tex> не успела завершиться, то <tex>p|_{TL}</tex> вернет <tex>\bot</tex> (специально зарезервированное значение). | |
− | } | ||
− | |||
− | |||
− | |||
− | |||
}} | }} | ||
− | |||
− | |||
− | |||
− | |||
{{Теорема | {{Теорема | ||
|id=th1 | |id=th1 | ||
|statement= | |statement= | ||
− | + | <tex>L-</tex> перечислимый <tex>\Leftrightarrow L-</tex> полуразрешимый. | |
|proof= | |proof= | ||
− | Пусть | + | Пусть <tex>L-</tex> перечислимый. |
− | + | :<tex>p(x):</tex> | |
− | + | :: <tex>for ~ i = 1 ~ .. ~ \infty</tex> | |
− | + | ::: <tex>if ~ g(i) = x</tex> | |
− | : | + | :::: <tex>return ~ 1</tex> |
− | :: | + | Пусть <tex>L-</tex> полуразрешимый. |
− | ::: | + | :<tex>g_0(i):</tex> |
− | + | ::<tex>cnt = 0</tex> | |
− | :::: | + | :: <tex>for ~ k = 1 ~ .. ~ \infty</tex> |
− | ::::: | + | ::: <tex>for ~ x \in \{x_1, x_2, .., x_k\}</tex> |
− | :: | + | :::: <tex>if ~ p|_k(i) = 1</tex> |
− | :: | + | ::::: <tex>cnt++</tex> |
− | + | :::: <tex>if ~ cnt = i</tex> | |
− | + | ::::: <tex>return ~ x</tex> | |
− | |||
− | + | :<tex>g(i):</tex> | |
− | + | ::<tex>U = \emptyset</tex> | |
− | + | :: <tex>for ~ j = 1 ~ .. ~ \infty</tex> | |
+ | ::: <tex>x \leftarrow g_0(j)</tex> | ||
+ | :::: <tex>if ~ x \notin U</tex> | ||
+ | ::::: <tex>cnt++</tex> | ||
+ | ::::: <tex>if ~ cnt = i</tex> | ||
+ | :::::: <tex>return ~ x</tex> | ||
+ | ::::: <tex>U.insert(x)</tex> | ||
+ | Приведённые программы доказывают эквивалентность определений. | ||
}} | }} | ||
− | |||
{{Теорема | {{Теорема | ||
Строка 55: | Строка 51: | ||
|statement= | |statement= | ||
Любой разрешимый язык <tex>L</tex> является перечислимым. | Любой разрешимый язык <tex>L</tex> является перечислимым. | ||
− | |proof= | + | |proof= |
− | + | Любой разрешимый язык <tex>L</tex> является полуразрешимым. А так как любой полуразрешимый язык является перечислимым, то разрешимый язык <tex>L</tex> является перечислимым. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
}} | }} |
Версия 05:12, 18 декабря 2011
Определение: |
Полуразрешимый язык | язык, для которого существует программа такая, что .
Определение: |
Перечислимый язык | язык, для которого существует программа такая, что .
Определение: |
Пусть имеется некоторая программа | , которая может либо завершиться за конечное время и что-то вернуть, либо зависнуть. Тогда запуск программы с тайм-лимитом будем обозначать как и иметь в виду следующее: если за операций программа корректно завершилась и что-то вернула, то вернет то же самое; если же за операций программа не успела завершиться, то вернет (специально зарезервированное значение).
Теорема: |
перечислимый полуразрешимый. |
Доказательство: |
Пусть перечислимый.Пусть полуразрешимый. |
Теорема: |
Любой разрешимый язык является перечислимым. |
Доказательство: |
Любой разрешимый язык | является полуразрешимым. А так как любой полуразрешимый язык является перечислимым, то разрешимый язык является перечислимым.