On dit que l'intersection d'un langage L sans contexte avec un langage M normal est toujours sans contexte. J'ai compris la preuve de la construction de produits croisés, mais je ne comprends toujours pas pourquoi elle est sans contexte mais pas régulière.
Le langage généré par une telle intersection a des chaînes qui sont acceptées à la fois par un PDA et un DFA. Puisqu'il est accepté par un DFA, ne devrait-il pas être une langue régulière? De plus, si l'intersection est régulière, elle implique également un contexte sans contexte, car toutes les langues régulières sont également sans contexte.
Quelqu'un peut-il m'expliquer pourquoi le langage obtenu par une telle intersection n'est pas régulier?
Réponses:
Si est sans contexte, il existe un PDA P qui l'accepte. Si M est régulier, il existe un DFA F qui l'accepte. La langue d'intersection se compose des mots qui sont reconnus par P et F .L P M F P F
Tout mot qui est dans l'intersection est acceptée par , mais pas tous les mots qui sont acceptés par F sont à l'intersection: seuls ceux qui sont également acceptées par P .F F P
La preuve du produit croisé consiste à construire un automate qui contient la mécanique de P et F , et qui n'accepte que des mots pour lesquels les deux côtés acceptent. L'automate produit croisé est un PDA (et donc le langage reconnu est sans contexte) - intuitivement, parce que le produit croisé avec un DFA à n états consiste à prendre n copies de P et à ajouter ( q , a , [ q ] ) flèches entre les états correspondants dans P où le DFA a unP⊗ F P F n n P ( q, a , [ q] ) P une flèches. Le résultat n'est pas un automate fini en général (même pas non-déterministe) car la partie s'appuie sur la pile et cette dépendance ne disparaît pas dans P ⊗ F en général.P P⊗ F
Un exemple trivial est que est régulier, et si L est hors contexte mais pas régulier alors L ∩ A ∗ = L est hors contexte mais pas régulier.UNE∗ L L ∩ A∗= L
la source