Um die Terminologie klar zu machen, verwende ich: decidable = rekursiv = berechenbar, semidecidable = rekursiv aufzählbar = rechnerisch aufzählbar, co-semidecidable = co-rekursiv aufzählbar = co-rechnerisch aufzählbar.
In der Praxis besteht eine übliche Methode, um zu zeigen, dass eine Sprache nicht semidecidable ist, darin, zu zeigen, dass sie nicht entscheidbar ist und dass sie co-semidecidable ist. Sie nutzen dann die Tatsache, dass jede Sprache, die sowohl semidecidable als auch co-semidecidable ist, auch zu dem Schluss kommen kann, dass Ihre Sprache nicht semidecidable ist. (Beachten Sie, dass dies nur in eine Richtung funktioniert: Eine Sprache kann weder semidecidable noch co-semidecidable sein. In diesem Fall benötigen Sie eine andere Methode.)
Als Beispiel: Wir wissen, dass die Entscheidung, ob ein mehrdeutig ist , nicht zu entscheiden ist, aber es ist leicht, einen Co-Semidecide durchzuführen: Sie geben einfach eine Zeichenfolge mit zwei verschiedenen Parsen an. Dies impliziert, dass es nicht halbentscheidbar ist, ob ein mehrdeutig ist.CFGCFG
Eine andere Methode besteht darin, zu zeigen, dass die Sprache für eine höhere Ebene der arithmetischen Hierarchie vollständig ist .
Es ist natürlich möglich, direkt zu beweisen, dass es keinen Prüfer gibt, aber dies ist oft mühsam, da es normalerweise den Beweis wiederholt, dass das Stoppproblem unentscheidbar ist. Beachten Sie jedoch, dass das obige Argument im Wesentlichen implizit beweist, dass es keinen Verifizierer geben kann. Ich denke, Sie könnten sagen, dass es eine Methode ist, um zu beweisen, dass es keinen Verifizierer gibt, aber dann könnten Sie jeden Beweis der Nicht-Halbentscheidbarkeit als Beweis dafür betrachten, dass es einen gibt kein verfier.