Замкнутость разрешимых и перечислимых языков относительно теоретико-множественных и алгебраических операций
| Теорема: |
–- разрешимы, тогда
|
| Доказательство: |
| Если языки разрешимы, значит для каждого из них есть разрешающая программа. Тогда разрешающая программа для языка будет запускать разрешающую для каждого языка и выводить 1, если оба разрешателя выдали 1, 0 во всех остальных случаях. Для языка разрешающая программа будет запускать оба разрешателя и выдавать 0, если оба разрешателя выдали 0, 1 во всех остальынх случаях. Для языка разрешатель будет выдавать результат, обратный результату разрешателя для . Для языка разрешающая программа будет запускать оба разрешателя и выдавать 1, если первый разрешатель вернет 1, а второй 0 и 0 во всех остальных случаях. Для языка разрешатель будет перебирать все возможные разбиения данного ему слова на подслова, и для каждого проверять принадлежность . Если хотя бы в одном разбиении все слова будут принадлежать , то все слово принадлежит иначе не принадлежит. Для языка разрешающая программа будет перебирать все возможные разбиения на 2 слова и проверять принадлежность первого слова и второго слова . Если хотя бы для одного разбиения оба разрешателя вернут 1, то слово принадлежит , иначе не принадлежит. |
| Теорема: |
–- перечислимы, тогда
|
| Доказательство: |
|
Для перечислитель будет по очереди на один шаг запускать перечислители и и выдавать по очереди слова из и . Дальше воспользуемся возможностью построить полувычислитель для перечислимого языка. Для языка построим полувычислитель. Запустим по очереди полувычислители для и . Если слово принадлежит , то оба полувычислителя выдадут 1, иначе один из полувычислителей зависнет, и полувычислитель для тоже зависнет, что допустимо. Для перечислитель строится следующим образом: запускаем перечислитель для в цикле и запоминаем выданные им слова. При выдаче каждого нового слова перебираем все возможные перестановки уже выданных слов и выдаем их. Перечислитель для строим следующим образом: запускаем одновременно перечислители для и , запоминая все выданные слова. При выдаче новых слов перебираем все возможные пары из запомненных слов и выдаем их.
|