cscscs, Вы не в ту сторону копаете. Ваша задача — выяснить, перечислимо ли множество всех алгоритмов. Если не фиксировать алфавит, то задача не разрешима, потому что перечисляющий алгоритм должен уметь работать со всеми алфавитами, с которыми работают перечисляемые алгоритмы, а это невозможно, так как нормальный алгорифм Маркова имеет конечное описание и, следовательно, в этом описании встречается только конечное множество символов, а если говорить о машине Тьюринга, то она управляется конечным автоматом, который имеет конечное множество состояний и распознаёт конечное множество символов. Поэтому необходимо ограничиться одним алфавитом.
Но здесь, естественно, возникает вопрос, зависит ли объём понятия "алгоритм" от используемого алфавита. Теорема о переводе как раз показывает, что не зависит (исключая тривиальный случай однобуквенного алфавита). Мы кодируем все нужные символы в двухбуквенном алфавите словами вида
, "переводим" схему алгоритма и исходные данные, потом "запускаем" алгоритм. "Переведённый" алгоритм просто по шагам воспроизводит работу исходного алгоритма, получая результат, соответствующий "переводу" результата работы исходного алгоритма.
Поручать "перевод" туда и обратно каким-то алгоритмам нельзя по той же причине, о которой я писал в начале: "переводчик" должен уметь работать со всеми символами всех алфавитов. Этим должен заниматься человек, готовящий исходные данные для алгоритма и интерпретирующий результат.
Предположим, у нас есть алгоритм для сложения чисел. Мы ведь не можем записать для него исходные данные как вздумается. Мы должны закодировать их в таком виде, в каком алгоритм может с ними работать. И результат он нам выдаст в таком виде, какой предусмотрен его схемой, а не как нам захочется, поэтому интерпретация результата — это наша проблема, а не алгоритма.
Поэтому достаточно доказать перечислимость алгоритмов, работающих в двухбуквенном алфавите. При этом сам перечисляющий алгоритм может использовать большее количество символов.
Или Вы уже решаете другую задачу, а я этого не заметил?