Ты пишешь:
Проблема с остановкой утверждает, что нет алгоритма, который бы определял, останавливается ли данная программа. Как следствие, должны быть программы, о которых мы не можем сказать, прекращаются они или нет.
Это не sequitur, в обоих направлениях. Вы уступаете распространенному заблуждению, к которому стоит обратиться.
Для любой фиксированной программы ее проблема остановки («Всегда ли останавливается?») Всегда разрешима, потому что ответ - «да» или «нет». Даже если вы не можете сказать, что это, вы знаете, что один из двух тривиальных алгоритмов всегда отвечает «да», соответственно. «нет» решает проблему останова.PPP
Только если вы требуете, чтобы алгоритм решал проблему остановки для всех программ, вы можете показать, что такой алгоритм не может существовать.
Теперь, зная, что проблема Остановки неразрешима, не подразумевает, что есть какие-то программы, которые никто не может доказать или завершить. Даже если вы не более мощны, чем машина Тьюринга (что является лишь гипотезой, а не доказанным фактом), все, что мы знаем, это то, что ни один алгоритм / человек не может предоставить такое доказательство для всех программ. Может быть другой человек, который может принять решение для каждой программы.
Еще немного связанных чтения:
Итак, вы видите, что ваш фактический вопрос (как повторяется ниже) не имеет ничего общего с тем, является ли проблема остановки вычислимой. Вообще.
Каковы самые простые (самые маленькие) известные примеры [программ, которые мы не знаем, чтобы остановить или зациклить]?
Это само по себе является правильным вопросом; другие дали хорошие ответы. По сути, вы можете преобразовать каждое утверждение с неизвестным значением истинности в пример, при условии, что оно имеет значение истинности:S
g(n)={1,g(n+1),S true,else.
Конечно, это не очень "естественно".
- Не обязательно все , но «многие» в некотором смысле. Бесконечно много, по крайней мере.