Mówi się, że przecięcie języka L bez kontekstu z językiem zwykłym M jest zawsze wolne od kontekstu. Zrozumiałem dowód na konstrukcję wielu produktów, ale wciąż nie rozumiem, dlaczego nie zawiera kontekstu, ale nie jest regularny.
Język generowany przez takie skrzyżowanie ma ciągi znaków, które są akceptowane zarówno przez PDA, jak i DFA. Skoro jest akceptowany przez DFA, to czy nie powinien to być zwykły język? Ponadto, jeśli skrzyżowanie jest regularne, oznacza to również brak kontekstu, ponieważ wszystkie zwykłe języki są również pozbawione kontekstu.
Czy ktoś może mi wyjaśnić, dlaczego język uzyskany przez takie skrzyżowanie nie jest regularny?
Odpowiedzi:
Jeśli jest pozbawiony kontekstu, to PDA P to akceptuje. Jeśli M jest regularne, to DFA F to akceptuje. Językiem przecięcie składa się ze słów, które są rozpoznawane przez P i F .L P M F P F
Każde słowo, które jest na skrzyżowaniu jest akceptowana przez , ale nie wszystkie słowa, które zostały zaakceptowane przez F są na skrzyżowaniu: tylko te, które są również akceptowane przez P .F F P
Dowód krzyżowy polega na zbudowaniu automatu który zawiera mechanikę zarówno P, jak i F , i który akceptuje tylko słowa, za które obie strony akceptują. Automat międzyplatformowy to PDA (a zatem rozpoznany język jest pozbawiony kontekstu) - intuicyjnie, ponieważ iloczyn krzyżowy z n- stanowym DFA polega na pobraniu n kopii P i dodaniu ( q , a , [ q ] ) strzałki między pasujące członkowskie w P gdzie DFAP⊗F P F n n P (q,a,[q]) P a strzały. Rezultatem nie jest ogólnie automat skończony (nawet niedeterministyczny), ponieważ część opiera się na stosie, a ta zależność nie ustępuje w P ⊗ F w ogóle.P P.⊗ F.
Trywialna przykładem jest * jest regularny, i jeżeli L jest kontekst wolny, ale nieregularny, a następnie L ∩ * = L jest kontekst wolny, ale nieregularny.ZA∗ L. L ∩ A∗= L.
źródło