Ладно, чувствую, что увязаю в деталях.
Лучше я объединю все возникшие вопросы в один
Вот более "глобальный" подход к вопросу.
Почему доказательство существования невычислимых функций в
post404743.html#p404743 ,и заодно все остальные, некорректны?
То что нельзя доказать корректность произвольной математики её собственными методами, было доказано в теореме Геделя.
Но могут ли существовать некорректные математики?
Пока не доказано противное - могут.
То , что с помощью некорректной математики можно доказывать неверные теоремы, тоже никто оспаривать не будет.
Но как тогда отличить корректную математику от некорректной?
Какие признаки некорректной математики можно назвать?
Поскольку Гедель в своей теореме в качестве контрпримера использовал "Парадокс Лжеца" - можно сделать вывод о том, что математика , использующая циклические ссылки - некорректна.
Конечно, это еще надо доказать ... но я пока не пытаюсь ничего доказать, а только рассуждаю.
Итак ,примем за аксиому, что математика, использующая циклически ссылки некорректна.
(Иначе, в некорректной математике не соблюдается "Принцип причинности")
С помощью этой аксиомы можно доказать и некорректность приведенного доказательства (да и всех прочих подобных доказательств) существования невычислимых функций.
Для начала следующий тезис (или Лемма?):
В корректной математике алгоритм не может иметь ссылку на самого себя.
Можно разобрать это подробней:
Действительно, если разбить создание алгоритма на два этапа:
1) Написание ,собственно, кода алгоритма
2) Занесение этого кода в некую базу данных алгоритмов.
Естественно, что пункт 2) не может предшествовать пункту 1) (Поскольку нельзя занести то чего нет).
Отсюда еще одно подтверждения тезиса о невозможности алгоритма ссылаться на самого себя.
(Иначе будет нарушен принцип причинности)
Далее, невозможна также ситуация, когда два алгоритма циклически ссылаются один на другой.
Почему?
Да потому что какой-то из алгоритмов должен был быть создан первым и не может знать адреса/ссылки несуществующих алгоритмов.
И следствие:
Запись
- некорректна, поскольку здесь записан алгоритм, имеющий ссылку на предшествующий алгоритм, что невозможно.
Из всего этого мой вывод: Все существующие на сегодняшний день доказательства существования невычислимых функций некорректны, поскольку используют некорректную математику.
Не вопрос же: "А как же многочисленные примеры из жизни и практики программирования, когда две программы ссылаются одна на другую или рекурсивные функции, которые могут вызвать сами себя?".
Отвечу: Некорректные математики существуют.
К стати насчет рекурсивных функций - от их некорректности все же можно избавиться, если ввести параметр "время" - по простому - счетчик циклов рекурсии.
Тогда, каждый новый вызов функции себя - будет вызовом другой функции (с другим номером счетчика рекурсии) и такая математика будет уже корректной.
Но невычислимых функций в ней существовать не будет.