Разрешимые (рекурсивные) языки — различия между версиями
Строка 30: | Строка 30: | ||
Универсальный язык неразрешим. | Универсальный язык неразрешим. | ||
|proof= | |proof= | ||
− | + | Доказательство от противного. <br/> | |
Пусть язык <tex> U </tex> разрешим. <br/> | Пусть язык <tex> U </tex> разрешим. <br/> | ||
Тогда существует такая программа <tex> u </tex>, что <tex> \forall \langle p, x \rangle \in U: u(\langle p, x \rangle) = 1</tex>, а для <tex> \forall \langle p, x \rangle \notin U: u(\langle p, x \rangle) = 0</tex>. <br/> | Тогда существует такая программа <tex> u </tex>, что <tex> \forall \langle p, x \rangle \in U: u(\langle p, x \rangle) = 1</tex>, а для <tex> \forall \langle p, x \rangle \notin U: u(\langle p, x \rangle) = 0</tex>. <br/> |
Версия 07:08, 14 декабря 2011
Определение: |
Язык | называется разрешимым (рекурсивным), если существует такая программа , что , а для .
Примеры
Пример разрешимого множества
Утверждение: |
Язык чётных чисел разрешим. |
Приведём программу, разрешающую наш язык:
Заметим, что программа нигде не может зависнуть.
if остаток от деления i на 2 = 0
return 1
else
return 0
|
Пример неразрешимого множества
Определение: |
Язык | называется универсальным.
Утверждение: |
Универсальный язык неразрешим. |
Доказательство от противного.
if u(<x, x>) = 1
while true
else
return 1
Теперь рассмотрим вызов .
|