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.LS(L)
Condition
Dans le DFA minimal pour L , tout chemin d'acceptation contient au plus une boucle.AL
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 exemple aa∗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.uvt
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 .LxuyAuxunyxunyxuyxuy
À 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 nxuyvu,vxunyvmxunyvmx,u,vunxyunvmxyvmnfois (pour les occurrences de ), lire x y , pop n fois, pousser m fois (pour v ), lire x y , pop m fois.uxynmvxym
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.