Замкнутость разрешимых и перечислимых языков относительно теоретико-множественных и алгебраических операций — различия между версиями
Vincent (обсуждение | вклад) |
|||
Строка 3: | Строка 3: | ||
Языки <tex> L_1 </tex> и <tex> L_2 </tex> {{---}} [[Разрешимые_(рекурсивные)_языки|разрешимы]], тогда следующие языки разрешимы: | Языки <tex> L_1 </tex> и <tex> L_2 </tex> {{---}} [[Разрешимые_(рекурсивные)_языки|разрешимы]], тогда следующие языки разрешимы: | ||
− | * <tex>L_1 \cup L_2</tex> {{---}} объединение <tex>L_1</tex> и <tex>L_2</tex> | + | * <tex>L_1 \cup L_2</tex> {{---}} объединение <tex>L_1</tex> и <tex>L_2</tex> |
− | * <tex>L_1 \cap L_2</tex> {{---}} пересечение <tex>L_1</tex> и <tex>L_2\</tex> | + | * <tex>L_1 \cap L_2</tex> {{---}} пересечение <tex>L_1</tex> и <tex>L_2\</tex> |
− | * <tex>\overline{L_1}</tex> {{---}} дополнение <tex>L_1\</tex> | + | * <tex>\overline{L_1}</tex> {{---}} дополнение <tex>L_1\</tex> |
− | * <tex>L_1 \backslash L_2</tex> {{---}} разность <tex>L_1</tex> и <tex>L_2</tex> | + | * <tex>L_1 \backslash L_2</tex> {{---}} разность <tex>L_1</tex> и <tex>L_2</tex> |
− | * <tex>L_1 \times L_2</tex> {{---}} декартово произведение <tex>L_1</tex> и <tex>L_2</tex> | + | * <tex>L_1 \times L_2</tex> {{---}} декартово произведение <tex>L_1</tex> и <tex>L_2</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</tex> и <tex>L_2</tex>. | * <tex>L_1 L_2</tex> {{---}} конкатенация <tex>L_1</tex> и <tex>L_2</tex>. | ||
Строка 65: | Строка 65: | ||
Языки <tex> L_1 </tex> и <tex> L_2 </tex> {{---}} [[Перечислимые_языки|перечислимы]], тогда следующие языки перечислимы: | Языки <tex> L_1 </tex> и <tex> L_2 </tex> {{---}} [[Перечислимые_языки|перечислимы]], тогда следующие языки перечислимы: | ||
− | * <tex>L_1 \cup L_2</tex> {{---}} объединение <tex>L_1</tex> и <tex>L_2</tex> | + | * <tex>L_1 \cup L_2</tex> {{---}} объединение <tex>L_1</tex> и <tex>L_2</tex> |
− | * <tex>L_1 \cap L_2</tex> {{---}} пересечение <tex>L_1</tex> и <tex>L_2\</tex> | + | * <tex>L_1 \cap L_2</tex> {{---}} пересечение <tex>L_1</tex> и <tex>L_2\</tex> |
− | * <tex>L_1 \times L_2</tex> {{---}} декартово произведение <tex>L_1</tex> и <tex>L_2</tex> | + | * <tex>L_1 \times L_2</tex> {{---}} декартово произведение <tex>L_1</tex> и <tex>L_2</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</tex> и <tex>L_2</tex>. | * <tex>L_1 L_2</tex> {{---}} конкатенация <tex>L_1</tex> и <tex>L_2</tex>. | ||
Строка 117: | Строка 117: | ||
Языки <tex> L_1 </tex> и <tex> L_2 </tex> {{---}} перечислимы, тогда следующие языки могут быть неперечислимы: | Языки <tex> L_1 </tex> и <tex> L_2 </tex> {{---}} перечислимы, тогда следующие языки могут быть неперечислимы: | ||
− | * <tex>\overline{L_1}</tex> {{---}} дополнение <tex>L_1\</tex> | + | * <tex>\overline{L_1}</tex> {{---}} дополнение <tex>L_1\</tex> |
* <tex>L_1 \backslash L_2</tex> {{---}} разность <tex>L_1</tex> и <tex>L_2</tex>. | * <tex>L_1 \backslash L_2</tex> {{---}} разность <tex>L_1</tex> и <tex>L_2</tex>. | ||
Строка 127: | Строка 127: | ||
}} | }} | ||
− | == | + | == Источники информации == |
* Н. К. Верещагин, А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. — М.: МЦНМО, 1999. С. 134. ISBN 5-900916-36-7 | * Н. К. Верещагин, А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. — М.: МЦНМО, 1999. С. 134. ISBN 5-900916-36-7 | ||
+ | |||
+ | [[Категория: Теория формальных языков]] | ||
+ | [[Категория: Теория вычислимости]] | ||
+ | [[Категория: Разрешимые и перечислимые языки]] |
Версия 20:48, 14 января 2017
Теорема: |
Языки разрешимы, тогда следующие языки разрешимы:
и —
|
Доказательство: |
Пусть и — разрешающие программы для языков и соответственно. Для доказательства достаточно написать разрешающую программу (разрешитель) для каждого случая.
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
for forall , где — множество всевозможных разбиений слова на подстроки if return 1
for forall , где — множество всевозможных разбиений слова на две подстроки if return 1 |
Теорема: |
Языки и — перечислимы, тогда следующие языки могут быть неперечислимы:
|
Доказательство: |
Рассмотрим язык существуют перечислимые, но неразрешимые языки, следовательно, язык может быть неперечислим. Теперь рассмотрим . Предположим, что он перечислим. Тогда, имея какое-либо слово, мы можем одновременно запустить перечислители для и . В какой-то момент времени слово появится либо в выводе перечислителя для , либо в выводе перечислителя для . Тогда получится, что разрешим, так как про любое слово можно сказать, принадлежит ли оно или нет. Но мы знаем, что . В качестве возьмём язык, состоящий из всех слов. Тогда получится, что — это . Про мы знаем, что он перечислим не всегда, поэтому и не всегда перечислим. |
Источники информации
- Н. К. Верещагин, А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. — М.: МЦНМО, 1999. С. 134. ISBN 5-900916-36-7