Nicht alle nicht regulären Sprachen bestehen den Test des Pump-Lemmas nicht. Wikipedia hat ein ärgerlich komplexes Beispiel für eine nicht reguläre Sprache, die gepumpt werden kann. Selbst wenn eine Sprache nicht regulär ist, können wir diese Tatsache möglicherweise nicht mit dem Pump-Lemma beweisen.
Es stellt sich jedoch heraus, dass wir das Pump-Lemma verwenden können, um zu beweisen, dass Ihre Muttersprache nicht regelmäßig ist. Bei der zweiten bin ich mir nicht sicher.
Behauptung: ist nicht regulär.L.1
Beweis: Durch das Pump-Lemma. Sei die Pumplänge. (Ich werde das Alphabet { a , b } anstelle von { 0 , 1 } verwenden .) Wenn p = 1 , nehmen Sie die Zeichenfolge a b b a a , die sich in L 1 befindet, und pumpen Sie sie zu a a b b a a, das nicht in L 1 ist , also wäre L 1 nicht regulär.p{ a , b }{ 0 , 1 }p = 1a b b a aL.1a a b b a aL.1L.1
Wenn , dann nehmen Sie die Zeichenfolge ein p b b eine N . (Wir werden herausfinden, was wir wollen N.p > 1einpb b aN.N. später sein.) Prüfen Dann jede Teilung der Saite in , wo x = a p - k , y = ein k und z = b b ein N .x yzx = ap - ky= akz= b b aN.
Jetzt lasst uns diesen String mal pumpen . (Wir werden später herausfinden, was ich sein soll.) Wir erhalten die Zeichenfolge x y i zichichx yichz , das gibt .einp - keinich kb b aN.= ap - k + i kb b aN.
Jetzt lass uns zurück gehen. Zuerst haben wir . Dann wurde eine Auswahl von k getroffen. Dann haben wir i ausgewählt . Wir wollen herausfinden, welches N zu wählen ist, damit wir für jede Wahl von k ∈ [ 1 , p ] ein i wählen können , das diese Zeichenkette zu einem Palindrom macht, indem wir die Zahl von a s links gleich der Zahl auf der machen Recht. (Es wird immer eine gerade Länge haben.)N.kichN.k ∈ [ 1 , p ]ichein
Wir wollen also immer . Wenn wir mit der Mathematik herumspielen, finden wir, dass wir N = p + p wählen sollten ! und wähle i = p ! / k + 1 .p−k+ik=NN=p+p!i=p!/k+1
Um es noch einmal zusammenzufassen, wir haben und wählt die Zeichenfolge ein p b b ein N . Dann wurde eine Auswahl von k getroffen, so dass die Zeichenkette aus a p - k y b b a N bestand, wobei y = a k . Dann haben wir i = p gewählt ! / k + 1 . Wir haben die Saite gepumpt, um ein p - k y i b b a zu erhaltenN=p+p!apbbaNkap−kybbaNy=aki=p!/k+1 .ap−kyibbaN=ap−kaikbbaN=ap−k+ikbbaN
Aber wir wissen, dass . Undp−k+ik=p−k+(p!k+1)k=p−k+p!+k=p+p!. Die Anzahl der a s an beiden Enden ist also gleich, daher ist die Zeichenfolge ein Palindrom mit gerader Länge, also nicht in L 1 , also ist L 1 nicht regulär. ◻N=p+p!aL1L1□