Peut-il y avoir un lemme de pompage contextuel?

8

Une propriété de «pompage» (des mots d'une certaine longueur impliquent l'existence de boucles dans le mécanisme de définition de la langue) est connue pour exister pour les langues régulières et sans contexte et quelques autres (généralement utilisées pour réfuter l'appartenance d'une langue à une certaine classe). ).

Dans la discussion autour de cette question , la réponse de Daisy suggère qu'il ne peut pas y avoir de lemme de pompage pour les langages contextuels - car ils sont si complexes.

Est-ce vrai - peut-on montrer qu'il ne peut pas y avoir de propriété de pompage - et y a-t-il une bonne référence pour cela (ou contre cela)?

lukas.coenig
la source
2
Pouvez-vous donner une définition formelle de "pompage de la lemme"? Sinon, il ne peut y avoir une telle preuve par principe.
Raphael
On peut peut-être réfuter le théorème de Parikh pour les langages contextuels, et cela nous amène à nous attendre à ce qu'aucun lemme de pompage ressemblant à ceux que nous connaissons n'existe.
Yuval Filmus
@YuvalFilmus Que voulez-vous dire? Il est clair que les nombres premiers sont sensibles au contexte et ne sont pas semi-linéaires. Parikh ne tient donc pas pour sensible au contexte. Cela signifie que le "pompage linéaire" ne s'applique pas. Comme Raphaël, je suis curieux de savoir quelles autres méthodes seraient considérées comme du pompage.
Hendrik Jan
1
Vous avez raison, cela revient à savoir ce qu'est exactement le "pompage" ... J'espérais quelques suggestions ... Quel est le théorème de Parikh pour les langages contextuels ? Je n'en ai trouvé qu'un pour les langues sans contexte.
lukas.coenig
1
@ lukas.coenig Il n'y a pas de théorème de Parikh pour les langages contextuels, mais il pourrait y en avoir un s'il y avait un lemme de pompage simple pour les langages contextuels.
Yuval Filmus

Réponses:

8

Voici quelques preuves qu'il n'y a pas de lemme de pompage pour les langages contextuels.

Bien sûr, une réponse dépend de la question de savoir ce qui constitue un lemme de pompage. La définition raisonnable la plus faible à laquelle je pourrais penser est la suivante: une classe de langage a un lemme de pompage s'il existe un prédicat ternaire décidable où veux dire:CP(,,)P(g,w,d)

  • g est un mot codant une langue de (pensez: grammaire),L(g)C
  • w est un mot dans la langue codée parg
  • d est un mot codant un calcul / dérivation pompable pour (pensez: calcul NFA avec état répété ou arbre de dérivation CFG avec non-terminal répété). Ici, pompable signifie: il existe une infinité de mots dans .wL(g)

De plus, nous voulons que, étant donné un langage dans codé par , pour chaque mot suffisamment long , il existe un mot tel que .LCgwLdP(g,w,d)

Par exemple, le lemme de pompage pour les langages normaux donnerait lieu au prédicat " encode un NFA sans et encode un cycle qui répète un état et lit ". Pour des codages appropriés, cela satisfait clairement aux conditions ci-dessus.gεdw

Montrons maintenant qu'un tel prédicat n'existe pas pour les langages contextuels.

Observez que si une classe de langue a un lemme de pompage, alors le problème de l'infini (étant donné une grammaire, génère-t-il un langage infini?) Est récursivement énumérable: étant donné un codage , nous pouvons énumérer les mots et et vérifier si . Si nous trouvons un tel , nous répondons «oui», sinon, nous continuons l'énumération.gwdP(g,w,d)w,d

Cependant, nous montrons que le problème de l'infini pour les langages contextuels n'est pas récursivement énumérable. Rappelons que est un niveau de la hiérarchie arithmétique qui inclut strictement les langages récursivement énumérables. Il suffit donc de prouver:Π20

Affirmation : Le problème de l'infini pour les langages contextuels est -complete.Π20

Il est bien connu que le problème de l'infini pour les langages récursivement énumérables est -complet (le plus souvent, on trouve la formulation que le problème de finitude est -complete). Il suffit donc de réduire ce dernier problème au problème de l'infini pour les langages contextuels.Π20Σ20

Étant donné un TM , nous construisons un LBA pour la langue Alors, est infini si est infini, ce qui complète notre preuve.MUNE

{u#vv est un calcul acceptant shortlex-minimal de M en entrée u}.
L(UNE)L(M)

Mise à jour: J'ai essayé d'être plus clair. Mise à jour: exemple ajouté.

Georg Zetzsche
la source
Continuons cette discussion dans le chat .
Raphael