Все так.
Или у меня глюк, или я опять чего-то не понимаю. Потому что у меня получается, что из аксиомы протокола следует, будто область применимости любого алгоритма
эффективно счетна.
Напомним, что биекция
называется
взаимно вычислимой, если вычислима как сама биекция
, так и обратная к ней
(кстати, а видел кто-нибудь вычислимую биекцию, обратная к которой не вычислима? Я на такого зверя не отказался бы посмотреть).
Теорема. Если есть взаимно вычислимая биекция
, и множество
эффективно счетно, то эффективно счетно и множество
.
Алгоритм приписывания номера элементу
:
1) найти
2) найти номер этого
в эффективной нумерации
3)считать этот номер номером
.
Алгоритм восстановления элемента
по номеру
:
1) Найти
в эффективной нумерации множества
2) Вычислить
Теорема доказана.
Множество протоколов
эффективно счетно как разрешимое подмножество эффективно счетного
. Теперь остается доказать, что есть взаимно вычислимая биекция из
в область применимости алгоритма
.
По определению,
- вычислимая функция, определенная на
. Чтобы она была определена на
и только на
, достаточно составить ее алгоритм, используя уже построенный
: "если
- протокол, выделить
(как слово перед первой стрелкой) и остановиться; если
- не протокол, не останавливаться". Обратная к ней функция определена на всей области применимости
и только на ней и сводится к "запустить
" - то есть это та самая функция, которую вычисляет
.
Итак,
- взаимно вычислимая биекция между эффективно счетным
и областью применимости алгоритма
. Из чего следует, что
эффективно счетно. Но я еще в первом посте приводил пример алгоритма с не эффективно счетной областью применимости (
, где
- номер алгоритма
в геделевской или любой другой фиксированной эффективной нумерации всех алгоритмов).
Таким образом, где-то в мои рассуждения вкралась ошибка. Но где?