C'est une preuve standard dans les cours d'automates que pour et | Σ | ≥ 2 que S ( L ) = { w w : w ∈ L } n'est pas une langue sans contexte.
Il est également vrai que pour tout fini , S ( L ) est fini (et donc un CFL). Je suppose que L étant infini et régulier ne sont pas "suffisants" pour que S ( L ) ne soit pas une LFC. Edit : qu'en est-il des non-CFL L ?
Existe-t-il une caractérisation de ce que a S ( L ) qui n'est pas une LFC?
context-free
Ryan
la source
la source
Réponses:
Plus un commentaire étendu avec une conjecture, mais voici une condition qui semble saisir le problème, dans le contexte de régulier pour que S ( L ) soit hors contexte.L S(L)
Condition Dans le DFA minimal pour L , tout chemin d'acceptation contient au plus une boucle.A L
Exception: deux boucles sont autorisées si leurs étiquettes et l'étiquette du préfixe avant la première boucle commutent toutes, et le suffixe après la deuxième boucle est vide. Par exempleaa∗b(aa)∗ est ok.
Rappelons que deux mots et v commuent s'ils sont des puissances d'un même mot t . Nous pouvons supposer que le suffixe est vide, car il ne peut pas être non vide et commuter avec l'étiquette de la deuxième boucle dans un DFA.u v t
Suffisante Supposons que la condition, on construit une PDA pour en traitant chaque motif acceptant x u y de A où u étiquettes une boucle simple. Nous voulons accepter des mots de la forme x u n y x u n y . Nous lisons x , poussons un symbole pour chaque occurrence de u , lisons y x , puis pop un symbole pour chaque occurrence de u , et finalement lisons y .L xuy A u xunyxuny x u yx u y
À propos de l'exception, si nous sommes dans ce cas, un chemin d'acceptation de base est de la forme où u , v sont les étiquettes des boucles. Nous acceptons les mots de la forme x u n y v m x u n y v m , mais par hypothèse ( x , u , v commute), c'est la même chose que u n x y u n v m x y v m , qui peut être fait par un PDA: pousser nxuyv u,v xunyvmxunyvm x,u,v unxyunvmxyvm n fois (pour les occurrences de ), lire x y , pop n fois, pousser m fois (pour v ), lire x y , pop m fois.u xy n m v xy m
Le PDA final est l'union des PDA pour chaque modèle.
Nécessaire (handwaving) S'il y a un chemin avec deux boucles, même dans le cas le plus simple où vous devez prendre l'une puis l'autre (par exemple ), vous devez vous rappeler combien de fois chacune est prise, mais la structure de la pile vous empêche de les répéter dans le même ordre. Notez que le fait que le DFA soit minimal est important dans la caractérisation, pour éviter d'utiliser deux boucles quand l'une pourrait suffire.a∗b∗
Pour l'instant, la partie nécessaire n'est qu'une conjecture, et d'autres exceptions pourraient être nécessaires pour obtenir la condition exacte, je serais intéressé par des contre-exemples.
la source