Замкнутость разрешимых и перечислимых языков относительно теоретико-множественных и алгебраических операций — различия между версиями
м |
|||
Строка 1: | Строка 1: | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | Языки <tex> L_1, L_2 </tex> | + | Языки <tex> L_1, L_2 </tex> {{---}} разрешимы, тогда следующие языки разрешимы: |
* Объединение <tex>L_1</tex> и <tex>L_2\ (L_1 \cup L_2)</tex> | * Объединение <tex>L_1</tex> и <tex>L_2\ (L_1 \cup L_2)</tex> | ||
Строка 12: | Строка 12: | ||
|proof= | |proof= | ||
− | Пусть <tex>p_1</tex> и <tex>p_2</tex> | + | Пусть <tex>p_1</tex> и <tex>p_2</tex> {{---}} разрешающие программы для языков |
<tex>L_1</tex> и <tex>L_2</tex> соответственно. Для доказательства достаточно написать разрешающую программу (разрешитель) для каждого случая. | <tex>L_1</tex> и <tex>L_2</tex> соответственно. Для доказательства достаточно написать разрешающую программу (разрешитель) для каждого случая. | ||
Строка 49: | Строка 49: | ||
'''return''' 0 | '''return''' 0 | ||
− | Разрешитель будет перебирать все возможные разбиения данного ему слова на подслова, и для каждого проверять принадлежность <tex> L_1 </tex>. Если хотя бы в одном разбиении все подслова будут принадлежать <tex> L_1 </tex>, то все слово принадлежит <tex> L_1^* </tex>, иначе | + | Разрешитель будет перебирать все возможные разбиения данного ему слова на подслова, и для каждого проверять принадлежность <tex> L_1 </tex>. Если хотя бы в одном разбиении все подслова будут принадлежать <tex> L_1 </tex>, то все слово принадлежит <tex> L_1^* </tex>, иначе {{---}} не принадлежит. |
* Для языка <tex> L_1 L_2 : </tex> | * Для языка <tex> L_1 L_2 : </tex> | ||
Строка 60: | Строка 60: | ||
'''return''' 0 | '''return''' 0 | ||
− | Разрешитель будет перебирать все возможные разбиения на два слова и проверять принадлежность первого слова <tex> L_1 </tex> и второго слова <tex> L_2 </tex>. Если хотя бы для одного разбиения оба разрешителя вернут 1, то слово принадлежит <tex> L_1 L_2 </tex>, иначе | + | Разрешитель будет перебирать все возможные разбиения на два слова и проверять принадлежность первого слова <tex> L_1 </tex> и второго слова <tex> L_2 </tex>. Если хотя бы для одного разбиения оба разрешителя вернут 1, то слово принадлежит <tex> L_1 L_2 </tex>, иначе {{---}} не принадлежит. |
}} | }} | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | Языки <tex> L_1, L_2 </tex> | + | Языки <tex> L_1, L_2 </tex> {{---}} перечислимы, тогда следующие языки перечислимы: |
* Объединение <tex>L_1</tex> и <tex>L_2\ (L_1 \cup L_2)</tex> | * Объединение <tex>L_1</tex> и <tex>L_2\ (L_1 \cup L_2)</tex> | ||
Строка 75: | Строка 75: | ||
|proof= | |proof= | ||
− | Пусть <tex>p_1</tex> и <tex>p_2</tex> | + | Пусть <tex>p_1</tex> и <tex>p_2</tex> {{---}} полуразрешающие программы для языков <tex>L_1</tex> и <tex>L_2</tex> соответственно. Для доказательства достаточно написать полуразрешающую программу для каждого случая. Заметим, что <tex>p_1</tex> и <tex>p_2</tex> могут зависнуть при использовании в полуразрешающей программе для соответствующего языка, но это допустимо. |
* Для языка <tex> L_1 \cup L_2 :</tex> | * Для языка <tex> L_1 \cup L_2 :</tex> | ||
Строка 117: | Строка 117: | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | Языки <tex> L_1, L_2 </tex> | + | Языки <tex> L_1, L_2 </tex> {{---}} перечислимы, тогда следующие языки могут быть не перечислимы: |
* Дополнение <tex>L_1\ (\overline{L_1})</tex> | * Дополнение <tex>L_1\ (\overline{L_1})</tex> | ||
Строка 130: | Строка 130: | ||
== Литература == | == Литература == | ||
− | * ''Верещагин Н. К., Шень А.'' '''Лекции по математической логике и теории алгоритов. Часть 3. Вычислимые функции''' | + | * ''Верещагин Н. К., Шень А.'' '''Лекции по математической логике и теории алгоритов. Часть 3. Вычислимые функции''' {{–--}} М.: МЦНМО, 1999 |
Версия 09:50, 20 декабря 2011
Теорема: |
Языки — разрешимы, тогда следующие языки разрешимы:
|
Доказательство: |
Пусть и — разрешающие программы для языков и соответственно. Для доказательства достаточно написать разрешающую программу (разрешитель) для каждого случая.
return
return
return
return
return
forall все возможные разбиения текущее разбиение if return 1 return 0 Разрешитель будет перебирать все возможные разбиения данного ему слова на подслова, и для каждого проверять принадлежность . Если хотя бы в одном разбиении все подслова будут принадлежать , то все слово принадлежит , иначе — не принадлежит.
Разрешитель будет перебирать все возможные разбиения на два слова и проверять принадлежность первого слова forall все возможные разбиения на две части текущее разбиение if return 1 return 0 и второго слова . Если хотя бы для одного разбиения оба разрешителя вернут 1, то слово принадлежит , иначе — не принадлежит. |
Теорема: |
Языки — перечислимы, тогда следующие языки перечислимы:
|
Доказательство: |
Пусть и — полуразрешающие программы для языков и соответственно. Для доказательства достаточно написать полуразрешающую программу для каждого случая. Заметим, что и могут зависнуть при использовании в полуразрешающей программе для соответствующего языка, но это допустимо.
for if return 1
if return 1
if return 1
forall все возможные разбиения текущее разбиение if return 1
forall все возможные разбиения на две части текущее разбиение if return 1 |
Теорема: |
Языки — перечислимы, тогда следующие языки могут быть не перечислимы:
|
Доказательство: |
Рассмотрим язык существуют перечислимые, но не разрешимые языки, следовательно, язык может быть не перечислим. Теперь рассмотрим . Предположим, что он перечислим. Тогда, имея какое-либо слово, мы можем одновременно запустить перечислители для и . В какой-то момент времени слово появится либо в выводе перечислителя для , либо в выводе перечислителя для . Тогда получится что разрешим, так как про любое слово мы можем узнать принадлежит оно или не принадлежит. Но мы знаем, что . В качестве возьмем язык, состоящий из всех слов. Тогда получится, что язык это . Про язык мы знаем, что он перечислим не всегда, следовательно и язык также не всегда перечислим. |
Литература
- Верещагин Н. К., Шень А. Лекции по математической логике и теории алгоритов. Часть 3. Вычислимые функции Шаблон:–-- М.: МЦНМО, 1999