Kontextfreie Sprachen werden nicht geschlossen, wenn sie "erweiterungsfrei" sind.

7

Definieren Sie für eine Sprache : L

NE(L)={xL:x is not the proper prefix of any string in L}

Ich versuche zu zeigen, dass kontextfreie Sprachen unter dieser Operation nicht geschlossen werden. Ich habe schon lange versucht, ein Gegenbeispiel zu finden, dh eine Sprache , bei der kontextfrei ist, jedoch nicht kontextfrei, und mir nichts einfallen lässt. Ich würde mich über Ideen oder Hinweise zu Sprachen freuen.LLNE(L)

Bearbeiten: Für die überwiegende Mehrheit der kontextfreien Sprachen scheint entweder oder . Ich habe sogar Probleme, Kandidatensprachen zu finden.NE(L)=LNE(L)=

cemulieren
quelle
1
Lassen L={an}{anbn}, dann NE(L)={anbn}. AberNE(L)LNE(L).
Anton Trunov

Antworten:

6

Eher als die Sprache LΣ Betrachten Sie die Sprache L=L$$, verketten Sie also jede Zeichenfolge mit zwei Kopien von $ wo $ ist ein neues Symbol nicht in Σ.

Lassen xΣ. Stringx$ ist kein richtiges Präfix von L iff x$$L iff xL.

Das sollte dich zum Laufen bringen.

Hendrik Jan.
quelle
1
Ich habe jetzt schon eine Weile darauf gestarrt und sehe es einfach nicht. Zuerst,x$ ist nicht mal in L.', so kann es sicher nicht sein N.E.(L.') (Das ist eine Teilmenge von L.'). Das Kriterium anzuwenden "ist kein richtiges Präfix vonL.'", wir müssen mit einem beginnen xL.', sonst bekommen wir keine Informationen über N.E.(L.'). Verstehe ich hier etwas falsch?
Cemulate
1
Du hast recht. Um dies zu umgehen, reicht es meiner Meinung nach aus, darüber nachzudenkenL.'=L.$$Σ$stattdessen.
Hendrik
1
Ah, klug. Im Wesentlichen können wir diese Konstruktion verwenden, um zu zeigen, dass wennC.F.L. wurden unter geschlossen N.E.dann müsste es unter Ergänzung geschlossen werden, um einen Widerspruch abzuleiten. Alternativ können Sie einfach eine Sprache auswählen, deren Komplement nicht CFL ist, um ein Gegenbeispiel zu erhalten. Danke, ich weiß nicht, wann ich an so etwas gedacht hätte ...
Cemulate
1
@AntonTrunov Mein Vorschlag für den "generischen" Fall: Die beiden Teile der Sprache können durch ihre Schwänze unterschieden werden. So können wir isolierenC.(L.)$ durch Überschneiden mit regulären Σ$.
Hendrik
1
@AntonTrunov Entschuldigung, ich hätte genauer sein sollen. Kontextfreie Sprachen werden im Schnittpunkt mit regulären Sprachen geschlossen.
Hendrik