Pouvons-nous montrer qu'une langue n'est pas énumérable de manière calculable en montrant qu'il n'y a pas de vérificateur pour elle?

11

L'une des définitions d'un ensemble énumérable calculable (ce, équivalent à énumérable récursivement, équivalent à semi-décidable) est la suivante:

AΣ est ce ssi il y a un langage décidable (appelé vérificateur) st pour tous les ,VΣxΣ

xA ssi il existe un st .yΣx,yV

Ainsi, une façon de montrer qu'une langue n'est pas ce est de montrer qu'il n'y a pas de vérificateur décidable pour elle. Cette méthode est-elle utile pour montrer que les langues ne sont pas ce en pratique?V

Anonyme
la source
3
qu'est-ce que (vouliez-vous dire re?)
Ran G.
Je ne peux pas penser à une situation où cela est utile pour prouver qu'une langue n'est pas CE. Je suppose que vous pourriez facilement remplacer par dans une réduction de plusieurs. Si vous proposiez une autre réduction, je m'attendrais à ce que les "sorties négatives" ne signifient pas grand-chose car est quantifié existentiellement. VAx,yVy
Lucas Cook
@RanG., Re est l'ancienne terminologie, de nos jours, elle est généralement appelée ce par les personnes travaillant dans la théorie de la calculabilité. (Si vous êtes intéressé par la raison du changement de terminologie, je suggère de consulter la page d'accueil de Robert Soare.)
Kaveh
@Kaveh merci. Chaque jour, on apprend de nouvelles choses ...
Ran G.

Réponses:

4

En pratique, nous ne prouvons généralement pas simplement qu'une langue est re ou non re. Si le langage est re, nous voulons savoir s'il est récursif. Si ce n'est pas le cas, nous voulons savoir quel type de degré Turing il possède, et pas seulement que le degré Turing ne l'est pas.

Par exemple, si est un problème avec alors n'est pas re, mais ce fait sur le saut de Turing est plus informatif que de simplement savoir que n'est pas rePPT0PP

Ainsi, alors que, en principe, vous pouvez montrer qu'un langage n'est pas re en prouvant qu'il n'y a pas de vérificateur, en pratique, il est plus informatif de prouver que le langage n'est pas re en montrant qu'il calcule quelque chose qu'aucun re-set ne peut calculer; la nature de ce «quelque chose» donne généralement des informations utiles sur le problème étudié.

Carl Mummert
la source
3

Pour clarifier la terminologie que j'utilise: decidable = recursive = calculable, semidecidable = récursivement énumérable = calculable enumerable, co-semidécidable = co-récursivement énumérable = co-calculable énumérable.

En pratique, une méthode courante pour montrer qu'un langage n'est pas semi-décidable est de montrer qu'il n'est pas décidable et qu'il est co-semi-décidable. Vous utilisez ensuite le fait que toute langue à la fois semi-décidable et co-semi-décidable est également décidable pour conclure que votre langue n'est pas semi-décidable. (notez que cela ne fonctionne que dans un seul sens: un langage ne peut être ni semi-décidable ni co-semi-décidable, auquel cas vous avez besoin d'une autre méthode)

Par exemple: nous savons que décider si un est ambigu est indécidable, mais il est facile de co-semi-décider: vous donnez simplement une chaîne qui a deux analyses différentes. Cela implique qu'il n'est pas semi-décidable si un est ambigu.CFGCFG

Une autre méthode consiste à montrer que le langage est complet pour un niveau supérieur de la hiérarchie arithmétique .

Il est bien sûr possible de prouver directement qu'il n'y a pas de vérificateur, mais c'est souvent fastidieux, car cela répète généralement la preuve que le problème d'arrêt est indécidable. Notez cependant que l'argument ci-dessus prouve essentiellement implicitement qu'il ne peut y avoir de vérificateur, donc je suppose que vous pourriez dire que c'est une méthode pour prouver qu'il n'y a pas de vérificateur, mais alors vous pouvez considérer toute preuve de non-semi-décidabilité comme une preuve qu'il y a pas de verfier.

Alex ten Brink
la source
Il y a une faille dans votre langue. Une langue peut être non semi-décidable et non co-semi-décidable. Les langues indécidables sont de telles langues.
Dave Clarke
@DaveClarke: J'ai ajouté quelques définitions de terminologie. Est-ce correct maintenant?
Alex ten Brink
Pas (semi-décidable) pas (décidable) co- semi-décidable .
Dave Clarke
@DaveClarke: J'ai ajouté une note disant que cela ne fonctionne que dans une seule direction.
Alex ten Brink
3
Je ne suis pas convaincu que c'est une technique que quiconque utiliserait. Pourquoi ne pas réduire le problème à un problème connu "non semi-décidable".
Dave Clarke