Перечислимые языки — различия между версиями
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
| Определение: | 
| Полуразрешимый язык язык, для которого существует программа такая, что . | 
| Определение: | 
| Перечислимый язык язык, для которого существует программа такая, что . | 
| Определение: | 
| Пусть имеется некоторая программа , которая может либо завершиться за конечное время и что-то вернуть, либо зависнуть. Тогда запуск программы с тайм-лимитом будем обозначать как и иметь в виду следующее: если за операций программа корректно завершилась и что-то вернула, то вернет то же самое; если же за операций программа не успела завершиться, то вернет (специально зарезервированное значение). | 
| Теорема: | 
 перечислимый  полуразрешимый.  | 
| Доказательство: | 
| 
 Пусть перечислимый. Пусть полуразрешимый.  | 
| Теорема: | 
Любой разрешимый язык  является перечислимым.  | 
| Доказательство: | 
| Любой разрешимый язык является полуразрешимым. А так как любой полуразрешимый язык является перечислимым, то разрешимый язык является перечислимым. |