Чтобы сделать терминологию, я использую ясность: decidable = recursive = computable, semidecidable = recursively enumerable = compumable enumerable, co-semidecidable = co-recursively enumerable = co-compumable enumerable.
На практике распространенный способ показать, что язык не является полуразрешимым, состоит в том, чтобы показать, что он не разрешим и что он также полуразрешим. Затем вы используете тот факт, что любой язык, который является как полуразрешимым, так и полуразрешимым, также может быть решен, чтобы сделать вывод, что ваш язык не является полуразрешимым. (обратите внимание, что это работает только в одном направлении: язык не может быть ни полуразрешимым, ни полуразрешимым, в этом случае вам нужен какой-то другой метод)
В качестве примера: мы знаем, что решение о том, является ли неоднозначным, неразрешимо, но легко принять решение: вы просто даете строку, которая имеет два разных анализа. Это подразумевает, что нельзя определить, является ли неоднозначным.CFGCFG
Другой метод - показать, что язык завершен для некоторого более высокого уровня арифметической иерархии .
Конечно, можно прямо доказать, что нет верификатора, но это часто утомительно, поскольку обычно повторяет доказательство того, что проблема остановки неразрешима. Обратите внимание, что приведенный выше аргумент по сути неявно доказывает, что не может быть никакого верификатора, поэтому я предполагаю, что вы могли бы сказать, что это метод, который доказывает отсутствие верификатора, но тогда вы можете рассмотреть любое доказательство нерешительности как доказательство того, что существует нет верфиер.